Как настроить подсистему 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 для рассылки именных серверов и серверов клиентам. Вам понадобятся клиенты, способные сделать обнаружение сервиса. Я не провел большого тестирования обнаружения сервисов, поскольку управлял сетью с двумя стеками по всем направлениям.