DHCP

Эксперименты с DHCPv6.

Для опытов был взят сетевой сегмент, в которм находились:

  • роутер С7200 (dual-stacked)
  • FreeBSD — сервер
  • ноутбук с Win7

Роутер давно и успешно работает с IPv6. Для взаимодействия с DHCPv6 менялись следующие конфигурационные опции в различных сочетаниях:

  • включались и отключались RA
  • M=0 O=0 RA=1 (в сети нет DHCP-сервера, используйте SLAAC или статическое назначение, фактически это конфигурация по умолчанию)
  • M=0 O=1 RA=1 (хост получает IPv6-адрес через SLAAC или адрес прописан статически, адрес DNS — от DHCP сервера)
  • M=1 O=0 RA=n/a (DHCP сервер назначает только адрес)
  • M=1 O=1 RA=n/a (все параметры назначаются через DHCP, то есть никакого отличия от предыдущего варианта)

— то есть использовались команды на интерфейсе роутера, смотрящем в данный сегмент:

  • IPv6Router(config-if)#ipv6 nd ra suppress
  • IPv6Router(config-if)#ipv6 nd managed-config-flag
  • IPv6Router(config-if)#ipv6 nd other-config-flag

… или с префиксом no.

В DHCPv6 не предусмотрено назначение адреса роутера, так что если отключить RA, то адрес роутера нужно прописывать на клиенте вручную, иначе хост не сможет общаться с другими хостами используя global unicast адреса даже в своей подсети!!!. Правда, сможет с использованием link-local адресов.

На экспериментальном сервере была установлена ОС FreeBSD 8.2 amd64 с немодифицированным ядром, затем из packages был добавлен gmake, а с сайта ISC  — скачан дистрибутив DHCP 4.2.1-P1. Далее — обычным путем:

  • распаковка tar.gz
  • ./configure
  • gmake
  • gmake install

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

ln2# cat dhcpd6.conf
# My DHCPv6 config
default-lease-time 100;
preferred-lifetime 60;
option dhcp-renewal-time 30;
allow leasequery;
option dhcp6.preference 255;
dhcpv6-lease-file-name "/home/dhcpd6.leases";
option dhcp6.rapid-commit;
subnet6 2001:0db8:0:a::/64 {
range6 2001:0db8:0:a::1:01 2001:0db8:0:a::1:99;
option dhcp6.name-servers 2001:0db8:0:a::144:1;
}

Запускал с отладочными флагами:

/usr/local/sbin/dhcpd -6 -f -d -cf /usr/home/ISC-DHCPD/dhcpd6.conf re0

а контролировал процесс по сообщениям на консоли, по логам,  и еще с помощью tcpdump.

Вот результаты:
Опыт Первый: RA=ON, M=ON, O=OFF
(Адрес роутера должен быть взять из RA, IPv6-адрес должен быть взят из DHCP, IPv6-адрес DNS-сервера должен быть взят из DHCP)

Конфигурация интерфейса роутера:

interface FastEthernet3/0
description IPv6-link
ipv6 address 2001:0db8:1::/64 eui-64
ipv6 enable
ipv6 nd managed-config-flag
end

Что показал tcpdump на DHCP-сервере:


ln2# tcpdump -i re0 port 546 or 547
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on re0, link-type EN10MB (Ethernet), capture size 96 bytes
11:39:04.363964 IP6 fe80::1984:8e88:389f:958f.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 solicit
11:39:04.364145 IP6 fe80::d227:88ff:fe3e:2065.dhcpv6-server > fe80::1984:8e88:389f:958f.dhcpv6-client: dhcp6 advertise
11:39:05.361540 IP6 fe80::1984:8e88:389f:958f.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 request
11:39:05.361680 IP6 fe80::d227:88ff:fe3e:2065.dhcpv6-server > fe80::1984:8e88:389f:958f.dhcpv6-client: dhcp6 reply
11:39:35.952230 IP6 fe80::1984:8e88:389f:958f.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 renew
11:39:35.952397 IP6 fe80::d227:88ff:fe3e:2065.dhcpv6-server > fe80::1984:8e88:389f:958f.dhcpv6-client: dhcp6 reply

Что показал ipconfig /all на клиенте (Win7). Клиент был настроен на автополучение всех параметров.

Ethernet adapter Подключение по локальной сети:
...
Физический адрес. . . . . . . . . : 60-EB-69-62-D5-94
DHCP включен. . . . . . . . . . . : Да
Автонастройка включена. . . . . . : Да
IPv6-адрес. . . . . . . . . . . . : 2001:0db8:0:a::1:99(Основной)
IPv6-адрес. . . . . . . . . . . . : 2001:0db8:0:a:1984:8e88:389f:958f(Основной)
Временный IPv6-адрес. . . . . . . : 2001:0db8:0:a:882a:e86d:dc9b:6955(Основной)
Локальный IPv6-адрес канала . . . : fe80::1984:8e88:389f:958f!(Основной)
Основной шлюз. . . . . . . . . : fe80::222:91ff:fe99:54!
IAID DHCPv6 . . . . . . . . . . . : 190901097
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-14-76-0C-2B-60-EB-69-62-D5-94
DNS-серверы. . . . . . . . . . . : 2001:0db8:0:a::144:1

Проверка пингами-трейсроутами показала, что все работает.

Опыт Второй: RA=OFF, M=ON, O=OFF
(IPv6-адрес должен быть взят из DHCP, IPv6-адрес DNS-сервера должен быть взят из DHCP)

Конфигурация интерфейса роутера:

interface FastEthernet3/0
ipv6 address 2001:0db8:1::/64 eui-64
ipv6 enable
ipv6 nd managed-config-flag
ipv6 nd ra suppress
end

Что показал tcpdump на DHCP-сервере:


ln2# tcpdump -i re0 port 546 or 547
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on re0, link-type EN10MB (Ethernet), capture size 96 bytes
11:51:23.798488 IP6 fe80::1984:8e88:389f:958f.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 solicit
11:51:23.798643 IP6 fe80::d227:88ff:fe3e:2065.dhcpv6-server > fe80::1984:8e88:389f:958f.dhcpv6-client: dhcp6 advertise
11:51:24.809571 IP6 fe80::1984:8e88:389f:958f.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 request
11:51:24.809706 IP6 fe80::d227:88ff:fe3e:2065.dhcpv6-server > fe80::1984:8e88:389f:958f.dhcpv6-client: dhcp6 reply

Что показал ipconfig /all на клиенте (Win7)


Ethernet adapter Подключение по локальной сети:

Физический адрес. . . . . . . . . : 60-EB-69-62-D5-94
DHCP включен. . . . . . . . . . . : Да
Автонастройка включена. . . . . . : Да
IPv6-адрес. . . . . . . . . . . . : 2001:0db8:0:a::1:99(Основной)
Аренда получена. . . . . . . . . . : 20 июля 2011 г. 11:52:14
Срок аренды истекает. . . . . . . . . . : 20 июля 2011 г. 11:56:26
Локальный IPv6-адрес канала . . . : fe80::1984:8e88:389f:958f!(Основной)
Основной шлюз. . . . . . . . . :
IAID DHCPv6 . . . . . . . . . . . : 190901097
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-14-76-0C-2B-60-EB-69-62-D5-94
DNS-серверы. . . . . . . . . . . : 2001:0db8:0:a::144:1

То есть основной шлюз отсутствует. При этом при использовании полученного глобального адреса ничего не работает даже в своей подсети. Хосты в своей подсети перестали отвечать на пинги к их глобальным адресам — идет сообщение «General failure». А вот пинги по link-local адресам работают. Но в интернет (и вообще из своего L2-сегмента) не выйти.

Опыт Третий: RA=ON, M=OFF, O=ON
(Адрес роутера должен быть взять из RA, IPv6-адрес должен быть взят из SLAAC, IPv6-адрес DNS-сервера должен быть взят из DHCP)


interface FastEthernet3/0
ipv6 address 2A02:5800:0:A::/64 eui-64
ipv6 enable
ipv6 nd other-config-flag
end

Что показал tcpdump на DHCP-сервере:

ln2# tcpdump -i re0 port 546 or 547
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on re0, link-type EN10MB (Ethernet), capture size 96 bytes
12:15:02.080465 IP6 fe80::1984:8e88:389f:958f.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 inf-req
12:15:02.080562 IP6 fe80::d227:88ff:fe3e:2065.dhcpv6-server > fe80::1984:8e88:389f:958f.dhcpv6-client: dhcp6 reply

Что показал ipconfig /all на клиенте (Win7)

Ethernet adapter Подключение по локальной сети:

Физический адрес. . . . . . . . . : 60-EB-69-62-D5-94
DHCP включен. . . . . . . . . . . : Да
Автонастройка включена. . . . . . : Да
IPv6-адрес. . . . . . . . . . . . : 2001:0db8:0:a:1984:8e88:389f:958f(Основной)
Временный IPv6-адрес. . . . . . . : 2001:0db8:0:a:2d00:d345:1dac:12a4(Основной)
Локальный IPv6-адрес канала . . . : fe80::1984:8e88:389f:958f!(Основной)
Основной шлюз. . . . . . . . . : fe80::222:91ff:fe99:54!
IAID DHCPv6 . . . . . . . . . . . : 190901097
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-14-76-0C-2B-60-EB-69-62-D5-94
DNS-серверы. . . . . . . . . . . : 2001:0db8:0:a::144:1

Адрес DNS-сервера взят из DHCP, адрес шлюза получен из RA, адрес клиента сгенерирован из SLAAC и все работает.

Косвенная приятная информация: за время экспериментов ноутбук «накачал» 6 обновлений к Win7 и успешно установил их. То есть Windows Update работает через IPv6.

Какие-либо результаты тестирования со статическими настройками тут не приводятся, так как с ними все работает. А вот при отключенных RA из своего L2-сегмента не выйти, разве что вручную прописать шлюз…

Конфигурационные опции в DHCPv6

Код опции Название Обозначение Подробности
1 OPTION_CLIENTID dhcp6.client-id
2 OPTION_SERVERID dhcp6.server-id текст (string)

  *** Via IPv4 ***  

DHCP: 23 комментария

  1. Андрей
    Спасибо за статью, мне только одно непонятно — КАК быть в случае, когда дефолтовый шлюз не получить??? На коммутаторе у меня совсем другие конфиги/команды. Если ipv6 раздаю через radvd — всё работает, а через DHCP не получает шлюз. Может есть опция для DHCP конфига назначающая шлюз? В IPv4 была, но её установка в конфиг для IPv6 ничего не даёт(можно прописать лишь ipv4 адрес, а опции для v6 я не нашёл). Так же нашёл статью, где говорится, что у Андройдов есть проблема с получением адресов через DHCP и рекомендуется пользоваться для этого radvd ( http://sophiedogg.com/?p=264 ). У меня в сети более тысячи устройств поделённых на 130 подсетей ВиЛанами т.е. конфиг получается весьма громозкий и запускать сразу две службы вместо одной как то не хотелось бы. Сейчас работают связки DHCP+DNS IPv4 на одном сервере и DHCP+DNS+RADVD IPv6 на другом. Получение адресов в IPv6 проверяю через Win7(эзернет) и мобильник с андройдом(через WiFi).
      *** Via IPv6 ***  
    1. admin Автор записи
      Андрей, в DHCPv6 вообще не предусмотрена выдача адреса шлюза. Он должен приниматься из RA (router advertisement), то есть анонсирование адреса шлюза в IPv6 — это функция роутера. В этом есть смысл: если в подсети есть роутер (роутеры), то он (они) сообщит (сообщат) о себе, если нет — то в адресе шлюза нет смысла. Попробуйте проверить (скажем, при помощи того же tcpdump), выдает ли ваш роутер RA.
        *** Via IPv4 ***  
      1. Андрей
        У меня Huawei (5600 и 6505R) 5ти летней давности с относительно свежими прошивками. 5600 ещё как то обновляются, а на 6500 все давно забили. Поддержка ipv6 на 5600 серии есть, но криво реализовано, либо я ещё не до конца разобрался. Пока помогает RADVD, вот результате его совместного с DHCP работы: ========================================= Ethernet adapter Подключение по локальной сети 2: DNS-суффикс подключения . . . . . : v6user.la.spb.ru Описание. . . . . . . . . . . . . : Marvell Yukon 88E8056 PCI-E Gigabit Ether net Controller Физический адрес. . . . . . . . . : 00-18-F3-75-64-ED DHCP включен. . . . . . . . . . . : Нет Автонастройка включена. . . . . . : Да IPv6-адрес. . . . . . . . . . . . : 2001:15c0:676b:20::f745(Основной) — Выдан DHCP-сервером Аренда получена. . . . . . . . . . : 23 мая 2012 г. 10:37:49 Срок аренды истекает. . . . . . . . . . : 23 мая 2012 г. 11:28:30 IPv6-адрес. . . . . . . . . . . . : 2001:15c0:676b:20:4449:1d68:76a8:9773(Осн овной) — Выдан RADVD. Временный IPv6-адрес. . . . . . . : 2001:15c0:676b:20:b561:bf65:c37e:692f(Осн овной) — Выдан RADVD. Локальный IPv6-адрес канала . . . : fe80::4449:1d68:76a8:9773%12(Основной) IPv4-адрес. . . . . . . . . . . . : 192.168.20.33(Основной) Маска подсети . . . . . . . . . . : 255.255.255.0 Основной шлюз. . . . . . . . . : fe80::20c:29ff:feb5:8de6%12 192.168.20.251 IAID DHCPv6 . . . . . . . . . . . : 301996275 DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-16-4D-4C-B3-00-18-F3-75-45-B7 DNS-серверы. . . . . . . . . . . : 2001:15c0:676b::1 192.168.250.250 192.168.0.1 NetBios через TCP/IP. . . . . . . . : Включен Список поиска DNS-суффиксов подключения : v6user.la.spb.ru v6net.la.spb.ru ========================================= При выключении RADVD получаем: ========================================= Ethernet adapter Подключение по локальной сети 2: DNS-суффикс подключения . . . . . : v6user.la.spb.ru Описание. . . . . . . . . . . . . : Marvell Yukon 88E8056 PCI-E Gigabit Ether net Controller Физический адрес. . . . . . . . . : 00-18-F3-75-64-ED DHCP включен. . . . . . . . . . . : Нет Автонастройка включена. . . . . . : Да IPv6-адрес. . . . . . . . . . . . : 2001:15c0:676b:20::f745(Основной) Аренда получена. . . . . . . . . . : 23 мая 2012 г. 10:37:49 Срок аренды истекает. . . . . . . . . . : 23 мая 2012 г. 11:35:29 IPv6-адрес. . . . . . . . . . . . : 2001:15c0:676b:20:4449:1d68:76a8:9773(Осн овной) Временный IPv6-адрес. . . . . . . : 2001:15c0:676b:20:b561:bf65:c37e:692f(Осн овной) Локальный IPv6-адрес канала . . . : fe80::4449:1d68:76a8:9773%12(Основной) IPv4-адрес. . . . . . . . . . . . : 192.168.20.33(Основной) Маска подсети . . . . . . . . . . : 255.255.255.0 Основной шлюз. . . . . . . . . : 192.168.20.251 IAID DHCPv6 . . . . . . . . . . . : 301996275 DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-16-4D-4C-B3-00-18-F3-75-45-B7 DNS-серверы. . . . . . . . . . . : 2001:15c0:676b::1 192.168.250.250 192.168.0.1 NetBios через TCP/IP. . . . . . . . : Включен Список поиска DNS-суффиксов подключения : v6user.la.spb.ru v6net.la.spb.ru ========================================= И естественно ничего не работает. В линуксовом маршрутизаторе/DHCP/BIND сервере случился странный глюк из вывода команды ifconfig пропала строчка inet6, но командой ip -6 addr show — все адреса показывает: ———————————————————- # ifconfig eth3.20 eth3.20 Link encap:Ethernet HWaddr 00:0c:29:b5:8d:e6 inet addr:192.168.20.250 Bcast:192.168.20.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:166931 errors:0 dropped:0 overruns:0 frame:0 TX packets:328957 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:13510066 (12.8 MiB) TX bytes:78453672 (74.8 MiB) ———————————————————- # ip -6 addr show dev eth3.20 386: eth3.20@eth3: mtu 1500 inet6 2001:15c0:676b:20::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:feb5:8de6/64 scope link valid_lft forever preferred_lft forever ———————————————————- # ip -6 ro show dev eth3.20 2001:15c0:676b:20::/64 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0 2001:15c0:676b:20::/64 metric 1024 mtu 1500 advmss 1440 hoplimit 0 fe80::/64 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 0 ff00::/8 metric 256 mtu 1500 advmss 1440 hoplimit 0 ———————————————————- Подскажите пожалуйста параметры tcpdump что бы не читать весь мусор, а только нужные флаги типа RA?
          *** Via IPv4 ***  
        1. admin Автор записи
          Чтобы смотреть RA достаточно такого: tcpdump -i <имя_интерфейса> port 546 or 547
            *** Via IPv4 ***  
          1. Андрей
            Идут запросы и ответы, почему то группами по три или больше :-) tcpdump: listening on eth3.101, link-type EN10MB (Ethernet), capture size 65535 bytes 17:44:03.857320 IP6 (hlim 1, next-header UDP (17) payload length: 108) fe80::752c:8b30:89cd:6f24.dhcpv6-client > ff02::1:2.dhcpv6-server: [udp sum ok] dhcp6 confirm (xid=3c35b5 (elapsed-time 0) (client-ID hwaddr/time type 1 time 374164659 0018f37545b7) (IA_NA IAID:234887411 T1:0 T2:0 (IA_ADDR Andrey-w7.v101.v6user.la.spb.ru pltime:0 vltime:0)[|dhcp6ext]) (vendor-class) (option-request DNS-name DNS vendor-specific-info)) 17:44:03.858674 IP6 (hlim 64, next-header UDP (17) payload length: 87) fe80::20c:29ff:feb5:8de6.dhcpv6-server > fe80::752c:8b30:89cd:6f24.dhcpv6-client: [udp sum ok] dhcp6 reply (xid=3c35b5 (client-ID hwaddr/time type 1 time 374164659 0018f37545b7) (server-ID hwaddr/time type 1 time 391006340 000c29b58de6) (status-code success) (preference 255))
              *** Via IPv6 ***  
          2. admin Автор записи
            Вообще-то это не RA, это диалог с DHCP-сервером, к тому же неполный. Вам удалось обнаружить пакеты с RA?
              *** Via IPv4 ***  
          3. Андрей
            Вот ICMPv6 (58): ========================= 17:39:14.689459 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) fe80::20c:29ff:feb5:8de6 > fe80::52cc:f8ff:fe1f:b95e: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has fe80::52cc:f8ff:fe1f:b95e 17:39:14.725556 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 24) fe80::52cc:f8ff:fe1f:b95e > fe80::20c:29ff:feb5:8de6: [icmp6 sum ok] ICMP6, neighbor advertisement, length 24, tgt is fe80::52cc:f8ff:fe1f:b95e, Flags [solicited] ========================= Запросы идут с мобильника по WiFi, если переключаться между разными подсетями — v6 адреса/маршруты накапливаются и перестают адекватно работать…
              *** Via IPv6 ***  
          4. admin Автор записи
            Тут виден нормальный обмен: устройство с link-local адресом fe80::20c:29ff:feb5:8de6 спрашивает, кому принадлежит link-local адрес fe80::52cc:f8ff:fe1f:b95e (solicit) и получает нормальный ответ от соседа (advertisement). Полная аналогия с arp-протоколом в IPv4.
              *** Via IPv4 ***  
  2. Андрей
    Вот, что я имею из команд на L3 коммутаторе: ============================ [SW-D-2A-1-(ip3)]ipv6 ? host Add/Remove a host name and its IP address to the IPv6 host name table icmp-error Specify ICMPv6 configuration information nd IPv6 interface neighbor discovery subcommands neighbor IPv6 neighbor cache entries route-static Establish static route ============================ [SW-D-2A-1-(ip3)]ipv6 nd ? hop-limit Specify hop count limit ============================ [SW-D-2A-1-(ip3)-Vlan-interface777]ipv6 address 2001:15c0:676b:254::3/64 eui-64 IPv6 can not be configured, please undo all fabric-port first. ============================ т.е. придётся разбирать стэк(4комутатора объеденены в один), и не факт, что получится задать комутатору ipv6 адрес, да это по сути и не нужно, для изменения настроек мне и v4 адресов более чем хватает. А на 6500 маршрутизаторе вообще нет поддержки ipv6, зато есть поддержка ipx :-)
      *** Via IPv4 ***  
    1. admin Автор записи
      Да, команд управления флагами «М» и «О» не видно… Что касается IPX — то он живуч, даже сейчас его используют в Одном Очень Большом Банке.
        *** Via IPv4 ***  
      1. Андрей
        Ну так гос.контора — киска дорого, а хуавей типа та же киска но в 2 раза дешевле, а теперь железо не поддерживается, свежих прошивок очень давно нету… Но главное, что коммутаторы не мешают v6 по виланам пробрасывать и уже на линуксовом маршрутизаторе(мимо железного 6506R маршрутизатора) всё перелопачивать… IPv6 я получил у sixxs.net совершенно бесплатно 1 адрес и /48 подсеть на работу и 1 адрес и /64 подсеть домой. Для подсети у них же сделал привязку обратной зоны к моим DNS серверам :) Дома стоит cisco e4200 на фирменной прошивке к сожалению нет поддержки AICCU, пришлось через линуксовый комп туннель прокидывать :)
          *** Via IPv6 ***  
        1. admin Автор записи
          Коммутатор работает с L2-фреймом, ему безразлично, что там внутри, и с IPv6 проблем у коммутаторов с транзитным трафиком быть не должно. А вот управляющие фунцкции могут и не работать по IPv6, тут уж все зависит от возраста и от прошивок.
            *** Via IPv4 ***  
          1. Андрей
            Собственно железка которая предназначена для маршрутизации вообще не имеет поддержки ipv6 только ip и ipx (Huawei 6506R), к тому же он и со своим функциями с трудом справляется, то arp таблица подвиснет, то просто тормозит. мне проще маршрутизацию/роутинг на линуксе развернуть, что я и сделал, RA отдаётся клиентам через RADVD на те порты, куда это и нужно раздавать, DHCP+DNS превращают кошмарные адреса в легко читаемые, сайты нормально открываются и по IPv4 и по IPv6 правда скорость канала через sixxs раза в 4 меньше, чем напрямую. Но заметил, что для DNS запросов IPv6 стал приоритетным т.е. клиенты имея и v4 и v6 адрес DNS запросы отсылают именно на v6. Проксик так же работает без проблем. А Веб-сайты я уже давно перевёл, но там какой то плавающий глюк — на одном серваке оба адреса отрабатывают правильно, а на другом вместо нужного сайта в v6 открывается дефолтовый сайт для этого адреса.(конфиг vhost идентичен, но где то что то криво). А RA запросы на 546 и 547 портах отдаются или там другой механизм? И я примерно понял, что слиент к роутеру цепляется на служебном адресе fe80:: и через него маршрутизица честный глобальный юникаст, но на винде я же могу шлюз руками прописать и будет работать :-) почему они это из DHCP убрали :( а в RADVD они ещё и сложные случаи добавили для соединения разных сетей… Кстати опытным путём обнаружил что с WiFi «n» могут быть проблемы длинные v6 dhcp запросы могут застревать(особенности работы N от разных производителей), у меня с точкой доступа 3Com(HP, Huawei)9552 по N стандарту не работают некоторые iPAD, MackBookPro и Dell, а у самсунга с Андроидом v4 работает нормально, а DHCP не работает, а RADVD работает, но иногда пакеты не доходят.
              *** Via IPv6 ***  
          2. admin Автор записи
            Совершенно верно, многие приложения отдают приоритет IPv6. Точнее, когда они формируют запрос к DNS, то получают и АААА, и А-записи. Затем, если получили АААА-ответ, то пытаются использовать его. В противном случае все идет традиционным путем. Про RA: это не самостоятельный L3-протокол в IPv6, а часть сетевого протокола 58, то есть ICMPv6. Транспортная часть реализована через UDP:546 — на этом порту слушает клиент, и через UDP:547 — на этом порту слушает сервер и релеи. Вручную шлюз прописать конечно же можно, но глобальная идея RA была в том, что допускается наличие нескольких шлюзов, то есть резервирование. Что касается WiFi — то тут, увы, ничего подсказать не могу. Оборудования для подключения пользователей по IPv6 пока очень-очень мало…
              *** Via IPv4 ***  
          3. Андрей
            Проблему в WiFi «N» решил — как оказалось на моих точках доступа по умолчанию был выставлен большой размер пакета и из за этого даже элементарный ping улетал в ошибки (с клиента запустил пинг на сервер, а на сервере слушал запросы от клиента tcpdump-ом) 2.4G Radio Configuration -> Wireless Advanced Settings Fragment Length : 1024 (256-2346) bytes (по умолчанию стояло 2346) RTS/CTS Threshold : 1024 (256-2347) (по умолчанию стояло 2347) Причём сеть начинает работать при значении 2345, но опытным путём нашли более оптимальный размер фрейма, пропускающий большие пакеты. Как только заработало поставил ping -l 65500 и начал подбирать длину пакета пока не нашёл минимальное время отклика :)
              *** Via IPv6 ***  
  3. skinner
    Кстати не слыхали что у ISC dhcpd есть что-то вроде решения для раздачи маршрутов? Или может пробовали? также некий фришный dhcpv6 dibbler заявляет что умеет раздавать..
      *** Via IPv6 ***  
    1. admin Автор записи
      Вы имеете в виду делегирование префикса клиентскому устройству? Если это — то да, есть такая штатная возможность в ISC DHCP. Насчет dhcpv6 dibbler — извините, не слышал.
        *** Via IPv4 ***  
  4. beginner
    Вот возник вопрос, мучаюсь — в ipv4-энтерпрайзе все хорошо, ip+opt82+DHCPsnooping, т.е. я могу отследить за каким портом какой адрес, построить этакую цепочку из конца в конец, а в ipv6 все клиенты по дефолту ждут ra и «слаачат», соответственно dhcpv6 с подобными опциями (37 по-моему) отпадает, он ,как было указано в статье, лишь DNSы раздает. Как же реализовать аналогичный tracking(наверное так называется) чтобы понимать за каким портом кто сидит? Ведь по сути slaac со своим EIU-64 должен этому способствовать.
      *** Via IPv4 ***  
    1. admin Автор записи
      Если не устраивает SLAAC, то нужно ставить DHCP-сервер. В IPv6 DHCP нет опции 82, там другая идеология — смотрите на Relay Option Agent ID. Обработка несильно отличается от аналогичной в IPv6 и зависит от типа применяемого DHCP-сервера. В RA желательно выставить флаги М=1, О=1. Также понадобится принять меры, предотвращающие выход в сеть клиентов, которые статически прописали себе адрес. Интересное совпадение: мы как раз на следующей недели планировали подробно описать процесс конфигурирования ISC DHCP для выдачи конкретного IP на заданный порт свитча.
        *** Via IPv4 ***  
      1. beginner
        А зачем O=1? Зоопарка не будет? (у кого-то соберется только SLAAC, у кого-то stateless DHCPv6, у кого-то stateful DHCPv6) И какие меры можно применить к клиентам со статикой? Как им реально давать отлуп?
          *** Via IPv4 ***  
        1. admin Автор записи
          Зоопарка не должно быть, если установить О=0 то «правильный» DHCPv6-клиент должен брать данные от DHCP-сервера. Но, конечно же, можно установить О=1, это будет более сильное условие — тогда, к примеру, адреса DNS-серверов клиент станет брать из DHCP. Вся разница в том, что адреса DNS-серверов в первом случае могли бы быть получены из RA (для новых роутеров, поддерживающих эту опцию). Со статикой принцип борьбы очень простой: в файерволе по умолчанию нужно ЗАПРЕТИТЬ выход в интернет из клиентской подсети. А в DHCP-сервере написать скрипт, который при выдаче адреса автоматически добавляет его в разрешающий список файервола. Разумеется, и удаляет его по завершению аренды. В некоторых ОС это штатная фича в DHCP, в других нужно писать скрипт.
            *** Via IPv4 ***  
          1. beginner
            Вы уж поправьтесь, а то у Вас противоречивый комментарий получился. Да и насколько я знаю ND RDNSS мало где поддерживается, например на w7 по-умолчанию не поддерживается, есть только какая-то third-party userspace реализация.
              *** Via IPv4 ***  
          2. admin Автор записи
            Флажок поправил, спасибо за подсказку. Опция анонсирования DNS в RA впервые (или одной из первых) появилась в версии 5.2 OpenBSD, она есть и в 15х IOS-ах Cisco. Вот тут в правой колонке есть детали: http://en.wikipedia.org/wiki/Comparison_of_IPv6_support_in_operating_systems
              *** Via IPv4 ***  

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.