DHCP раздача IPv4 и IPv6 одновременно [SOLVED]

Хочу сделать так, чтоб сервер раздавал как IPv4, так и IPv6. Посоветуйте демон, а то dhcpd не работает в режиме IPv4 и IPv6 одновременно.

Запускать dhcpd для ipv4 и

Запускать dhcpd для ipv4 и dibbler для ipv6?

Нейтральность - высшее достижение сознания!

.

Вроде бы, никаких проблем быть не должно с этим. Я подписан на рассылку ISC DHCP, вот что писали по этому поводу еще год назад:

The software can handle both protocols, however a running instance can
only handle one protocol at a time.

The defined solution to this is to run dhcpd twice, one instance for
IPv4 and one instance for IPv6. You can do this on the same machine
without problems.

Так что, dhcpd вполне подходит. Линк на dhcpd в init.d ну и далее.

Спасибо, уже смотрю в эту

Спасибо, уже смотрю в эту сторону. Так же смотрю в сторону dnsmasq (попробую еще и кеширующий DNS), вроде все получается, по результатам эксперимента отпишусь.

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

Настроил dnsmasq. Вообщем все

Настроил dnsmasq. Вообщем все работает, вот только не получается привязать определенные IPv6 к определенным link-local адресом (производной MAC адреса). Согласно RFC-3315:

Цитата:
The client uses a link-local address or addresses determined through other mechanisms for transmitting and receiving DHCP messages
Клиенты используют link-local адреса или адреса полученные другими способами для отправки и приема DHCP сообщений

Ну меня другие способы пока не интересуют, смотрим в сторону link-local адресов, опять же в RFC-3315:

Цитата:
link-local address        An IPv6 address having a link-only
                                scope, indicated by having the prefix
                                (FE80::/10), that can be used to reach
                                neighboring nodes attached to the same
                                link.  Every interface has a link-local
                                address.

Что в переводе на русский:
link-local адрес - IPv6 адрес использующийся только в подсети FE80::/10 для связи с другими адресами вышеуказанной подсети. Каждый интерфейс физический (от себя) имеет link-local адрес. Короче замена MAC адреса.

Я так понял все это придумали, чтоб не городить ARPv6.
Смотрим

 # ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 1118  bytes 140573 (137.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1118  bytes 140573 (137.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

net_eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.200.79.52  netmask 255.255.248.0  broadcast 10.200.79.255
        inet6 fe80::211:9ff:fe94:bdc3  prefixlen 64  scopeid 0x20<link>
        ether 00:11:09:94:bd:c3  txqueuelen 1000  (Ethernet)
        RX packets 1728663  bytes 193402301 (184.4 MiB)
        RX errors 0  dropped 473  overruns 0  frame 0
        TX packets 3974613  bytes 5336766269 (4.9 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

net_eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.23.8.8  netmask 255.255.255.0  broadcast 172.23.8.255
        inet6 fe80::211:9ff:fe94:bdc4  prefixlen 64  scopeid 0x20<link>
        inet6 2002:59b3:f3cd::ac17:808  prefixlen 120  scopeid 0x0<global>
        ether 00:11:09:94:bd:c4  txqueuelen 1000  (Ethernet)
        RX packets 34162  bytes 4112731 (3.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 29052  bytes 13306726 (12.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1460
        inet 89.179.243.205  netmask 255.255.255.255  destination 78.107.1.78
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 1662916  bytes 98787149 (94.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3968793  bytes 5130033841 (4.7 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

sit0: flags=193<UP,RUNNING,NOARP>  mtu 1440
        inet6 ::89.179.243.205  prefixlen 96  scopeid 0x80<compat,global>
        inet6 ::172.23.8.8  prefixlen 96  scopeid 0x80<compat,global>
        inet6 ::10.200.79.52  prefixlen 96  scopeid 0x80<compat,global>
        inet6 ::127.0.0.1  prefixlen 96  scopeid 0x90<compat,host>
        inet6 2002:59b3:f3cd::  prefixlen 48  scopeid 0x0<global>
        sit  txqueuelen 0  (IPv6-in-IPv4)
        RX packets 1000  bytes 217165 (212.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1034  bytes 123642 (120.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Вот собственно и эти link-local адреса (странно, а префикс не /10 (как в RFC), а /64), причем только у физических интерфейсов (недоработали ребята в RFC), и они похожи на MAC адреса. В RFC-3315 я не нашел как формируются link-local адреса. Стал смотреть на просторах интернета. Нашел вот эту статью на википедии.

Цитата:
A 64-bit interface identifier is most commonly derived from its 48-bit MAC address. A MAC address 00:1D:BA:06:37:64 is turned into a 64-bit EUI-64 by inserting FF:FE in the middle: 00:1D:BA:FF:FE:06:37:64. When this EUI-64 is used to form an IPv6 address it is modified:[1] the meaning of the Universal/Local bit (the 7th most significant bit of the EUI-64, starting from 1) is inverted, so that a 1 now means Universal. To create an IPv6 address with the network prefix 2001:db8:1:2::/64 it yields the address 2001:db8:1:2:021d:baff:fe06:3764 (with the underlined U/L bit inverted to a 1, because the MAC address is universally unique)

64 битный идентификатор интерфейса может быть получен из 48 битного MAC адреса, путем запихивания 3 старших байт MAC адреса в 3 старших байта идентификатора, 3 младших байтов MAC адреса в 3 младших байта идентификатора, запихивания FF:FE в два средних байта (4,5 байт) идентификатора, и инвертирования 2 бита старшего байта идентификатора

Что вообщем и видно из выхлопа ifconfig
В dnsmasq.conf прописано:

interface=net_eth1
enable-ra
dhcp-range=2002:59b3:f3cd::ac17:801, 2002:59b3:f3cd::ac17:8EE, 120, 12h
dhcp-host=id:fe:80:00:00:00:00:d6:9a:20:ff:fe:79:36:fc, fred, [2002:59b3:f3cd::ac17:804]

Но комп с id:fe:80:00:00:00:00:d6:9a:20:ff:fe:79:36:fc получает IPv6 2002:59b3:f3cd::ac17:8ab, а не 2002:59b3:f3cd::ac17:804 как мне бы хотелось.
Что делаю не так? Куда копать?

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

насколько я помню,

насколько я помню, привязывать надо не к link-local адресу, а к DUID. По крайней мере так в dibbler...

Нейтральность - высшее достижение сознания!

Огромное спасибо! Разобрался,

Огромное спасибо! Теперь все работает!

Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".