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

Разумны ли несколько адресов IPv6 в глобальном масштабе на одном адаптере?

Настройка IPv6 в Linux довольно тривиальна, вы можете следовать рекомендациям IPv4 и присвоить себе статический IPv6-адрес.

На Solaris все не так радужно, IPv6 работает только после запуска in.ripng. После запуска вы получите автоконфигурацию IPv6-адреса в сегменте локальной сети. Итак, пока я настроил Solaris для одного статического IPv6-адреса, я в конечном итоге получил три: локальную область связи, статическую глобальную область и автоматически настраиваемую глобальную область:

lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.6.28.36 netmask ffffff00 broadcast 10.6.28.255
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128 
eri0: flags=2100841<UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
        inet6 fe80::203:baff:fe4e:6cc8/10 
eri0:1: flags=2100841<UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
        inet6 2002:dce8:d28e::36/64 
eri0:2: flags=2180841<UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500 index 2
        inet6 2002:dce8:d28e:0:203:baff:fe4e:6cc8/64 

eri0:1 статический адрес, который я тривиально выбрал для соответствия хосту IPv4, eri0:2 показывает автоматически настроенный адрес с повторным использованием номеров из интерфейса локальной связи.

in.ripng настроен с /etc/inet/ndpd.conf:

ifdefault AdvSendAdvertisements true
prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on

if eri0 AdvSendAdvertisements 1
prefix 2002:dce8:d28e::/64 eri0

Таким образом, автоконфигурация распространяется на все другие хосты в сегменте локальной сети, поэтому сервер Linux с одним адресом глобальной области теперь дает два:

eth0      Link encap:Ethernet  HWaddr 00:14:5e:bd:6d:da  
          inet addr:10.6.28.31  Bcast:10.6.28.255  Mask:255.255.255.0
          inet6 addr: 2002:dce8:d28e:0:214:5eff:febd:6dda/64 Scope:Global
          inet6 addr: fe80::214:5eff:febd:6dda/64 Scope:Link
          inet6 addr: 2002:dce8:d28e::31/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Это вменяемые конфигурации?

Кажется нереальным иметь серверы с выходом в Интернет, которые берут адреса со своих MAC-адресов.

С точки зрения разработки сетевого стека я хотел бы привязать к eth0 с IPv6, и хотя интерфейс локальной области видимости просто игнорировать, как я могу выбрать между двумя адресами глобальной области?

Сложно применить RFC 3484 правила сортировки, так как оба имеют одинаковую область видимости и длину префикса.

редактировать: примечание для администраторов Solaris: после просмотра конфигурации системы я теперь могу заставить статическую адресацию работать правильно без автоконфигурации.

Это совершенно нормальная ситуация. Если вы не хотите, чтобы Linux-сервер автоматически настраивал IPv6-адреса, вы всегда можете отключить это в Linux-окне в /etc/sysctl.conf:

net.ipv6.conf.eth0.autoconf = 0