Jak skonfigurować podsieć radvd, dhcpd6, routing i / 64 na podstawie delegowanego prefiksu przez serwer DHCPv6-PD?


10

Mój dostawca usług internetowych właśnie uruchomił usługę podwójnego stosu IPv4 / IPv6. Aby połączyć się z Internetem IPv4 / IPv6, prawie wszyscy użytkownicy zwykle korzystają z CPE dzierżawionego przez dostawcę usług internetowych. Ale chcę używać mojego routera Linux zamiast takiego CPE, ponieważ mój router ma tak wiele ról (wiele reguł iptables i 3 interfejsy Ethernet, odwrotne proxy http, http cache, memcached, serwer smtp / pop i proxy DNS). Chcę, aby był to router z dwoma stosami IPv4 / IPv6.

Mój router

  • CentOS6.0 i686
  • eth0 dla WAN
  • eth1,2 dla LAN
  • ISC dhcp (wersja 4.1.1) zainstalowany przez „# yum install dhcp” z repozytorium aktualizacji CentOS
  • radvd (wersja 1.6) zainstalowany przez „# yum install radvd” z repozytorium CentOS-base
  • [EDYCJA] Powodem, dla którego używam ISC dhclient jest to, że mój router musi wysyłać opcję DHCPv6 16 (klasa dostawcy) w swoich żądaniach i żądaniach, aby uzyskać opcję informacji specyficznych dla dostawcy, która zawiera pewne informacje specyficzne dla dostawcy usług internetowych ( Numer telefonu SIP, adres serwera oprogramowania układowego). Wiem, jak ustawić opcję 16 w ISC dhclient, ale nie znam tego w WIDE-dhcpv6. I nie mogę znaleźć takich ustawień jak „id-assoc” w ISC dhclient.

Mój cel

  • Prefiks / 48 jest delegowany do klienta DHCPv6-PD (Delegowanie prefiksu DHCPv6) (dhclient) na eth0.
  • Domyślna trasa IPv6 jest ustawiona na ISP. Muszę rozważyć adres lokalny łącza DHCPv6 serwera ISP jako domyślną trasę.
  • Jedna podsieć / 64 i jeden adres globalny (które są w delegowanym prefiksie) są przypisane do każdego LAN I / F (eth1 / eth2).
  • radvd na eth1 i eth2 ogłasza RA na podstawie przypisanej podsieci / 64.
  • dhcpd6 na eth1 i eth2 ogłasza dodatkowe informacje o sieci (serwery nazw, lista wyszukiwania domen i adresy serwerów sip) otrzymane z serwera DHCPv6 ISP.

Moja obecna konfiguracja

/ etc / sysconfig / network

NETWORKING=yes
HOSTNAME=xxx.yyy.zzz

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

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

Wynik

Po „# zrestartowaniu sieci serwisowej” klient DHCPv6-PD wydaje się kończyć pomyślnie.

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;
}

Pytanie

Klient DHCPv6-PD został pomyślnie delegowany / 48 prefiksów. Ale potem

  • Jak ustawić domyślną trasę IPv6 w tabeli routingu routera?
  • Jak przypisać globalny adres IPv6 i podsieć / 64 do każdego LAN I / F (eth1 i eth2) na podstawie delegowanego prefiksu?
  • Jak uruchomić radvd, aby ogłosić RA na każdym LAN I / F (eth1 i eth2)?
  • Jak uruchomić serwer DHCPv6 (dhcpd6) na każdym LAN I / F, aby ogłosić dodatkowe informacje o sieci (serwery nazw, lista wyszukiwania domen i adresy serwerów sip) otrzymane z serwera DHCPv6 ISP?

Zgaduję że

Według „$ man dhclient” i „$ man dhclient-script”, skrypt dhclient wydaje się być używany do konfigurowania takich ustawień i oferuje pewne haki. Ale teraz nic nie robi dla klienta DHCPv6-PD.

Tak, być może będę musiał napisać kilka skryptów odpowiednich dla mojego środowiska DHCPv6-PD, chociaż nie znam konfiguracji sieci IPv6. Czy ktoś dał mi znać powyższe ustawienia w skrypcie dhclient? [EDYCJA] Chcę poznać praktyczny skrypt dhclient.

I martwię się, należy zwrócić szczególną uwagę. Na przykład, ponieważ każdy adres IPv6 ma preferowany / prawidłowy czas życia, kiedy przypisuję globalny adres IPv6 do interfejsu LAN na podstawie delegowanego prefiksu, muszę przypisać nie tylko adres IPv6, ale także jego czasy życia, które muszą pochodzić z przekazanego preferowane / ważne czasy życia prefiksu?

Czy może zajść potrzeba ponownej konfiguracji serwera radvd i DHCPv6 w interfejsach LAN, gdy nastąpi ponowna konfiguracja DHCPv6? Którego haka należy użyć?

[EDYCJA] Kiedy nastąpi ponowna konfiguracja DHCPv6, jak ogłosić zarówno nowe, jak i nieaktualne informacje? radvd automatycznie ogłasza, że ​​poprzedni prefiks jest nieaktualny? Serwer DHCPv6 automatycznie ogłasza, że ​​poprzednie serwery nazw są przestarzałe?

Odpowiedzi:


4

Nie znam odpowiedzi na twoje pytanie, ale chcę cię tylko ostrzec przed użyciem adresu serwera DHCP jako routera domyślnego. Jeśli to zadziała, jest to przypadek ... W IPv6 domyślna trasa jest komunikowana przez RA, a nie przez DHCP.

Musisz włączyć przekazywanie, przyjmowanie RA i wysyłanie RS. Problem polega na tym, że jądro zawarte w Centos6 nie pozwala na to. Gdy przekazywanie jest włączone, akceptowanie RA i wysyłanie RS jest wyłączone. Powinno być jednak jądro CentosPlus z odpowiednimi łatkami. Zobacz wątek / wiadomość na liście mailingowej pod adresem http://lists.centos.org/pipermail/centos/2011-April/thread.html#109756

Odpowiednie ustawienia sysctl.conf to:

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
W rzeczywistości chcesz, aby parametr accept_ra wynosił 2 (akceptuj, nawet jeśli routing jest włączony). W przeciwnym razie jądro ignoruje je na routerze.
— Kyle Butt,

2
  • Domyślna trasa IPv6 powinna zostać skonfigurowana przez cokolwiek, co uzyskało domyślne (wstępne) połączenie internetowe, przed użyciem DHCPv6 PD do uzyskania dodatkowych podsieci. Nie wspomniałeś, jak faktycznie łączysz się w górę, więc nie mogę ci pomóc.
  • Używam klienta WIDE DHCPv6 zamiast ISC, więc nie wiem, jak to zrobić konkretnie, ale oczekuję, że ISC ma coś równoważnego z tą opcją konfiguracji WIDE:

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

    Zasadniczo mówisz klientowi DHCP, jak przypisywać podsieci do interfejsów wewnętrznych; powyższa konfiguracja mówi: „Dostaję 4 bity prefiksu do mnie ( sla-len 4), weź pierwszą dostępną podsieć ( sla-id 1) i przypisz ją do eth0( prefix-interface eth0).

  • Skonfiguruj radvd z odpowiednimi interfacezwrotkami (na radvd.confstronie podręcznika są dobre przykłady do pracy), a to po prostu zadziała.
  • Nie mogę ci tam pomóc; poza testowaniem nie korzystam z usługi DHCPv6 (wszystkie informacje o DHCP otrzymuję z serwera DHCP).

Dzięki za odpowiedź. 1. Jak podłączyć się do źródła danych, wystarczy podłączyć kabel Ethernet do FTTH GE-PON. W tej chwili nie ma sposobu, aby określić domyślną trasę IPv6 przez DHCPv6, muszę rozważyć lokalny adres serwera DHCPv6 jako domyślną trasę.
— takaomag

2. Chociaż nie wspomniałem, powodem, dla którego używam ISC dhclient jest to, że mój router musi wysyłać opcję DHCPv6 16 (klasa dostawcy) w swoich komunikatach żądania i żądania, aby uzyskać opcję informacji specyficznych dla dostawcy, która zawiera niektóre Informacje specyficzne dla dostawcy usług internetowych (numer telefonu SIP, adres serwera oprogramowania układowego). Wiem, jak ustawić opcję 16 w ISC dhclient, ale nie znam tego w WIDE-dhcpv6. I nie mogę znaleźć takich ustawień jak „id-assoc” w ISC dhclient.
— takaomag

2
3,4 Mogę być w stanie napisać słabe skrypty do budowy radvd.conf i dhcpd6.conf na podstawie informacji (Prefiks itp.) Z serwera DHCPv6. Ale kiedy nastąpi ponowna konfiguracja DHCPv6, jak ogłosić zarówno nowe, jak i nieaktualne informacje? radvd automatycznie ogłasza, że ​​poprzedni prefiks jest nieaktualny? Serwer DHCPv6 automatycznie ogłasza, że ​​poprzednie serwery nazw są przestarzałe?
— takaomag

W każdym razie chcę poznać praktyczny skrypt dhclient.
— takaomag

Nie dodawaj wszystkich tych informacji w komentarzach do odpowiedzi; dodaj to do swojego pytania .
— womble

-1

Wombie podał tę samą odpowiedź, której użyłbym do konfiguracji radv i routingu. Inet6 został zaprojektowany do samodzielnej konfiguracji bez potrzeby używania serwera DHCP.

Nie używam DHCPv6, ponieważ może być obsługiwany przez radvd i zeroconf. radvd może być skonfigurowany do dostarczania serwerów nazw i może reklamować serwery z /etc/resolv.conf. Nowe wersje radvd wprowadziły również dystrybucję list wyszukiwania.

Skonfigurowałem avahi-demona do dystrybucji usług nazw i serwerów wśród klientów. Będziesz potrzebować klientów, którzy będą w stanie przeprowadzić wykrywanie usług. Nie przeprowadziłem wiele testów wykrywania usług, ponieważ prowadzę sieć z dwoma stosami w całym systemie.


Nawet bez względu na to, czy korzystam z serwera DHCPv6, czy radvd, muszę napisać kilka skryptów, które dynamicznie konstruują dhcpd6.conf lub radvd.conf na podstawie informacji (Prefiks itp.) Z serwera DHCPv6. Ale kiedy nastąpi ponowna konfiguracja DHCPv6, jak ogłosić nowe i nieaktualne informacje hostom po stronie sieci LAN? Jeśli konstruuję nowy plik dhcpd6.conf lub radvd.conf dynamicznie w oparciu o nowe informacje z serwera DHCPv6, czy radvd automatycznie ogłasza, że ​​poprzedni prefiks jest nieaktualny? Serwer DHCPv6 automatycznie ogłasza, że ​​poprzednie serwery nazw są przestarzałe?
— takaomag,

radvd może używać prefiksu :: / 64, aby automatycznie pobierać swoje adresy z interfejsu. Nie musisz przepisywać konfiguracji. Serwery DNS i lista wyszukiwania powinny być danymi statycznymi. Automatyczna konfiguracja IPv6 została zaprojektowana do obsługi migrowanych adresów. Nie wiem, jak dobrze twój dostawca usług internetowych obsługuje przejście. Nie spojrzałem na DHCPv6.
— BillThor,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.