Что такое IPv6 Link-Local Addresses? |
Блок адресов IPv6 link-local выделен специально для использования в контексте одного L2 домена т.е. для организации взаимодействия в локальном сегменте сети. Пакеты, в которых адресом источника или адресом назначения является адрес из диапазона link-local не передаются маршрутизаторами из одного L2 сегмента в другой т.е. эти пакеты не маршрутизируются. Эти адреса необходимы для организации коммуникации в сегменте сети в отсутствии глобально маршрутизируемого префикса (globally routable prefix) или в случае необходимости ограничить распространения трафика локальным сегментом (например, в случае служебного трафика протоколов маршрутизации).
Link-local адреса определены в секции 2.5.6 RFC 4291, как имеющие десяти битный префикс 0xfe80 после которого следуют 54 нулевых бита и 64-bit interface ID :
| 10 | | bits | 54 bits | 64 bits | +----------+-------------------------+----------------------------+ |1111111010| 0 | interface ID | +----------+-------------------------+----------------------------+
Таким образом, считается, что link-local начинаются с 0xfe80. Однако, секция 5.3 RFC 4862 конкретизирует процесс назначения link-local address:
1.The left-most 'prefix length' bits of the address are those of the link-local prefix. 2.The bits in the address to the right of the link-local prefix are set to all zeroes. 3.If the length of the interface identifier is N bits, the right-most N bits of the address are replaced by the interface identifier. 1.Крайние с лева биты адреса заданные размером префикса являются link-local prefix. 2.Все биты адреса справа от link-local prefix устанавливаются равными нулю. 3.При длине interface id равной N бит, все N бит адреса крайние справа заменяются на interface id.
Другими словами, любой адрес имеющий префикс fe80::/10 является link-local address; а это диапазон включающий адреса начиная с fe80:: и заканчивая febf::. (Последний адрес этого префикса упирается в диапазон fec0::/10 назначенный для пространства site-local .) Но общей практикой все-же является использования 0xfe80 в качестве обозначения link local адресов.
В системе Cisco IOS, интерфейсу IPv6 должен быть назначен хотя-бы один link-local адрес. Адрес link-local назначается автоматически используя EUI-64 когда на интерфейсе настроен global IPv6 адрес либо в случае простого включения IPv6 на интерфейсе:
R1(config)# interface f0/0 R1(config-if)# ipv6 address 2001:db8:0:12::1/64 R1(config-if)# interface f0/1 R1(config-if)# ipv6 enable R1(config-if)# do show ipv6 interface brief FastEthernet0/0 [up/up] FE80::C001:37FF:FE6C:0 2001:DB8:0:12::1 FastEthernet0/1 [up/up] FE80::C001:37FF:FE6C:1
Так-же адрес Link-local может быть настроен вручную :
R1(config-if)# ipv6 address fe80::1 ? link-local Use link-local address R1(config-if)# ipv6 address fe80::1 link-local R1(config-if)# do show ipv6 interface brief FastEthernet0/0 [up/up] FE80::C001:37FF:FE6C:0 2001:DB8:0:12::1 FastEthernet0/1 [up/up] FE80::1
Имейте ввиду, что аргумент link-local может быть использован только для адресов из описанного выше диапазона:
R1(config-if)# ipv6 address fe90::1 link-local R1(config-if)# ipv6 address febf::1 link-local R1(config-if)# ipv6 address 2001:db8:0:12::1 link-local % Invalid link-local address
Использование команды «no ipv6 address link-local» приведет к автоматическому назначению link-local адреса.
Имейте ввиду, что в соответствии со своей природой link-local адреса не отображаются в таблице маршрутизации.
R1# show ipv6 route IPv6 Routing Table - 3 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external C 2001:DB8:0:12::/64 [0/0] via ::, FastEthernet0/0 L 2001:DB8:0:12::1/128 [0/0] via ::, FastEthernet0/0 L FF00::/8 [0/0] via ::, Null0
Т.к. подразумевается, что адреса с таким префиксом доступны через любой интерфейс устройства, при использовании команды ping для link-local адресов необходимо указывать интерфейс-источник.
R1# ping FE80::C002:37FF:FE6C:0 Output Interface: f0/0 % Invalid interface. Use full interface name without spaces (e.g. Serial0/1) Output Interface: fastethernet0/0 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FE80::C002:37FF:FE6C:0, timeout is 2 seconds: Packet sent with a source address of FE80::C001:37FF:FE6C:0 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/8 ms
В более новых версиях IOS так-же поддерживается возможность использования символа % для указания интерфейса-источника:
R1# ping FE80::C002:37FF:FE6C:0%fastethernet0/0
Leave a Reply