Linuxový router a IPv6 forwarding

Linuxový router a IPv6 forwarding
« kdy: 18. 06. 2019, 22:20:42 »
Dobrý den,

snažím se zprovoznit linuxový router (ubuntu) pro ipv6 forward. Schéma je cca toto:

(isp router) -- ([aaaa:bbbb:cccc:dd00::/56] linux router [aaaa:bbbb:cccc:dd01::/64]) -- (routovaná síť)

Od providera tedy dostávám nějakou /56, z té jsem si odseknul /64, kterou routuji dál. Icmp paket do internetu z routované sítě odchází na isp router, a ten před odpovědí posílá neighbor solicitation na danou adresu z /64 rozsahu, na který mu ovšem nikdo neodpoví. Předpokládám, že odpovědět by měl linux router, ale nemohu přijít na to, jak ho k tomu donutit.
V sysctl mám v default.accept_ra = 2 a zapnutý ipv6 forwarding.

Díky za radu, pokud by s tím někdo měl nějaké zkušenosti.
« Poslední změna: 18. 06. 2019, 23:19:32 od Petr Krčmář »


Jose D

  • *****
  • 896
    • Zobrazit profil
Re:Linuxový router a IPv6 forwarding
« Odpověď #1 kdy: 18. 06. 2019, 23:26:40 »
nainstalovat a nakonfig radvd?

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Linuxový router a IPv6 forwarding
« Odpověď #2 kdy: 19. 06. 2019, 01:49:36 »
Předpokládám, že odpovědět by měl linux router, ale nemohu přijít na to, jak ho k tomu donutit.

Neměl, v IPv4 taky neodpovídáš na ARP dotazy na adresy které jsou někde za tebou.

Od providera tedy dostávám nějakou /56, z té jsem si odseknul /64, kterou routuji dál. Icmp paket do internetu z routované sítě odchází na isp router, a ten před odpovědí posílá neighbor solicitation na danou adresu z /64 rozsahu, na který mu ovšem nikdo neodpoví.

Správně by to mělo fungovat tak, že provider ví, že tuhle adresu má směrovat přes tvůj router, a tudíž se neighbor solicitation zeptá na adresu tvého routeru.

Tohle vypadá jako kdyby ISP nevěděl že sis vyrobil router a považoval tvoji přípojku za jednu velkou /56 síť. Asi mu to budeš muset nějak říct.

V krajním případě by to šlo ohackovat pomocí ND proxy.
« Poslední změna: 19. 06. 2019, 01:54:26 od _Jenda »

Re:Linuxový router a IPv6 forwarding
« Odpověď #3 kdy: 19. 06. 2019, 12:55:08 »
(isp router) -- ([aaaa:bbbb:cccc:dd00::/56] linux router [aaaa:bbbb:cccc:dd01::/64]) -- (routovaná síť)
Prosím upřesni adresy. Nebývá obvyklé, aby ISP router routoval celou /56 jako lokální sít, obvykle z ní vybere první /64, která bude sloužit jako spojovačka. Tedy nějak takto:

Kód: [Vybrat]
(isp router: aaaa:bbbb:cccc:dd00::1/64 -- aaaa:bbbb:cccc:dd00::2/64: linux router: aaaa:bbbb:cccc:dd01::1/64 -- (routovaná síť)
V každém případě v ISP routeru ještě musí existovat cesta k podsíti aaaa:bbbb:cccc:dd01::/64, tedy záznam ve směrovací tabulce ve tvaru:
aaaa:bbbb:cccc:dd01::/64 via aaaa:bbbb:cccc:dd00::2.

Pokud je router od ISP trochu normální, takováhle cesta se v něm automaticky vytvoří, požádáš-li o prefix pomocí DHCPv6. Měl by ale umožňovat aspoň statickou konfiguraci.

mhepp

  • ***
  • 160
    • Zobrazit profil
    • E-mail
Re:Linuxový router a IPv6 forwarding
« Odpověď #4 kdy: 19. 06. 2019, 14:18:07 »
K tomu slouží Neigh... discovery protokol. V Linuxu realizován například démonem ndppd.

Do konfigurace potom dáš:

Kód: [Vybrat]
cat /etc/ndppd.conf

route-ttl 30000
proxy eth0 {
   router yes
   timeout 500
   ttl 30000
   rule aaaa:bbbb:cccc:dd01::/64 {
      iface eth1
   }
}


(eth0 iface k ISP, eth1 iface do routované sítě)

A to stačí.


SB

  • ****
  • 347
    • Zobrazit profil
    • E-mail
Re:Linuxový router a IPv6 forwarding
« Odpověď #5 kdy: 19. 06. 2019, 15:54:15 »
...Nebývá obvyklé, aby ISP router routoval celou /56 jako lokální sít, obvykle z ní vybere první /64, která bude sloužit jako spojovačka...

???
Měl jsem za to, že tohle se řeší linkovou adresou (fe80), aby nedocházelo k zbytečnému použití rozsahu a zanášení bordelu do něj. (Alespoň T-Motýle to tak má.)

Re:Linuxový router a IPv6 forwarding
« Odpověď #6 kdy: 20. 06. 2019, 09:58:14 »
...Nebývá obvyklé, aby ISP router routoval celou /56 jako lokální sít, obvykle z ní vybere první /64, která bude sloužit jako spojovačka...

???
Měl jsem za to, že tohle se řeší linkovou adresou (fe80), aby nedocházelo k zbytečnému použití rozsahu a zanášení bordelu do něj. (Alespoň T-Motýle to tak má.)
Jenže router ISP obvykle neví, jestli za ním bude jen další router uživatele, nebo přímo nějaká koncová stanice. Pokud by na svém vnitřním rozhraní nebyly nastaveny žádné veřejné adresy, přímo připojená zařízení by nefungovala. Proto se neočíslované spojovačky používají jen tam, kde je zcela jisté, že je dané místo pouze spoj mezi routery. A i tak spousta lidí preferuje snadnější debuggovatelnost veřejných adres. Třeba DSL od O2 má i na WAN straně domácího modemu veřejný prefix /64.

Re:Linuxový router a IPv6 forwarding
« Odpověď #7 kdy: 21. 06. 2019, 12:11:09 »
Už hrozně dlouho dělám "do včel", ale tohle mi rovněž hrozně dlouho vrtá hlavou: to se fakt na každý veřejný point-to-point spojovák bude dávat /64 ? Já vím, adresní prostor má 128 bitů...

Zase z druhé strany, zejména v dnešní době, ISP poskytující IPv6 na "přípojku domácnosti" už se nemůže moc vymlouvat, že to je "na připojení jednoho počítače" - protože kdo má dneska doma jenom jeden počítač, žejo. Jedna IP adresa na hlavu, včetně dětí, je ještě dost optimistická varianta. Reálné jsou spíš dvě nebo možná víc. Eventuelně se ISP může vymlouvat "router máte ode mě, dál už si používejte bridge/switche". Ehm no pokud si chci nechat od ISP diktovat základní konfiguraci vnitřní sítě, a nemít kontrolu třeba nad firewallem, tak asi proč ne... takových rejpalů a estétů nás v SoHo segmentu asi mnoho nebude :-(

SB

  • ****
  • 347
    • Zobrazit profil
    • E-mail
Re:Linuxový router a IPv6 forwarding
« Odpověď #8 kdy: 21. 06. 2019, 15:14:08 »
Tady nejde ani tak o to, že přijdete o jednu z 256 sítí, ale že když si je budete chtít hierarchicky po bitech z adresy rozfrcat do podsítí, tak máte problém, protože zabráním jedné /64 routerem (i kdyby to byla jedna /128) už není ten adresní prostor /56 symetrický, takže musíte dělit už jen /57.

Tady jde vidět, že i IPv6 se dá připojit různě, buďto pomocí prefix delegation, nebo pomocí router advertisement (jestli to píšu technicky správně), přičemž to žádný poskytovatel explicitně neuvádí, ani ve smlouvě neřeší (což se nijak neliší od mlhy kolem vlastností IPv4).

Re:Linuxový router a IPv6 forwarding
« Odpověď #9 kdy: 22. 06. 2019, 07:32:49 »
ISP dnes uz nepripojuji jednotlive pocitace, prakticky vzdy jen routery zakazniku. Proto musi:
1. jak pridelit adresu routeru (jsou jen dve varianty: router advertisement, DHCPv6)
2. jak rict routeru, ktere adresy ma pouzivat na sve "LAN" strane (pokud ISP nema kontrolu nad zakaznickym routerem, zbyvaji mu jen moznosti DHCPv6 Prefix Delegation nebo staticka komfigurace v soucinnosti se zakaznikem)
3. jak naroutovat adresy, ktere ma router pouzivat v LAN

Pokud ISP v kroku 1) zacal oznamovat k routeru prefix /56 pomoci router advertisementu, ma to spatne. Router si z tohoto prefixu nemuze snadno vzit nejakou /64 a tu oznamovat do LAN. Aby neco takoveho bylo mozne, musel by fungovat jako Neighbor Discovery Protocol (NDP) Proxy. To je ale spis nouzove reseni a rozhodne neni spravne.

SB

  • ****
  • 347
    • Zobrazit profil
    • E-mail
Re:Linuxový router a IPv6 forwarding
« Odpověď #10 kdy: 24. 06. 2019, 14:06:15 »
Můj router na rozhraní WAN (alespoň ve výchozím stavu) nemá veřejnou 6, přesto vše v LAN jede. Kde udělali soudruzi z T-Mobile chybu?

Re:Linuxový router a IPv6 forwarding
« Odpověď #11 kdy: 24. 06. 2019, 18:05:35 »
Můj router na rozhraní WAN (alespoň ve výchozím stavu) nemá veřejnou 6, přesto vše v LAN jede. Kde udělali soudruzi z T-Mobile chybu?
To neni podminka. Pokud se bavime o DSL (jinde TM IPv6 nema), tam BRAS routuje delegovany prefix do PPPoE tunelu, tj. ani nepotrebuje znat globalni/link-local adresu.

SB

  • ****
  • 347
    • Zobrazit profil
    • E-mail
Re:Linuxový router a IPv6 forwarding
« Odpověď #12 kdy: 25. 06. 2019, 09:43:54 »
To chápu. Bavíme se o tom proto, že splnění bodu 1 je pro zákazníka nežádoucí, protože mu ubírá využitelný rozsah vnitřní sítě. Když už nutně musí mít ISP (jakože zjevně nemusí) veřejnou adresu na WAN routeru zákazníka, nemohl by si pro všechny zákaznické routery vyhradit jeden vlastní prefix?

Re:Linuxový router a IPv6 forwarding
« Odpověď #13 kdy: 27. 06. 2019, 08:47:17 »
Ovsem ja jsem nepsal o tom, ze operator vyhradi napr. /56 a z nej vybere jeden prefix a ten pak pouzije na WAN. :-) Tenhle rezim sice je standardizovan (https://tools.ietf.org/html/rfc6603), ale na beznych domacich routerech neni obvykle podporovan. Mel by se jednoho dne vyuzivat v sitich zalozenych na standardech 3GPP, kde se s touhle variantou pocita.

Na beznych pripojkach typu xDSL, GPON, Wi-Fi/FWA mate na WAN skutecne adresu z jineho prefixu nez z toho, ktery dostanete na LAN. Operator pak vyhradi napr. /64 + /64 (O2) nebo /64 + /56 (T-Mobile, Metronet).
Alternativne na WAN zadny prefix byt nemusi a routuje se na link-local adresu protistrany nebo "do tunelu" (u PPPoE).
Na kabelovkach je zase bezne, ze WAN strana dostane _jednu_ adresu z DHCPv6 plus delegovany prefix (/56, /60, atp.). Takhle to standardizoval DOCSIS.

Pak je jeste pristup, kdy zadny delegovany prefix nemate, a mate tedy jen /64 na WAN. Abyste dostal IPv6 i do LAN, musite provadet bud NDP proxy nebo prefix sharing (https://tools.ietf.org/html/rfc7278 - smazu prefix/adresu z WAN a nakonfiguruji na LAN; funguje to jen diky tomu, ze mam cely prefix pro sebe a protistrana routuje "do tunelu"; tohle je bezny pristup v mobilnich sitich na mobilech u funkce "osobni hotspot").