Назад | Перейти на главную страницу

Почему IPv6-адрес / 128 назначается через DHCPv6 в Ubuntu?

Я тестирую реализацию IPv6 в Ubuntu. Мой Linux-клиент Ubuntu правильно получает RA с сервера и настраивает адрес в объявленном префиксе. Затем он получает другой адрес через DHCP, который имеет /128 маска.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f8:a9:63:0c:3c:cb brd ff:ff:ff:ff:ff:ff
    inet6 2001:xxxx:1f15:yyyy::9/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 2001:xxxx:1f15:yyyy:faa9:63ff:fe0c:3ccb/64 scope global dynamic 
       valid_lft 82162sec preferred_lft 10162sec
    inet6 fe80::faa9:63ff:fe0c:3ccb/64 scope link 
       valid_lft forever preferred_lft forever

Я заинтригован /128 маска для этого адреса, которая подразумевает связь точка-точка. Почему маска /128 а не скажи /64?

Это нормальное поведение DHCPv6 или что-то связано с настройкой моего DHCP-сервера?

Да, это нормальное поведение. Серверы DHCPv6 выдают адреса (с параметром IA_NA), но ничего не сообщают клиенту о подсети. Поэтому клиент просто настраивает отдельный адрес на интерфейсе. Любые маршруты в подсеть предоставляет RA. Если RA объявит префикс без опции автонастройки, клиент не будет настраивать адрес автоматически, но добавит маршрут для локальной подсети.

Это разделение ответственности сделано намеренно. Серверы DHCPv6 имеют право назначать адреса (среди прочего), но не имеют права говорить о состоянии сети. Часто серверы DHCPv6 не находятся даже в локальной подсети и общаются с клиентом через реле. Устройства, с которыми клиент обращается напрямую, - это маршрутизаторы. Поэтому в IPv6 маршрутизаторы сообщают клиентам о статусе сети (префикс, шлюз по умолчанию, маршруты и т. Д.) С помощью RA. Дополнительные параметры конфигурации и необязательные назначения адресов выполняются с DHCP-сервера.

Таким образом, клиент может быстро реагировать на изменения в сети, получая при этом более долгоживущую информацию от DHCPv6.