под катом
Типы адресов и их префиксы
Об IPv6 адресации подробно рассказано в RFC4291. Далее я опишу самые распространённые типы IPv6 адресов, их назначения и префиксы.
::/128 - Unspecified
— не должен принадлежать ни одной ноде в сети;::/0 - Default route
;::1/128 - Loopback
;fe80::/10 - Link-Local
— адреса уникальные на линке. СозданиеIPv6 link-local
адреса из префиксаfe80::
и MAC адреса сетевой карты, как и многое другое описано в презентации от Microsoft и в документе Introduction to IP Version 6, также процедура создания модифицированного EUI-64 идентификатора на пальцах разъяснена в Приложении А RFC4291);fec0::/10 - Site-Local
— устарели судя по RFC3879;fc00::/7 - Unique Site-Local
— пришли на замену Site-Local в RFC4193. В данный момент разбит на две части: fc00::/8 и fd00::/8. Уникальные в пределах организации, не роутящиеся в интернет адреса. Однако могут роутиться внутри site’a и между site’ами;ff00::/8 - Multicast
— о мультикасте подробнее расскажу чуть ниже. Полный список мультикаст адресов можно посмотреть тут:IANA IPv6 Multicast Addresses;::0000/96 - IPv4-Compatible IPv6 Address
— устарели;::ffff/96 - IPv4-Mapped IPv6 Address
— Адреса предназначенные в основногм для Socket API. Более подробно их назначение описано в RFC4038. Прочтение этого RFC будет полезно программистам которые собираются писать Dual-Stack приложения;
Все «не специальные» адреса относятся к:
Global Unicast
— глобальные адреса, уникальные во всем интернете. Пока, впрочем, судя по этому документу, доступно только глобальное пространство 2000::/3
(Адреса от 2000::
до 3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
)
Виды трафика
Unicast
— Старый добрый юникаст;Multicast
— Мультикаст теперь необходимое расширение, а не опциональное как в IPv4. IGMP был заменён на MLD (Multicast Listener Discovery). А процедура получения глобального мультикаст префикса стала тривиальной — теперь при получении /64 префикса провайдер автоматически получает 4.2 миллиарда глобальных мультикаст групп. Процедура подробно описана вRFC3306, а также дополнена внедрением адреса RP прямо в IPv6 адрес в RFC3956. Получение глобального мультикаст префикса для IPv4 и IPv6 описано в RFC6308. Стоит также заметить, что в IPv4 Multicast link-layer префикс был 01:00:5e, в IPv6 он стал 33:33:ff (посмотреть список групп для интерфейсов во FreeBSD можно черезifmcstat
или же черезip maddr
в Linux);Anycast
— Такой же anycast как и в IPv4. Этот тип адреса обычно анонсируется протоколом динамической маршрутизации (например BGP), сразу из нескольких мест. Это обеспечивает оптимальный, с точки зрения протокола маршрутизации, роутинг;Broadcast
— в IPv6 broadcast’а не существует. В место него можно использовать All Nodes Address. Пакеты посланные на него будут рассылаться только на хосты с настроенным IPv6 адресом (при включеном MLD snooping’е); Также часть протоколов раньше использовавших Broadcast в IPv6-версии всёже обзавелись собственной multicast группой;
Address Scope
В IPv6 появилось такое понятие как Scope, он же Zone ID терминологии Microsoft. На самом деле оно было и в IPv4, однако не было задано явно: сети 10/8, 172.16/12 и 192.168/16 яркие тому примеры.
В случае Unicast/Anycast адресов приминимо следующее:
У каждого IPv6 enabled интерфейса есть свой Link-local адрес. Его scope, внезапно, local. Эти адреса уникальны в пределах линка, но не обязаны быть актуальными в пределах одного хоста. Так, например, VLAN созданный на интерфейсе будет иметь такой же link-local адрес, что и родительский интерфейс (так как без использования IPv6 Privacy Extensions он будет генериться из тогоже Link Layer адреса). Для того, чтобы явно указать интерфейс которому принадлежит IPv6 адрес нужно или указывать в ручную интерфейс для исходящих пакетов или использовать специальный суффикс при записи адреса: %ИндексИнтерфейса в Windows (fe80::2b0:d0ff:fee9:4143%3) или %ИмяИнтерфейса в *BSD/Linux (fe80::2b0:d0ff:fee9:4143%em0).
В случае Multicast адресов scope указан в последних четырёх битах вторго октета IPv6 адреса: ff0s:: и может быть interface-local, link-local, admin-local, site-local, organization-local или же global.
Дополнительно стоит ознакомиться с RFC4007 IPv6 Scoped Address Architecture
кусок вырезан отсюда: http://habrahabr.ru/post/64592/