6

Мой провайдер начал использовать DHCPv6, то есть с этим /etc/network/interfaces...

auto lo eth0 eth1

iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
    address 192.168.0.1
    netmask 255.255.255.0

allow-hotplug eth1
iface eth1 inet dhcp
iface eth1 inet6 dhcp

... мой маршрутизатор Debian Wheezy наконец получает IPv6-адрес (ууу!).

Но что мне нужно сделать дальше, чтобы мой маршрутизатор назначил адреса IPv6 всем рабочим станциям в локальной сети?

С IPv4 все, что мне нужно было сделать, это включить DHCP-клиент на интерфейсе WAN, назначить статические IPv4-адреса маршрутизатору и рабочим станциям и, наконец, настроить NAT (я использовал iptables -t nat -a POSTROUTING -s 192.168.0.0/32 ! -d 192.168.0.0/32 -j MASQUERADE для этого).

С IPv6 нет NAT. Я рассмотрел radvd и isc-dhcp-server, но, похоже, что оба требуют префикса, установленного в их файлах конфигурации (то есть префикса, который не изменяется). Однако мой Интернет-провайдер, похоже, предоставляет мне новый префикс при каждом повторном подключении.

Я действительно потерян.

2 ответа2

11

Вы не сказали, кем был ваш интернет-провайдер, но следующие работы на Comcast в тех областях, где они развернули IPv6.

Мне пришлось использовать wide-dhcpv6-client, так как ни один из других клиентов DHCPv6 не мог обрабатывать все одновременно получение адреса для интерфейса, обращенного к провайдеру, делегирование префикса и максимальную /60 маску сети Comcast.

После установки wide-dhcpv6-client отредактируйте /etc /network /interfaces, чтобы ваши настройки eth1 IPv6 выглядели так:

iface eth1 inet6 auto
        post-up sysctl -w net.ipv6.conf.ext0.accept_ra=2

Отредактируйте /etc/wide-dhcpv6/dhcp6c.conf так, чтобы он выглядел так:

profile default
{
  information-only;

  request domain-name-servers;
  request domain-name;

  script "/etc/wide-dhcpv6/dhcp6c-script";
};

interface eth1 {
    send rapid-commit;

    send ia-na 0;
    send ia-pd 0;
};

id-assoc na 0 {

};

id-assoc pd 0 {
    prefix ::/60 infinity;

    # Internal interface (LAN)
    prefix-interface eth0 {
        sla-len 4;
        sla-id 0;
        ifid 1;
    };
};

Раздел "na" получает IPv6-адрес для eth1 (перед вашим провайдером). Раздел "pd" получает делегирование префикса для вашей внутренней сети и назначает IPv6-адрес «[prefix]::1» для eth0 (ваш внутренний интерфейс). Если у вас есть дополнительные внутренние сети, вы можете добавить дополнительные разделы «prefix-interface» для этих интерфейсов и увеличить «sla-id» для каждого из них.

Затем вам нужен демон рекламы маршрутизатора в системе для вашей внутренней сети. Вы можете использовать либо radvd, либо dnsmasq.

Если вы используете dnsmasq, необходимые дополнения в /etc/dnsmasq.conf для IPv6:

# Enable IPv6 Router Advertisement (RA) features.
enable-ra

# Advertise delegated prefix based on the IPv6 address of eth0.
dhcp-range = ::1,constructor:eth0,   ra-stateless, ra-names, 4h

Вам нужно будет установить dnsmasq из тестирования Debian, поскольку версия, поставляемая с Debian wheezy, не обеспечивает правильную рекламу маршрутизатора.

Затем ifdown и ifup вашего внешнего интерфейса, убедитесь, что dhcp6c запущен, и посмотрите, есть ли у вашего внешнего и внутреннего интерфейса IPv6-адреса, отличные от локальных ссылок (адреса "fe80::..."). Если все это работает, перезапустите dnsmasq, и системы в вашей локальной сети должны начать автоматически настраивать адреса IPv6 для себя.

1

Если вы готовы заменить свой Debian на OpenWRT, тогда все будет настроено автоматически - последние версии OpenWRT будут запрашивать делегирование префикса DHCPv6 на интерфейсе Wan, разделять его на /64 бита и использовать их для своих интерфейсов локальной сети, используя RA и DHCPv6. Конфигурация не требуется, все это настраивается из коробки.

Если в вашей сети есть несколько маршрутизаторов, вы можете поэкспериментировать с их автоматической настройкой с использованием набора протоколов Homenet . Homenet реализован для OpenWRT с использованием hnetd , а для Linux - с использованием shncpd . (Интеграция shncpd в Debian - это постоянная работа, мы могли бы воспользоваться вашей помощью.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .