Praktické dotazy k IPv6

pepak

Praktické dotazy k IPv6
« kdy: 17. 09. 2012, 07:22:11 »
Zdejší flamovací vlákno "IPv6 - Pověry a fakta" mě znovu upozornilo, že bych pomalu měl řešit nový protokol. Dosud to vždycky vypadalo tak, že jsem se pustil do studia podkladů a následně došel k závěru, že problém buď vyřešit nelze, nebo vyřešit lze, ale zatím pro to nejsou k dispozici zařízení, která by to uměla.

Mám tyto požadavky "ze světa IPv4 a NAT", které bych chtěl nějakým způsobem splnit "ve světě IPv6":

1) Struktura vnitřní sítě musí být absolutně nezávislá na tom, co mi přidělí poskytovatel. Na IPv4 dostanu nějakou adresu A, kterou zná akorát router a za routerem si používám svoje neveřejné adresy, které jsem si sám určil a sám si je spravuji. Pokud mi poskytovatel přidělí novou adresu B, nebo dokonce přejdu k jinému poskytovateli a dostanu adresu C, tak o této změně informuji pouze router a celá vnitřní síť zůstane nezměněna.

- Jde tohle udělat ve světě IPv6? A pokud ano, jak?

2) Struktura vnitřní sítě nesmí být vypozorovatelná zvenku. V IPv4 to NAT docela uspokojivě řeší - všechny vnitřní počítače se se svými požadavky obrátí na router, který "svým jménem a na svůj účet" provede požadavek směrem ven, přijme odpověď a tu pak odešle původci požadavku. Pokud pominu případy, kdy použitý protokol vyšší úrovně sám leakuje informaci o vnitřní síti, a odhady na bázi specifik operačních systémů ("Windows XP normálně dovolí jen 10 odchozích spojení, takže pokud jich před lokální sítí vidím sto, tak to spíš signalizuje víc počítačů za routerem než jeden počítač s hacknutými Windows"), tak zvenku nelze poznat, jestli je moje vnitřní síť tvořena jedním počítačem nebo desítkou počítačů.

- Jde tohle udělat ve světě IPv6? Jestli jsem to dobře pochopil, mělo by to jít jiným mechanismem, ale se stejným koncovým výsledkem, pomocí Privacy Extensions - akorát nevidím, jak to spojit s požadavkem 1 výše.

3) Musí být možné jednoznačně rozpoznat, jestli požadavek nebo odpověď příchází z vnitřní nebo z vnější sítě. Ve světě IPv4 to dokážu dost snadno podle vnější adresy, protože mám zaručeno (aspoň tomu u svého routeru věřím), že router zahodí veškeré packety přicházející z vnější sítě, které mají adresu spadající mezi privátní rozsahy. Naopak ve vnitřní síti používám jedině privátní rozsahy. Tzn. pokud mi přijde packet se zdrojovou adresou v privátním rozsahu, vím, že jde o vnitřní komunikaci, a pokud přijde packet se zdrojovou adresou mimo privátní rozsah, vím, že jde o vnější komunikaci.

- Jde tohle udělat ve světě IPv6? Zdá se mi, že by to mohlo jít, kdybych na routeru zahazoval veškerou komunikaci, která přichází z vnější sítě a současně má zdrojovou adresu v rozsahu, který jsem uvedl jako privátní. Ale opět nevidím, jak to spojit s požadavkem 2. Plus dále nemám představu, jestli to nějaký levný*) router umí.

*) "Levný": Chci to domů. Nemám problém za to zaplatit nějaké rozumné peníze, ale při vědomí, že průmyslový router za desítky tisíc pro domácí použití za rozumnou investici nepovažuji. Tzn. řekněme v ceně do 5K Kč.

Možná by to celé šlo zařídit tak, že i pro svět IPv6, který to "nepotřebuje", implementuji NAT? (Tentokrát skutečný NAT, ne NAPT.)

Prosím, v zájmu diskuse, vyhněme se diskusi o užitečnosti, smysluplnosti, nahraditelnosti apod. těchto požadavků. Pro tuto diskusi je chápu jako konstantu, která musí být plně splněna, i kdyby se stokrát jevila jako nesmyslná. Děkuji.


Petr Černohouz

Re:Praktické dotazy k IPv6
« Odpověď #1 kdy: 17. 09. 2012, 09:04:13 »
První požadavek  jde vyřešit celkem obstojně, u druhého jsou určitá omezení a třetí se dá vyřešit také, jen není mnoho routerů na výběr.

1) Zde se dá využít běžé vlastnosti, že jedno rozhraní může mít více adres a tuíž krom globální adresy se může síť oadresovat unikátními lokálními adresami (obdoba lokálních adres v IPv4) které zůstanou stejné i při změně poskytovatele. Při propojování uvnitř sítě se pak použijí tyto adresy a není nutné je měnit. Při změně poskytovatele se ale změní globální adresy, takže to asi neni řešení na 100%.

2) privacy extension pouze znemožní spočítat hosty v síti, protože ti si pravidelně mění identifikátor rozhraní (posledních 64 bitu IPv6 adresy) ale nezamezí rozpoznání například subnetů. s požadavken 1 se to pojí právě tím, že v IPv6 je běžné mít na jednom rozhraní více IPv6 adres zároveň, proto tam můžete mít jak ULA tak adresu s privacy extension

3) toto se dá řeši na firewalu routeru, požadavky z prefixu vnitřní sítě přijaté na wan se zahodí. Důležité je vybírat router, který umí IPv6 firewall, což bohužel není samozřejmé. nápomocný by mohl být například náš katalog routerů, který je na domací routery zaměřen (http://katr.labs.nic.cz)

Nejsou to řešení dokonalá a přesně padnoucí na popsané požadavky. Největší slabinu má řešení v bodě 2, ale to je obecně problém s IPv6, kde je přímá adresovatelnost (a z toho plynoucí i viditelnost sítě) jeden ze základů. Snad to i tak bude nápomocno.

Petr Černohouz
Laboratoře CZ.NIC


SLAC

Re:Praktické dotazy k IPv6
« Odpověď #2 kdy: 17. 09. 2012, 10:27:35 »
1) Zde se dá využít běžé vlastnosti, že jedno rozhraní může mít více adres a tuíž krom globální adresy se může síť oadresovat unikátními lokálními adresami (obdoba lokálních adres v IPv4) které zůstanou stejné i při změně poskytovatele. Při propojování uvnitř sítě se pak použijí tyto adresy a není nutné je měnit. Při změně poskytovatele se ale změní globální adresy, takže to asi neni řešení na 100%.

Pokud se pro konfiguraci IP adres ve vnitřní síti použije bezestavová konfigurace, ani přístup do internetu není problém - prostě jen router začne ohlašovat nový prefix a všichni ve vnitřní síti se přizpůsobí. Snad by to samé šlo i s DHCPv6, ale to nemám vyzkoušené - DHCPv6 totiž v porovnání s bezestavovou konfigurací považuji za zbytečně složité a nepřinášející žádné reálné benefity.

pepak

Re:Praktické dotazy k IPv6
« Odpověď #3 kdy: 17. 09. 2012, 12:29:16 »
Díky za odpověď, Petře. Je dobré vědět, že ty požadavky aspoň nějak řešit jdou.

1) Zde se dá využít běžé vlastnosti, že jedno rozhraní může mít více adres a tuíž krom globální adresy se může síť oadresovat unikátními lokálními adresami (obdoba lokálních adres v IPv4) které zůstanou stejné i při změně poskytovatele. Při propojování uvnitř sítě se pak použijí tyto adresy a není nutné je měnit.
To je mi jasné. Nechápu ale, jak se při odesílání požadavku určí zdrojová adresa v TCP packetu (tzn. adresa, na kterou přijde odpověď). Dejme tomu, že mám pro počítač nadefinované dvě adresy, jednu globální (G) a jednu lokální (L). Dále mám webový prohlížeč, ze kterého přistupuji ke dvěma serverům, jednomu ve vnitřní síti, druhému ve vnější síti. No a já bych chtěl, aby packet směřující do lokální sítě měl jako zdrojovou adresu L, zatímco packet směřující na externí server by měl G. Myšleno speciálně na Windows, pokud se to mezi různými OS liší.

(Měl jsem totiž představu, že na externím interfacu budu zahazovat všechno, co má cílovou adresu z lokálního rozsahu, a na interním interfacu budu zahazovat cokoliv, co má zdrojovou adresu z lokálního rozsahu.)

Citace
2) privacy extension pouze znemožní spočítat hosty v síti, protože ti si pravidelně mění identifikátor rozhraní (posledních 64 bitu IPv6 adresy) ale nezamezí rozpoznání například subnetů.
Tak to by mi až tak nevadilo, chci to na doma, takže bych vystačil i s jedním subnetem.

Citace
3) toto se dá řeši na firewalu routeru, požadavky z prefixu vnitřní sítě přijaté na wan se zahodí. Důležité je vybírat router, který umí IPv6 firewall, což bohužel není samozřejmé. nápomocný by mohl být například náš katalog routerů, který je na domací routery zaměřen (http://katr.labs.nic.cz)
Díky, ten odkaz si důkladně prostuduji.

Re:Praktické dotazy k IPv6
« Odpověď #4 kdy: 17. 09. 2012, 13:09:34 »
To je mi jasné. Nechápu ale, jak se při odesílání požadavku určí zdrojová adresa v TCP packetu (tzn. adresa, na kterou přijde odpověď). Dejme tomu, že mám pro počítač nadefinované dvě adresy, jednu globální (G) a jednu lokální (L). Dále mám webový prohlížeč, ze kterého přistupuji ke dvěma serverům, jednomu ve vnitřní síti, druhému ve vnější síti. No a já bych chtěl, aby packet směřující do lokální sítě měl jako zdrojovou adresu L, zatímco packet směřující na externí server by měl G. Myšleno speciálně na Windows, pokud se to mezi různými OS liší.
Postup volby adresy je poměrně složitý a nejlépe se tomu věnuje kapitola 3.12 na straně 84 knihy o IPv6. Ve zkratce: Nejprve se vybere cílová adresa, mimo jiné i tak, aby byla preferování ta s kratším dosahem. Pak se k tomu vybere odpovídající zdrojová adresa tak, aby se k sobě nejlépe hodily. Pokud tedy z DNS vypadne globální adresa a ULA adresa, měla by být vybrána ULA, protože má menší dosah. Při navazování spojení na ULA adresu se vždy vybere zdrojová ULA adresa, protože má shodný dosah a nejdelší společný prefix.

Další možností je použití split DNS, kdy do vnitřní sítě budou hlášeny pouze ULA adresy, zatímco do Internetu pouze globální adresy.


Kulich

Re:Praktické dotazy k IPv6
« Odpověď #5 kdy: 17. 09. 2012, 14:30:46 »
Já jsem si postavil router s VIA procesorem který jsem sehnal levně a na něm provozuji Pfsense 2.1 Beta.
Umí už IPv6 a má i DHCPv6. Funguje v pohodě, přístupy z venku na vnitřní IPv6 blokuje.
Zatím jsem spokojen.

Radek Hladik

Re:Praktické dotazy k IPv6
« Odpověď #6 kdy: 17. 09. 2012, 16:16:52 »
Přesně na ten problém v bodě 1) jsem se už několikrát ptal. Všechny navrhované mechanismy vyžadují "spolupráci" klientů. Má to své výhody i nevýhody. Další možností (i když kontroverzní) je použití nějakého mapování 1:1, například tuším netfilter umí target NETMAP i pro IPv6. Pak se dají použít site-specific adresy a mapovat je na routeru. Má to své výhody i nevýhody, zastánce i zuřivé odpůrce, ale rozhodně by to mělo být funkční řešení (sám jsem zatím ještě nezkoušel).

Radek Hladik

Re:Praktické dotazy k IPv6
« Odpověď #7 kdy: 17. 09. 2012, 16:20:20 »
A ještě k tomu routeru, vcelku dobrou implementaci mají Mikrotiky, třeba http://www.i4wifi.cz/rb750-32-mb-ram-400-mhz-5x-lan-vc-l4_d1499.html . Stojí to pár stovek, je to poměrně robustní, komfortní a žere to 00nic. Nevýhodou je, že co tam není, to se tam nedostane, ale zase co tam je, to většinou funguje bez problému a dobře....

Re:Praktické dotazy k IPv6
« Odpověď #8 kdy: 17. 09. 2012, 16:37:38 »
A ještě k tomu routeru, vcelku dobrou implementaci mají Mikrotiky, třeba http://www.i4wifi.cz/rb750-32-mb-ram-400-mhz-5x-lan-vc-l4_d1499.html . Stojí to pár stovek, je to poměrně robustní, komfortní a žere to 00nic. Nevýhodou je, že co tam není, to se tam nedostane, ale zase co tam je, to většinou funguje bez problému a dobře....
Jo, to je dobrá krabička, zrovna jsem jednu kupoval. Jenom to má jednu zajímavou feature, že první port je jakoby wan a nejde dát do switche.

Sten

Re:Praktické dotazy k IPv6
« Odpověď #9 kdy: 17. 09. 2012, 16:58:25 »
Jo, to je dobrá krabička, zrovna jsem jednu kupoval. Jenom to má jednu zajímavou feature, že první port je jakoby wan a nejde dát do switche.

Co? Kterej Mikrotik? Mám RouterBoardy 433 a 750 a na obou si můžete porty poskládat, jak uznáte za vhodné

Re:Praktické dotazy k IPv6
« Odpověď #10 kdy: 17. 09. 2012, 17:02:59 »
Co? Kterej Mikrotik? Mám RouterBoardy 433 a 750 a na obou si můžete porty poskládat, jak uznáte za vhodné
Citace
There are five individual Ethernet ports. Ports 2-5 are connected to a switch and can be switched together by
an option in the RouterOS software.
http://routerboard.com/pdf/356/rb750gl-ug.pdf

Sten

Re:Praktické dotazy k IPv6
« Odpověď #11 kdy: 17. 09. 2012, 19:48:40 »
Citace
There are five individual Ethernet ports. Ports 2-5 are connected to a switch and can be switched together by
an option in the RouterOS software.
http://routerboard.com/pdf/356/rb750gl-ug.pdf

Aha, beru zpět, používám všude bridge a ten funguje

Majklik

Re:Praktické dotazy k IPv6
« Odpověď #12 kdy: 17. 09. 2012, 23:20:39 »
Jo, to je dobrá krabička, zrovna jsem jednu kupoval. Jenom to má jednu zajímavou feature, že první port je jakoby wan a nejde dát do switche.

Ale jde dát do switche. Je to konfigurovatelné, zda ether1 jde přímo do CPU svou vlastní linkou (což je default stav a vhodné pro funkci routeru, kde je ether1 WAN a zbytek LAN) nebo všech pět portů je zapojeno do jednoho switch chipu (a s CPU spojeno jendou linkou).
Viz volba /interface ethernet switch set switch1 switch-all-ports=yes

j

Re:Praktické dotazy k IPv6
« Odpověď #13 kdy: 18. 09. 2012, 17:27:24 »
2pepak

ad 1) taky si muzes poridit PI adresy, coz v pripade IPv6 asi nebude nikterak zasadni problem => mas svuj vlastni rozsah verejnych adres, provideru muzes mit kolik chces, jen jim oznamis, jaky rozsah adres maji routovat.

ad 2) ono lze schovat strukturu site za NATem? Vazne? To by me zajimalo jak ... protoze kazdej prohlizec s aktivnim scriptovanim vyzvani svoji privatni adresu. K privacy extensions asi toliko, ze zdaleka ne kazda aplikace to pouziva spravne - aktualne vim napr o ftp klientech (v TC a fillezilla) ktere pouziji fixni IPv6 adresu misto te random.

ad 3) tady jen pozor, ze pokud bys chtel resit nejakou rozsahlejsi sit, tak stav, kdy ti prijde zvenku paket se zdrojovou adresou "uvnitr" muze byt normalni - napriklad pokud mas dva subnety, kazdy ma nejakyho jinyho providera, a doslo k preruseni primeho spoje.

Ad HW: Mikrotik je sice pouzitelnej, ale v nekterych ohledech je to ... dobrou zkusenost mam trebas s linksysem (coz je levny cisco). Dodavany softik taky nic moc, ale da se to (ve vetsine pripadu - treba overit predem) snadno flashnout trebas na openwrt/ddwrt/... => dostanes prakticky plnohodnotnyho tucnaka.

Na NAT na IPv6 zapomen. Naprosty nesmysl. Mam tu dualstack - sit o cca 150 zarizenich. Firewall IPv6 ma 1/10 pravidel => desetinova pravdepodobnost ze je nekde chyba.

DgBd

  • ****
  • 282
    • Zobrazit profil
    • E-mail
Re:Praktické dotazy k IPv6
« Odpověď #14 kdy: 18. 09. 2012, 17:31:00 »
ad 2) ono lze schovat strukturu site za NATem? Vazne? To by me zajimalo jak ... protoze kazdej prohlizec s aktivnim scriptovanim vyzvani svoji privatni adresu. K privacy extensions asi toliko, ze zdaleka ne kazda aplikace to pouziva spravne - aktualne vim napr o ftp klientech (v TC a fillezilla) ktere pouziji fixni IPv6 adresu misto te random.


To je v podstatě správně, protože FTP standardně navazuje datové spojení zpět a do té staré dočasné by se už třeba nemusel trefit. (ikdyž to je spíš tak na jistotu, protože zaniknout u existujícího kontrolního spojení by neměla)