Как настроить подсистему radvd, dhcpd6, маршрутизацию и /64 на основе делегированного префикса сервером DHCPv6-PD?

Мой провайдер только что запустил службу двойного стека IPv4/IPv6. Для подключения к Интернету IPv4/IPv6 почти все пользователи обычно используют CPE, арендованный Интернет-провайдером. Но я хочу использовать свой Linux-маршрутизатор вместо такого CPE, потому что у моего маршрутизатора очень много ролей (много правил iptables и 3 интерфейса Ethernet, обратный прокси-сервер http, кэш-память http, memcached, сервер smtp/pop и прокси-сервер DNS). Я хочу, чтобы это был маршрутизатор с двойным стеком IPv4/IPv6.

Мой роутер

  • CentOS6.0 i686
  • eth0 для WAN
  • eth1,2 для локальной сети
  • ISC dhcp(версия 4.1.1), установленная "# yum install dhcp" из репозитория CentOS-обновлений
  • Radvd(версия 1.6) устанавливается с помощью "# yum install radvd" из репозитория CentOS-base
  • [РЕДАКТИРОВАТЬ] Причина, по которой я использую ISC dhclient, заключается в том, что мой маршрутизатор должен отправлять опцию DHCPv6 16 (класс Vendor) в своих сообщениях запроса и запроса, чтобы получить опцию информации о конкретном поставщике, которая включает некоторую информацию, специфичную для провайдера (SIP номер телефона, адрес сервера прошивки). Я знаю, как установить опцию 16 в ISC dhclient, но не знаю его в WIDE-dhcpv6. И не могу найти такие настройки как "id-assoc" в ISC dhclient.

Моя цель

  • Префикс /48 делегируется клиенту DHCPv6-PD(делегирование префикса DHCPv6) (dhclient) на eth0.
  • Маршрут IPv6 по умолчанию установлен в сторону ISP. Я должен рассматривать локальный адрес ссылки сервера DHCPv6 провайдера как маршрут по умолчанию.
  • Одна подсеть /64 и один глобальный адрес (которые находятся в делегированном префиксе) назначаются каждому I / F LAN (eth1/eth2).
  • Radvd на eth1 и eth2 объявляет RA на основе назначенной /64 подсети.
  • dhcpd6 на eth1 и eth2 объявляет дополнительную сетевую информацию (серверы имен, список доменов и адреса sip-серверов), полученные от сервера DHCPv6 интернет-провайдера.

Моя текущая конфигурация

/ И т.д. /sysconfig/ сети

NETWORKING=yes
HOSTNAME=xxx.yyy.zzz

# Enable IPv6 routing and stop accept_ra/autoconf.
IPV6FORWARDING=yes

/ И т.д. /sysconfig/ сети-скрипты / ifcfg-eth0

DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none

# Enable DHCPv6-PD client.
DHCPV6C=yes
DHCPV6C_OPTIONS="-P -cf /etc/dhcp/dhclient6.conf"

# Disable make_resolv_conf function in /sbin/dhclient-script.
PEERDNS=no

/etc/dhcp/dhclient6.conf

script "/sbin/dhclient-script";
interface "eth0" {
        send dhcp6.reconf-accept;
        also request dhcp6.vendor-opts, dhcp6.sip-servers-names, dhcp6.sip-servers-addresses, dhcp6.sntp-servers;
}

Результат

После "# service network restart" клиент DHCPv6-PD, похоже, успешно завершил работу.

lease6 {
  interface "eth0";
  ia-pd xx:xx:xx:xx {
    starts 1312464004;
    renew 7200;
    rebind 10800;
    iaprefix 24xx:xxxx:xxxx::/48 {
      starts 1312464004;
      preferred-life 12600;
      max-life 14400;
    }
  }
  option dhcp6.client-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.server-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
  option dhcp6.reconf-accept ;
  option dhcp6.sip-servers-addresses 24xx:xxxx:xxxx:xxxx::1;
  option dhcp6.name-servers 24xx:xxxx:xxxx:xxxx::3,24xx:xxxx:xxxx:b::3;
  option dhcp6.domain-search "xxx.jp.", "yyy.jp.";
  option dhcp6.sntp-servers 24xx:xxxx:xxxx:xxxx::a,24xx:xxxx:xxxx:b::b;
}

Вопрос

Клиент DHCPv6-PD успешно делегирован /48 префикса. Но после этого

  • Как установить маршрут по умолчанию IPv6 в таблице маршрутизации маршрутизатора?
  • Как назначить глобальный IPv6-адрес и /64 подсеть для каждого LAN I/F(eth1 и eth2) на основе делегированного префикса?
  • Как запустить radvd для объявления RA на каждом LAN I/F(eth1 и eth2)?
  • How to trigger DHCPv6 server(dhcpd6) on each LAN I/F to announce additional network information(name-servers, domain-searchlist and sip-servers-addresses) received from ISP's DHCPv6 server?

My guess

According to "$ man dhclient" and "$ man dhclient-script", dhclient-script seems to be used to configure such settings, and it offers some hooks. But now, it does nothing for DHCPv6-PD client.

Yes, I may have to write some scripts suitable for my DHCPv6-PD environment, though I am not familiar with IPv6 network configurations. Anyone let me know the above settings in dhclient-script? [EDIT] I want to know the practical dhclient-script.

And I worry, some special consideration should be taken. For example, because each IPv6 address has preferred/valid lifetime, when I assign a global IPv6 address to a LAN interface based on the delegated prefix, I have to assign not only an IPv6 address but also its lifetimes which must be derived from the delegated prefix's preferred/valid lifetimes?

Also, radvd and DHCPv6 server on LAN interfaces may have to be re-configured when DHCPv6 re-configuration happens? Which hook should be used?

[EDIT] When DHCPv6 re-configuration happens, how to announce both new and obsolete information? radvd automatically announce the previous prefix is obsolete? DHCPv6 server automatically announce the previous name-servers are obsolete?

3 ответа

Я не знаю ответа на ваш вопрос, но я просто хочу предупредить вас об использовании адреса DHCP-сервера в качестве маршрутизатора по умолчанию. Если это работает, это случайно... В IPv6 маршрут по умолчанию передается через RA, а не через DHCP.

Вам нужно будет включить переадресацию, прием RA и отправку RS. Проблема здесь в том, что ядро, включенное в Centos6, не позволяет вам сделать это. Когда переадресация включена, прием RA и отправка RS отключены. Должно быть ядро ​​CentosPlus с соответствующими патчами. См. Ветку / сообщение списка рассылки по адресу http://lists.centos.org/pipermail/centos/2011-April/thread.html

Соответствующие настройки sysctl.conf:

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.eth0.accept_ra_defrtr=1
net.ipv6.conf.eth0.router_solicitations=1
  • Маршрут по умолчанию IPv6 должен быть настроен любым подключением к Интернету по умолчанию (в восходящем направлении), прежде чем использовать DHCPv6 PD для получения дополнительных подсетей. Вы не упомянули, как вы на самом деле подключаетесь вверх по течению, поэтому я не могу вам помочь.
  • Я использую WIDE DHCPv6-клиент, а не ISC, поэтому я не знаю, как это сделать конкретно, но я ожидаю, что ISC имеет что-то эквивалентное этой опции конфигурации WIDE:

    id-assoc pd {
        prefix-interface eth0 {
            sla-id 1;
            sla-len 4;
        };
    };
    

    По сути, вы говорите клиенту DHCP, как назначать подсети внутренним интерфейсам; вышеупомянутая конфигурация говорит "я получаю 4 бита префикса, делегированного мне (sla-len 4), возьмите первую доступную подсеть (sla-id 1) и назначить его eth0 (prefix-interface eth0).

  • Настройте радвд с соответствующими interface строфы (есть хорошие примеры в radvd.conf man страницу для работы), и это будет просто работа.
  • Я не могу помочь тебе там; кроме тестирования, я не использую службу DHCPv6 (я получаю всю свою информацию DHCP от моего сервера DHCP).

Wombie дал тот же ответ, который я использовал бы для настройки radv и маршрутизации. Inet6 предназначен для самостоятельной настройки без необходимости использования DHCP-сервера.

Я не использую DHCPv6, так как он может обрабатываться radvd и zeroconf. Radvd может быть настроен для предоставления серверов имен и может рекламировать серверы из /etc/resolv.conf. В новых версиях radvd также реализовано распространение списков поиска.

Я настроил avahi-daemon для рассылки именных серверов и серверов клиентам. Вам понадобятся клиенты, способные сделать обнаружение сервиса. Я не провел большого тестирования обнаружения сервисов, поскольку управлял сетью с двумя стеками по всем направлениям.

Другие вопросы по тегам