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


10

Мій провайдер нещодавно почав службу подвійного стека IPv4 / IPv6. Для підключення до Інтернету IPv4 / IPv6 майже всі користувачі зазвичай використовують CPE, орендований ISP. Але я хочу використовувати свій маршрутизатор 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-базової репо
  • [EDIT] Причина, чому я використовую ISC dhclient, полягає в тому, що моєму маршрутизатору необхідно надіслати DHCPv6 варіант 16 (клас постачальника) у своєму запиті та запиті повідомлень, щоб отримати опцію інформації про постачальника, яка включає деяку інформацію, пов’язану з ISP ( Номер телефону SIP, адреса сервера прошивки). Я знаю, як встановити параметр 16 в ISC dhclient, але не знаю його у WIDE-dhcpv6. І я не можу знайти такі налаштування, як "id-assoc" в ISC dhclient.

Моя мета

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

Моя поточна конфігурація

/ etc / sysconfig / network

NETWORKING=yes
HOSTNAME=xxx.yyy.zzz

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

/ etc / sysconfig / network-script / 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;
}

Результат

Після "перезавантаження сервісної мережі #" клієнт 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 підмережі для кожної I / F локальної мережі (eth1 та eth2) на основі делегованого префікса?
  • Як запустити radvd оголосити RA на кожному вході / виводу локальної мережі (eth1 та eth2)?
  • Як запустити DHCPv6-сервер (dhcpd6) у кожній локальній мережі вводу / виводу, щоб оголосити додаткову мережеву інформацію (сервери імен, список домену та адреси sip-серверів), отриману від DHCPv6-сервера провайдера?

Моя здогадка

Згідно з "$ man dhclient" та "$ man dhclient-script", схоже , dhclient-скрипт використовується для налаштування таких параметрів, і він пропонує деякі гачки. Але тепер це не робить нічого для клієнта DHCPv6-PD.

Так, мені, можливо, доведеться писати деякі сценарії, придатні для мого середовища DHCPv6-PD, хоча я не знайомий з конфігураціями мережі IPv6. Хто-небудь дасть мені знати вищевказані налаштування в dhclient-script? [EDIT] Я хочу знати практичний сценарій dhclient.

І я хвилююся, слід звернути особливу увагу. Наприклад, оскільки кожна IPv6-адреса має переважний / дійсний термін служби, коли я присвоюю глобальну адресу IPv6 інтерфейсу локальної мережі на основі делегованого префікса, я повинен призначити не тільки IPv6-адресу, але й її термін служби, який повинен бути отриманий з делегованого Кращі / дійсні терміни префікса?

Також, можливо, доведеться перенастроювати сервер radvd та DHCPv6 на інтерфейсах локальної мережі, коли відбувається повторна конфігурація DHCPv6? Який гачок слід використовувати?

[EDIT] Коли відбудеться повторна конфігурація DHCPv6, як оголосити як нову, так і застарілу інформацію? radvd автоматично оголошує попередній префікс застарілим? Сервер DHCPv6 автоматично оголошує застарілі попередні сервери імен?

Відповіді:


4

Я не знаю відповіді на ваше запитання, але я просто хочу попередити вас про використання адреси сервера DHCP в якості маршрутизатора за замовчуванням. Якщо це працює, це випадково ... У IPv6 маршрут за замовчуванням передається РА, а не DHCP.

Вам потрібно ввімкнути переадресацію, прийняття RA та відправлення RS. Проблема тут полягає в тому, що ядро, включене в Centos6, не дозволяє вам цього робити. Якщо переадресація увімкнена, то приймання RA та відправлення RS відключено. Має бути ядро ​​CentosPlus з відповідними патчами. Дивіться посилання / повідомлення списку розсилки на http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756

Відповідними налаштуваннями 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

2
Насправді ви хочете, щоб accept_ra був 2 (прийняти, навіть якщо маршрутизація включена). Інакше ядро ​​ігнорує його на маршрутизаторі.
Кайл Батт

2
  • Маршрут за замовчуванням IPv6 повинен бути налаштований тим, що отримав стандартне підключення до Інтернету, перш ніж використовувати PDC DHCPv6 для отримання додаткових підмереж. Ви не згадали, як ви насправді підключаєтесь до верхів'я, тому я не можу вам тут допомогти.
  • Я використовую широкий клієнт 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).

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

Дякую за вашу відповідь. 1. Як підключитися вище за течією - просто підключити кабель Ethernet до FTTH GE-PON. Просто зараз немає способу вказати маршрут за замовчуванням IPv6 через DHCPv6, я повинен вважати локальну адресу сервера DHCPv6 як маршрут за замовчуванням.
taomaomag

2. Хоча я не згадував, причина, чому я використовую ISC dhclient, полягає в тому, що мій маршрутизатор повинен надіслати DHCPv6 варіант 16 (клас постачальника) у своєму запиті та запиті повідомлень, щоб отримати опцію для конкретного постачальника, яка включає деякі Інформація, що стосується ISP (номер телефону SIP, адреса сервера прошивки). Я знаю, як встановити параметр 16 в ISC dhclient, але не знаю його у WIDE-dhcpv6. І я не можу знайти такі налаштування, як "id-assoc" в ISC dhclient.
taomaomag

2
3,4. Я, можливо, зможу написати деякі погані сценарії для побудови radvd.conf та dhcpd6.conf на основі інформації (префікса тощо) з сервера DHCPv6. Але коли відбудеться повторна конфігурація DHCPv6, як оголосити як нову, так і застарілу інформацію? radvd автоматично оголошує попередній префікс застарілим? Сервер DHCPv6 автоматично оголошує застарілі попередні сервери імен?
taomaomag

У будь-якому разі я хочу знати практичний сценарій dhclient.
taomaomag

Не додайте всю цю інформацію в коментарі до відповіді; додайте його до свого питання .
жіноча

-1

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

Я не використовую DHCPv6, оскільки з ним можна обробити radvd та zeroconf. radvd може бути налаштований на подачу серверів імен та може рекламувати сервери з /etc/resolv.conf. Нові версії radvd також реалізували розповсюдження списків пошуку.

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


Навіть якщо я використовую DHCPv6 сервер або radvd, я повинен написати деякі сценарії для побудови dhcpd6.conf або radvd.conf динамічно на основі інформації (префікса тощо) з сервера DHCPv6. Але коли відбудеться повторна конфігурація DHCPv6, як оголосити як нову, так і застарілу інформацію для хостів на стороні локальної мережі? Якщо я будую новий dhcpd6.conf або radvd.conf динамічно на основі нової інформації з сервера DHCPv6, radvd автоматично оголошує попередній префікс застарілим? Сервер DHCPv6 автоматично оголошує застарілі попередні сервери імен?
taomaomag

radvd може використовувати префікс :: / 64, щоб автоматично отримувати його адреси з інтерфейсу. Вам не потрібно переписувати конфігурацію. DNS-сервери та список пошуку повинні бути статичними даними. Автоматична конфігурація IPv6 призначена для обробки мігруючих адрес. Я не знаю, наскільки добре ваш Інтернет-провайдер підтримує перехід. Я не дивився на DHCPv6.
BillThor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.