Czy router powinien używać SLAAC do przypisywania adresów IPv6?

11

Jestem trochę zdezorientowany następującymi 2 RFC dotyczącymi IPv6:

  • RFC 4862 (autokonfiguracja adresu bezstanowego IPv6)
  • RFC 7084 (wymagania dotyczące routera IPv6 CE)

RFC 4862 stwierdza:

Proces autokonfiguracji określony w tym dokumencie dotyczy tylko hostów, a nie routerów. Ponieważ automatyczna konfiguracja hosta korzysta z informacji ogłaszanych przez routery, routery należy skonfigurować w inny sposób.

RFC 7084 wymienia jedno ze swoich wymagań konfiguracyjnych po stronie sieci WAN do przypisywania adresów jako:

WAA-1: Router IPv6 CE MUSI obsługiwać automatyczną konfigurację adresów bezstanowych (SLAAC) [RFC4862].

Czy jest tu jakaś sprzeczność?

Czy router powinien mieć możliwość automatycznej konfiguracji adresu IPv6 dla interfejsu WAN?


Dlaczego mówi RFC 4862

Ponieważ automatyczna konfiguracja hosta korzysta z informacji ogłaszanych przez routery, routery należy skonfigurować w inny sposób.

Jeśli na przykład używam routera do połączenia mojej sieci LAN z usługodawcą internetowym, czy nie ma routera w sieci usługodawcy internetowego, który mówi do mojego routera?

Pomyślałbym, że całkowicie rozsądne jest połączenie 2 (lub więcej) routerów. W takim przypadku, dlaczego nie użyć SLAAC na interfejsie WAN drugiego routera?


Może problem sprowadza się do sztucznego rozróżnienia między hostami a routerami? Z RFC 4862:

node - urządzenie, które implementuje IP.

router - węzeł, który przekazuje pakiety IP, które nie są wyraźnie zaadresowane do siebie.

host - dowolny węzeł, który nie jest routerem.

Ale czy host (tj. Komputer, na którym są hostowane serwery lub aplikacje) nie może również mieć tabeli routingu i działać jako router? I znów skutecznie łączymy 2 routery.


Edycja : dodatkowe informacje, które później odkryłem ...

Jądro Linux obsługuje SLAAC i ściśle przestrzega RFC 4862. Aż do rozróżnienia między hostami a routerami. Zobacz dokumentację jądra na ip-sysctl :

  • Zakłada się zachowanie HOST. Co oznacza, że ​​żądania routera zostaną wysłane, a reklamy routera zostaną użyte do autokonfiguracji adresu.
  • Tylko jeśli przekazywanie jest włączone ( /proc/sys/net/ipv6/conf/all/forwarding), urządzenie jest traktowane jako ROUTER . Co oznacza, że ​​żadne zaproszenia routera nie zostaną wysłane, a reklamy routera zostaną zignorowane.

Okazuje się, że to rozróżnienie sięga daleko wstecz, przed IPv6. Zobacz parametr /proc/sys/net/ipv4/ip_forward:

Ta zmienna jest wyjątkowa, jej zmiana resetuje wszystkie parametry konfiguracyjne do stanu domyślnego ( RFC1122 dla hostów, RFC1812 dla routerów)

banjaxed
źródło

Odpowiedzi:

7

W RFC 7084 stwierdza także:

W-1: Gdy router jest podłączony do łącza interfejsu WAN, MUSI działać jako host IPv6 w celu przypisania adresu interfejsu bezstanowego [RFC4862] lub stanowego [RFC3315].

Krótko mówiąc, tak - router powinien móc automatycznie skonfigurować adres IPv6 dla swojego interfejsu WAN.

W rzeczywistości jednak większość dostawców usług internetowych implementuje DHCPv6 i DHCPv6-PD ( RFC3633 ) do przydzielania adresów w dalszej kolejności, wraz z delegowaniem prefiksu.

Zapewnia to, że router nie tylko otrzymuje adres na interfejsie WAN, ale także otrzymuje prefiks, którego może używać również na wewnętrznym interfejsie LAN.

Benjamin Dale
źródło
6

RFC 4862 naprawdę opisuje routery w ramach jednej kontroli administracyjnej. RFC 7084 wyjaśnia, jak powinny się zachowywać routery klientów. Daje to ISP pewną swobodę w zakresie obsługi IPv6 dla swoich klientów.

Dla routera PE router CE jest hostem. Z punktu widzenia sieci LAN (domena warstwy 2, w tym łącze z PE do CE), router jest naprawdę kolejnym hostem w sieci. W większości przypadków adresy łączy WAN będą definiowane statycznie, za pośrednictwem DHCP lub PPP, a nie przy użyciu SLAAC.

Myślę, że przegapiłeś tę część RFC 7084, która poprzedza to, co zacytowałeś:

Wymagania po stronie WAN:

W-1: Gdy router jest podłączony do łącza interfejsu WAN, MUSI działać jako host IPv6 do celów bezstanowego [ RFC4862 ] lub stanowego [ RFC3315 ] przypisania adresu.

Ron Maupin
źródło
1
Wielu dostawców usług internetowych obsługuje również nienumerowane połączenie WAN (tylko połączenie lokalne). Wszystko, co dzieje się na łączu WAN, to router ISP wysyłający pakiety do CPE i CPE wysyłające pakiety do domyślnej bramy. Oba zazwyczaj i tak używają adresów lokalnych.
Sander Steffann,
5

Dlaczego RFC 4862 mówi: „Ponieważ automatyczna konfiguracja hosta wykorzystuje informacje reklamowane przez routery, routery będą musiały zostać skonfigurowane w inny sposób”.

Ludzie, którzy napisali ten dokument (i jego poprzednik RFC 2462) prawie na pewno wiedzieli, że istnieją dwa typy urządzeń. „hosty”, które były liczne i stanowiły obciążenie do zarządzania, oraz „routery”, którymi zarządzali kompetentni administratorzy sieci.

Na początku XXI wieku wzrosła liczba zawsze dostępnych połączeń DSL / kablowych, a także liczba osób, które miały w domu więcej niż jeden komputer, który mógł korzystać z połączenia internetowego. Ponieważ wielu dostawców usług internetowych podało klientowi tylko jeden adres IP (przynajmniej bez dodatkowych opłat), zauważyliśmy ogromny wzrost użycia „routerów domowych” z NAT do ukrywania wielu komputerów za takim połączeniem. NAT pozwolił „routerowi domowemu” ukryć przed ISP jego prawdziwą naturę, o ile chodziło o dostawcę usług internetowych, „router domowy” był jak host.

Takie użycie było początkowo „tolerowane” przez dostawców usług internetowych, ale ostatecznie zdecydowali, że to wcale nie jest takie złe i zaczęli wręczać / sprzedawać „domowe routery” swoim klientom. W rezultacie otrzymaliśmy ogromną liczbę tych urządzeń siedzących w domach i małych firmach.

Dopiero stosunkowo niedawno IETF zaczął właściwie badać, w jaki sposób „domowe routery” i obsługujący je dostawcy usług internetowych powinni zachowywać się w kontekście IPv6. Odpowiedź jest taka, że ​​interfejs „po stronie WAN” powinien zachowywać się jak host, podczas gdy interfejsy „po stronie LAN” powinny zachowywać się jak zwykły router. Ponieważ nie ma translacji NAT, potrzebne są dodatkowe informacje do obsługi adresów dostarczanych po stronie LAN.


Jeśli chodzi o jądro Linuksa, rzeczywiście domyślnie ignoruje RA, gdy routing jest włączony, ale zachowanie to można w razie potrzeby zastąpić.

Peter Green
źródło
Nie wspomniałeś, jak zastąpić. W moim pliku / etc / network / interfaces mam następujące polecenie sysctl -w net.ipv6.conf.eth0.accept_ra = 2, które moim zdaniem jest ustawieniem umożliwiającym włączenie RA.
tgunr
Tak, 0 jest wyłączone, 1 to tryb normalny (włączony dla hostów, ale nie routerów), a 2 to włączenie wymuszone.
Peter Green,