IPv6: Porovnání verzí
Značka: editace z Vizuálního editoru |
(Update příděl pro hkfree /32 vs. /29. Odkaz na adresní plán na confluence.) Značka: editace z Vizuálního editoru |
||
Řádek 1: | Řádek 1: | ||
==Adresace== | ==Adresace== | ||
− | * prefix IPv6 pro celé HKfree je '''2a01:168::/ | + | *prefix IPv6 pro celé HKfree je '''2a01:168::/29''' v kompletním zapisu: 2a01:168:0000:0000:0000:0000:0000:0000/29, zápis "::" znamená doplň celý zbytek adresy nulami, |
− | * kazda oblast dostane prefix / | + | *kazda oblast dostane prefix /40, příděly subnetů /40 řeší Kendy ripe@hkfree.org a evidujou se v tabulce <nowiki>https://ripe.hkfree.org</nowiki> |
− | + | ||
− | * linkove adresy nejsou potreba - viz link scope, adresy se generují "automaticky" o páteřní IP se tím pádem vůbec nestaráme, | + | Adresní plán [https://confluence.hkfree.org/pages/viewpage.action?pageId=76548445 ZDE]. |
− | * pokud nejaky router lezi na rozhrani mezi 2 oblastmi a mel by mit ipv6 adresu, tak se pouzije cislo jedne z oblasti, | + | |
− | * adresy aplikacnich serveru se prideluji z rozsahu 2a01:168::/48, | + | *linkove adresy nejsou potreba - viz link scope, adresy se generují "automaticky" o páteřní IP se tím pádem vůbec nestaráme, |
− | * [[Klientské zařízení s podporou IPv6]], | + | *pokud nejaky router lezi na rozhrani mezi 2 oblastmi a mel by mit ipv6 adresu, tak se pouzije cislo jedne z oblasti, |
− | * [http://petrkrcmar.blog.root.cz/2010/10/25/cim-si-vyzkouset-ipv6/ Test IPv6]. | + | *adresy aplikacnich serveru se prideluji z rozsahu 2a01:168::/48, |
+ | *[[Klientské zařízení s podporou IPv6]], | ||
+ | *[http://petrkrcmar.blog.root.cz/2010/10/25/cim-si-vyzkouset-ipv6/ Test IPv6]. | ||
==Jak pridelit IPv6 adresu/rozsah (pro spravce)== | ==Jak pridelit IPv6 adresu/rozsah (pro spravce)== | ||
Řádek 19: | Řádek 21: | ||
</pre> | </pre> | ||
− | 2) Toto cislo | + | 2) Toto cislo vlozim do '''2a01:168:XX00::/40''' a tak ziskam rozsah pro celou oblast |
+ | |||
+ | *Priklad: | ||
− | |||
mam oblast 160 tudiz cislo oblasti je a0 a mam vsesmer, LAN a 2x sektor, dale je na LAN jedna uzivatelska sit za routerem, takze site, ktere pouziji budou | mam oblast 160 tudiz cislo oblasti je a0 a mam vsesmer, LAN a 2x sektor, dale je na LAN jedna uzivatelska sit za routerem, takze site, ktere pouziji budou | ||
− | ** pro vsesmer 2a01:168: | + | |
− | *** pro uzivatelskou podsit na LAN 2a01:168: | + | **pro vsesmer 2a01:168:a000:0000::/64 - zkracene 2a01:168:a000::/64 |
− | ** pro sektor 1 2a01:168: | + | ***pro uzivatelskou podsit na LAN 2a01:168:a000:0101::/64 - zkracene 2a01:168:a000:101:/64 |
− | ** pro sektor 2 2a01:168: | + | **pro sektor 1 2a01:168:a000:0200::/64 - zkracene 2a01:168:a000:200:/64 |
+ | **pro sektor 2 2a01:168:a000:0300::/64 - zkracene 2a01:168:a000:300:/64 | ||
Řádek 78: | Řádek 82: | ||
==Soucasny stav== | ==Soucasny stav== | ||
− | * IPv6 je funkční na igw, kde bezi ospf6d | + | *IPv6 je funkční na igw, kde bezi ospf6d |
− | * Mame pridelen IPv6 prefix od RIPE | + | *Mame pridelen IPv6 prefix od RIPE |
− | * DNS servery - 2a01:168:0:10::f, 2a01:168:7:a00::245 | + | *DNS servery - 2a01:168:0:10::f, 2a01:168:7:a00::245 |
Stará tabulka - tohle už neplatí. Od 5/2019 je nový adresní plán https://confluence.hkfree.org/x/XQmQB, alokace subnetů pro oblasti https://ripe.hkfree.org/#ipv6 | Stará tabulka - tohle už neplatí. Od 5/2019 je nový adresní plán https://confluence.hkfree.org/x/XQmQB, alokace subnetů pro oblasti https://ripe.hkfree.org/#ipv6 | ||
{| border="1" | {| border="1" | ||
− | | | + | |'''<s>Oblast</s>'''||'''<s>Podpora na pateri</s>'''||'''<s>Podpora u klientu</s>'''||'''<s>IPv6 Adresa routeru</s>''' |
|- | |- | ||
− | | | + | |<s>D-network</s>||<s>Ano</s>||<s>Ano (pouze klienti, kteri jsou na stejnem subnetu jako hlavni routr)</s>||<s>2a01:168:3::1</s> |
|- | |- | ||
− | | | + | |<s>JNet</s>||<s>Ano</s>||<s>Ano</s>||<s>2a01:168:36::1</s> |
|- | |- | ||
− | | | + | |<s>Slatina</s>||<s>Ano</s>||<s>Castecne</s>||<s>2a01:168:7::a00::1</s> |
|- | |- | ||
− | | | + | |<s>Libuse</s>||<s>Ano</s>||<s>Neznamo</s>||<s>2a01:168:2::1</s> |
|- | |- | ||
− | | | + | |<s>Piletice</s>||<s>Ano</s>||<s>Ne</s>||<s>2a01:168:31:700::1</s> |
|- | |- | ||
− | | | + | |<s>Podulsany</s>||<s>Ano</s>||<s>Ano</s>||<s>2a01:168:a::1</s> |
|- | |- | ||
− | | | + | |<s>Yzop</s>||<s>Neznamo</s>||<s>Neznamo</s>||<s>Neznamo</s> |
|- | |- | ||
− | | | + | |<s>Lhotka</s>||<s>Neznamo</s>||<s>Neznamo</s>||<s>Neznamo</s> |
|- | |- | ||
− | | | + | |<s>Postman</s>||<s>Ano</s>||<s>Ano</s>||<s>2a01:168:3c:1000::1</s> |
|- | |- | ||
− | | | + | |<s>Plotiště</s>||<s>Ano</s>||<s>Neznamo</s>||<s>2a01:168:8::1</s> |
|- | |- | ||
− | | | + | |<s>Kalinka</s>||<s>Ano</s>||<s>Neznamo</s>||<s>2a01:168:8:8000::1</s> |
|- | |- | ||
|<s>Drtinova</s> | |<s>Drtinova</s> | ||
Řádek 116: | Řádek 120: | ||
|<s>2a01:168:003f:1000::1</s> | |<s>2a01:168:003f:1000::1</s> | ||
|- | |- | ||
− | | | + | |<s>Mandysova</s>||<s>Ne</s>||<s>Ano</s>||<s>2a01:168:35:40::107</s> |
|- | |- | ||
− | | | + | |<s>Dolany</s>||<s>Ano</s>||<s>Ano</s>||<s>2a01:168:ad::1</s> |
|- | |- | ||
− | | | + | |<s>Plch</s>||<s>Ano</s>||<s>Ano</s>||<s>Doplnim</s> |
|- | |- | ||
− | | | + | |<s>Benesova</s>||<s>Ano</s>||<s>Ano</s>||<s>2a01:168:10::1</s> |
|- | |- | ||
− | | | + | |<s>Trebes</s>||<s>Ano</s>||<s>Ne</s>||<s>2a01:168:8c:1::1</s> |
|- | |- | ||
− | | | + | |<s>Vecino</s>||<s>Ano</s>||<s>Castecne</s>||<s>2a01:168:50::1</s> |
|- | |- | ||
− | | | + | |<s>Hive</s>||<s>Ano</s>||<s>Castecne</s>||<s>2a01:168:1f:1::1</s> |
|- | |- | ||
− | | | + | |<s>Hvezda</s>||<s>Ano</s>||<s>Castecne</s>||<s>2a01:168:19::1</s> |
|- | |- | ||
− | | | + | |<s>Horakova</s>||<s>Ano</s>||<s>Castecne</s>||<s>2a01:168:5b::1</s> |
|- | |- | ||
− | | | + | |<s>Hydra</s>||<s>Ano</s>||<s>Ne</s>||<s>2a01:168:e::1</s> |
|- | |- | ||
− | | | + | |<s>Zvonicka</s>||<s>Ano</s>||<s>Castecne</s>||<s>2a01:168:5a::1</s> |
|- | |- | ||
− | | | + | |<s>Lesopark</s>||<s>Ano</s>||<s>Ano</s>||<s>2a01:168:59:1::1</s> |
|- | |- | ||
− | | | + | |<s>Malšova Lhota</s>||<s>Ano</s>||<s>Ano</s>||<s>2a01:168:4c::1</s> |
|- | |- | ||
− | | | + | |<s>Bydlo</s>||<s>Ano</s>||<s>Připravujeme</s>||<s>2a01:168:b1::1</s> |
|- | |- | ||
− | | | + | |<s>Chlumec</s>||<s>Ano</s>||<s>Připravujeme</s>||<s>2a01:168:b3::1</s> |
|- | |- | ||
− | | | + | |<s>Obědovice</s>||<s>Připravuju</s>||<s>Připravuju</s>||<s>2a01:168:b0::1</s> |
|- | |- | ||
− | | | + | |<s>Purkyně</s>||<s>Ano</s>||<s>Pouze Páteř</s>||<s>2a01:168:88::1</s> |
|- | |- | ||
− | | | + | |<s>Kocourkov</s>||<s>Ano</s>||<s>Pouze Páteř</s>||<s>2a01:168:25::1</s> |
|- | |- | ||
− | | | + | |<s>Andre</s>||<s>Ano</s>||<s>Pouze Páteř</s>||<s>2a01:168:89::1</s> |
|- | |- | ||
− | | | + | |<s>Hrubínova</s>||<s>Ano</s>||<s>Pouze Páteř</s>||<s>2a01:168:ed::1</s> |
|- | |- | ||
− | | | + | |<s>Gebauerova</s>||<s>Ano</s>||<s>Pouze Páteř</s>||<s>2a01:168:e3:1::1</s> |
|- | |- | ||
− | | | + | |<s>Lhota pod Libčany</s>||<s>Ne</s>||<s>Ne</s>||<s>2a01:168:f:1::1</s> |
|- | |- | ||
− | | | + | |<s>Probluz</s>||<s>Ano</s>||<s>Ne</s>||<s>2a01:168:54::1</s> |
|- | |- | ||
− | | | + | |<s>Strezetice Jezisek</s>||<s>Ano</s>||<s>NE</s>||<s>2a01:168:57:1::1</s> |
|- | |- | ||
− | | | + | |<s>Nechanice</s>||<s>Ano</s>||<s>Ne</s>||<s>2a01:168:55::1</s> |
|- | |- | ||
|} | |} | ||
− | ** | + | |
+ | ** | ||
==Priklady konfigurace zebry== | ==Priklady konfigurace zebry== | ||
Řádek 231: | Řádek 236: | ||
'''Tohle jsem vůbec neřešil, všechno mám na 1 a funguje to :) (Locutus)''' | '''Tohle jsem vůbec neřešil, všechno mám na 1 a funguje to :) (Locutus)''' | ||
− | == Distribuce 1 routy (Linux) == | + | ==Distribuce 1 routy (Linux)== |
Tip od Ladi na distribuci pouze 1 IPv6 routy za AP. | Tip od Ladi na distribuci pouze 1 IPv6 routy za AP. | ||
Řádek 255: | Řádek 260: | ||
K precteni taky doporucuji clanek na [http://en.wikipedia.org/wiki/IPv6 wikipedii] nebo na [http://www.ipv6.cz IPv6.cz] | K precteni taky doporucuji clanek na [http://en.wikipedia.org/wiki/IPv6 wikipedii] nebo na [http://www.ipv6.cz IPv6.cz] | ||
− | * Autokonfigurace | + | *Autokonfigurace |
Pomoci router advertismentu | Pomoci router advertismentu | ||
Řádek 313: | Řádek 318: | ||
ping6 -I <interface> ff02::2 | ping6 -I <interface> ff02::2 | ||
</pre> | </pre> | ||
− | |||
Řádek 323: | Řádek 327: | ||
List má IP rozsah dle návodu na [https://confluence.hkfree.org/pages/viewpage.action?pageId=76548445 IPv6 adresní plán] jako '''2a01:168:4900::/40''' | List má IP rozsah dle návodu na [https://confluence.hkfree.org/pages/viewpage.action?pageId=76548445 IPv6 adresní plán] jako '''2a01:168:4900::/40''' | ||
− | * nastavil jsem si první '''adresu na interface, kde jsou klienti''' (u mě "bridge-sektory")<syntaxhighlight> | + | |
+ | *nastavil jsem si první '''adresu na interface, kde jsou klienti''' (u mě "bridge-sektory")<syntaxhighlight> | ||
/ipv6 address add address=2a01:168:4900::1/64 advertise=yes disabled=no eui-64=no from-pool="" interface=Bridge-sektory no-dad=no | /ipv6 address add address=2a01:168:4900::1/64 advertise=yes disabled=no eui-64=no from-pool="" interface=Bridge-sektory no-dad=no | ||
− | </syntaxhighlight>[[Soubor:IPv6-address.png|none|thumb|452x452px|IPv6 - adresa]] | + | </syntaxhighlight>[[Soubor:IPv6-address.png|none|thumb|452x452px|IPv6 - adresa]] |
− | * další je nastavení '''OSPFv3'''<syntaxhighlight> | + | *další je nastavení '''OSPFv3'''<syntaxhighlight> |
/routing ospf-v3 interface add area=backbone cost=20 dead-interval=40s disabled=no hello-interval=10s instance-id=0 interface=bridge-lhota network-type=default passive=no priority=1 retransmit-interval=5s transmit-delay=1s use-bfd=no | /routing ospf-v3 interface add area=backbone cost=20 dead-interval=40s disabled=no hello-interval=10s instance-id=0 interface=bridge-lhota network-type=default passive=no priority=1 retransmit-interval=5s transmit-delay=1s use-bfd=no | ||
</syntaxhighlight>[[Soubor:IPv6-ospf.png|none|thumb|488x488px|IPv6 - OSPF]]důležitý, aby to běželo na interface, kde je linka (u mě "bridge-lhota", "birdge-krasnice"), nikoliv klientský interface | </syntaxhighlight>[[Soubor:IPv6-ospf.png|none|thumb|488x488px|IPv6 - OSPF]]důležitý, aby to běželo na interface, kde je linka (u mě "bridge-lhota", "birdge-krasnice"), nikoliv klientský interface | ||
− | * dalším bylo nastavení '''instances'''<syntaxhighlight> | + | *dalším bylo nastavení '''instances'''<syntaxhighlight> |
/routing ospf-v3 instance set [ find default=yes ] disabled=no distribute-default=never metric-bgp=auto metric-connected=20 metric-default=1 metric-other-ospf=auto metric-rip=20 metric-static=20 name=default redistribute-bgp=no redistribute-connected=as-type-1 redistribute-other-ospf=no redistribute-rip=no redistribute-static=as-type-1 router-id=10.107.73.1 | /routing ospf-v3 instance set [ find default=yes ] disabled=no distribute-default=never metric-bgp=auto metric-connected=20 metric-default=1 metric-other-ospf=auto metric-rip=20 metric-static=20 name=default redistribute-bgp=no redistribute-connected=as-type-1 redistribute-other-ospf=no redistribute-rip=no redistribute-static=as-type-1 router-id=10.107.73.1 | ||
</syntaxhighlight>[[Soubor:IPv6-ospf-instances.png|none|thumb|487x487px|IPv6 - OSPF instances]]Důležitý, nastavit tam '<code>redistribute static routes'</code> na hodnotu '<code>as type 1'</code> | </syntaxhighlight>[[Soubor:IPv6-ospf-instances.png|none|thumb|487x487px|IPv6 - OSPF instances]]Důležitý, nastavit tam '<code>redistribute static routes'</code> na hodnotu '<code>as type 1'</code> | ||
− | * Protože budeme dále delegovat každému členovi jeho vlastní rozsah a ten by lezl do OSPF, tak uděláme '''statickou routu''' v <code>/ipv6 route</code> '''na celý /40 rozsah''', a ty drobný klientský pak odfiltrujem.<syntaxhighlight> | + | *Protože budeme dále delegovat každému členovi jeho vlastní rozsah a ten by lezl do OSPF, tak uděláme '''statickou routu''' v <code>/ipv6 route</code> '''na celý /40 rozsah''', a ty drobný klientský pak odfiltrujem.<syntaxhighlight> |
/ipv6 route add !bgp-as-path !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-prepend !check-gateway comment="souhrnna \"agregovana\" routa; viz tez routing/filters" disabled=no distance=1 dst-address=2a01:168:4900::/40 !route-tag type=unreachable | /ipv6 route add !bgp-as-path !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-prepend !check-gateway comment="souhrnna \"agregovana\" routa; viz tez routing/filters" disabled=no distance=1 dst-address=2a01:168:4900::/40 !route-tag type=unreachable | ||
</syntaxhighlight>[[Soubor:IPv6-route.png|none|thumb|419x419px|IPv6 - route]] | </syntaxhighlight>[[Soubor:IPv6-route.png|none|thumb|419x419px|IPv6 - route]] | ||
− | * a '''odfiltrujeme''' ty drobný rozsahy klientů<br><code>/routing filter</code> přidáme pravidlo co odfiltruje délku prefixu 49-128 a ty nepustí do OSPF<syntaxhighlight> | + | *a '''odfiltrujeme''' ty drobný rozsahy klientů<br><code>/routing filter</code> přidáme pravidlo co odfiltruje délku prefixu 49-128 a ty nepustí do OSPF<syntaxhighlight> |
/routing filter add action=discard !address-family !append-bgp-communities !append-route-targets !bgp-as-path !bgp-as-path-length !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-weight chain=ospf-out disabled=no !distance invert-match=no !locally-originated-bgp !match-chain !ospf-type !pref-src !prefix prefix-length=49-128 !protocol !route-comment !route-tag !route-targets !routing-mark !scope !set-bgp-communities !set-bgp-local-pref !set-bgp-med !set-bgp-prepend set-bgp-prepend-path="" !set-bgp-weight !set-check-gateway !set-disabled !set-distance !set-in-nexthop !set-in-nexthop-direct !set-in-nexthop-ipv6 !set-in-nexthop-linklocal !set-out-nexthop !set-out-nexthop-ipv6 !set-out-nexthop-linklocal !set-pref-src !set-route-comment !set-route-tag !set-route-targets !set-routing-mark !set-scope !set-site-of-origin !set-target-scope !set-type !set-use-te-nexthop !site-of-origin !target-scope | /routing filter add action=discard !address-family !append-bgp-communities !append-route-targets !bgp-as-path !bgp-as-path-length !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-weight chain=ospf-out disabled=no !distance invert-match=no !locally-originated-bgp !match-chain !ospf-type !pref-src !prefix prefix-length=49-128 !protocol !route-comment !route-tag !route-targets !routing-mark !scope !set-bgp-communities !set-bgp-local-pref !set-bgp-med !set-bgp-prepend set-bgp-prepend-path="" !set-bgp-weight !set-check-gateway !set-disabled !set-distance !set-in-nexthop !set-in-nexthop-direct !set-in-nexthop-ipv6 !set-in-nexthop-linklocal !set-out-nexthop !set-out-nexthop-ipv6 !set-out-nexthop-linklocal !set-pref-src !set-route-comment !set-route-tag !set-route-targets !set-routing-mark !set-scope !set-site-of-origin !set-target-scope !set-type !set-use-te-nexthop !site-of-origin !target-scope | ||
</syntaxhighlight>[[Soubor:IPv6-routeFilter1.png|none|thumb|542x542px|IPv6 - filtr OSPF (1)]][[Soubor:IPv6-routeFilter2.png|none|thumb|542x542px|IPv6 - filtr OSPF (2)]] | </syntaxhighlight>[[Soubor:IPv6-routeFilter1.png|none|thumb|542x542px|IPv6 - filtr OSPF (1)]][[Soubor:IPv6-routeFilter2.png|none|thumb|542x542px|IPv6 - filtr OSPF (2)]] | ||
Řádek 353: | Řádek 358: | ||
*No a nakonec se hodí to '''zabezpečit lehkým firewallem''' | *No a nakonec se hodí to '''zabezpečit lehkým firewallem''' | ||
+ | |||
<syntaxhighlight> | <syntaxhighlight> | ||
/ipv6 firewall filter add action=accept chain=input comment="link-local traffic OK" src-address=fe80::/10 add action=reject chain=input comment="No new ex-hkfree incoming connections on IPv6 (this router)" connection-state=new protocol=!icmpv6 reject-with=icmp-admin-prohibited src-address=!2a01:168::/29 | /ipv6 firewall filter add action=accept chain=input comment="link-local traffic OK" src-address=fe80::/10 add action=reject chain=input comment="No new ex-hkfree incoming connections on IPv6 (this router)" connection-state=new protocol=!icmpv6 reject-with=icmp-admin-prohibited src-address=!2a01:168::/29 | ||
</syntaxhighlight>[[Soubor:IPv6-firewall1.png|none|thumb|658x658px|IPv6 - firewall (1)]][[Soubor:IPv6-firewall2.png|none|thumb|657x657px|IPv6 - firewall (2)]][[Soubor:IPv6-firewall3.png|none|thumb|676x676px|IPv6 - firewall (3)]][[Soubor:IPv6-firewall4.png|none|thumb|677x677px|IPv6 - firewall (4)]] | </syntaxhighlight>[[Soubor:IPv6-firewall1.png|none|thumb|658x658px|IPv6 - firewall (1)]][[Soubor:IPv6-firewall2.png|none|thumb|657x657px|IPv6 - firewall (2)]][[Soubor:IPv6-firewall3.png|none|thumb|676x676px|IPv6 - firewall (3)]][[Soubor:IPv6-firewall4.png|none|thumb|677x677px|IPv6 - firewall (4)]] | ||
+ | |||
*'''a teď by to mělo být připravené, aby to routovalo a poskytovalo členům prefixy.''' | *'''a teď by to mělo být připravené, aby to routovalo a poskytovalo členům prefixy.''' | ||
− | == DHCPv6 == | + | ==DHCPv6== |
− | * Tato varianta se hodí v případě, že chceme mít kontrolu nad tím, co uživatelům přidělujeme za adresy. Další možné použití je v případě, že uživatel je připojen s pomocí zařízení od Ubiquity nebo jiného, které umí na straně klienta použít "prefix delegation" | + | *Tato varianta se hodí v případě, že chceme mít kontrolu nad tím, co uživatelům přidělujeme za adresy. Další možné použití je v případě, že uživatel je připojen s pomocí zařízení od Ubiquity nebo jiného, které umí na straně klienta použít "prefix delegation" |
− | * Dále pak tímto způsobem můžeme uživatelům předat informaci o DNS serveru, WINS serveru atp. | + | *Dále pak tímto způsobem můžeme uživatelům předat informaci o DNS serveru, WINS serveru atp. |
− | * Pro klientské zařízení se dá použít firmware upravený 8anem -> http://8an.praha12.net/wifi/ubnt/XM.v5.1.2.sdk.3998.100317.1835.bin. Další výhodou tohoto firmware je, že umí i RADIUS autentizaci. | + | *Pro klientské zařízení se dá použít firmware upravený 8anem -> http://8an.praha12.net/wifi/ubnt/XM.v5.1.2.sdk.3998.100317.1835.bin. Další výhodou tohoto firmware je, že umí i RADIUS autentizaci. |
− | * Pro použití DHCPv6 musíme posílat trochu jiné Router Advertismenty než při bezstavové konfiguraci (viz http://www.faqs.org/rfcs/rfc5175.html). A proto je třeba přidat do nastavení radvd.conf toto: | + | *Pro použití DHCPv6 musíme posílat trochu jiné Router Advertismenty než při bezstavové konfiguraci (viz http://www.faqs.org/rfcs/rfc5175.html). A proto je třeba přidat do nastavení radvd.conf toto: |
<pre> | <pre> | ||
Řádek 371: | Řádek 378: | ||
− | * Vhodný DHCP server je například https://www.isc.org/software/dhcp ve verzi minimálně 4.1 | + | *Vhodný DHCP server je například https://www.isc.org/software/dhcp ve verzi minimálně 4.1 |
− | * http://packages.debian.org/experimental/isc-dhcp-server | + | *http://packages.debian.org/experimental/isc-dhcp-server |
− | * Pro ty co mají přístup na NFX wiki, tak doporučuji stránku: http://www.nfx.cz/wiki/index.php/AirOS_Prefix_Delegation | + | *Pro ty co mají přístup na NFX wiki, tak doporučuji stránku: http://www.nfx.cz/wiki/index.php/AirOS_Prefix_Delegation |
− | * Příklad konfigurace DHCPv6 | + | *Příklad konfigurace DHCPv6 |
<pre> | <pre> | ||
Řádek 398: | Řádek 405: | ||
</pre> | </pre> | ||
− | == Nastavení firewallu == | + | ==Nastavení firewallu== |
Platí zásada nejdřív zakaž vše a poté povol jen to co potřebuješ. | Platí zásada nejdřív zakaž vše a poté povol jen to co potřebuješ. | ||
Řádek 404: | Řádek 411: | ||
Pokud nevím kde začít, tak aspoň zakázat přístup odjinud než z HKFree | Pokud nevím kde začít, tak aspoň zakázat přístup odjinud než z HKFree | ||
<pre> | <pre> | ||
− | ip6tables -A INPUT -s 2a01:168::/ | + | ip6tables -A INPUT -s 2a01:168::/29 -j ACCEPT |
− | ip6tables -A INPUT -s ! 2a01:168::/ | + | ip6tables -A INPUT -s ! 2a01:168::/29 -p tcp --syn -j DROP |
</pre> | </pre> | ||
Řádek 411: | Řádek 418: | ||
Tipy pro různé OS: | Tipy pro různé OS: | ||
− | * [http://technet.microsoft.com/en-us/library/bb726943.aspx Windows] | + | |
− | * [http://www.sixxs.net/wiki/IPv6_Firewalling Linux] | + | *[http://technet.microsoft.com/en-us/library/bb726943.aspx Windows] |
+ | *[http://www.sixxs.net/wiki/IPv6_Firewalling Linux] |
Verze z 15. 3. 2021, 11:29
Obsah
Adresace
- prefix IPv6 pro celé HKfree je 2a01:168::/29 v kompletním zapisu: 2a01:168:0000:0000:0000:0000:0000:0000/29, zápis "::" znamená doplň celý zbytek adresy nulami,
- kazda oblast dostane prefix /40, příděly subnetů /40 řeší Kendy ripe@hkfree.org a evidujou se v tabulce https://ripe.hkfree.org
Adresní plán ZDE.
- linkove adresy nejsou potreba - viz link scope, adresy se generují "automaticky" o páteřní IP se tím pádem vůbec nestaráme,
- pokud nejaky router lezi na rozhrani mezi 2 oblastmi a mel by mit ipv6 adresu, tak se pouzije cislo jedne z oblasti,
- adresy aplikacnich serveru se prideluji z rozsahu 2a01:168::/48,
- Klientské zařízení s podporou IPv6,
- Test IPv6.
Jak pridelit IPv6 adresu/rozsah (pro spravce)
1) Vezmu si cislo sve oblasti (samozrejme jen pokud jsem spravce) toto prevedu do hexa (tzn. 1->1, 16->10, 31->1f atd.)
$ printf "%x\n" CISLOOBLASTI XX
2) Toto cislo vlozim do 2a01:168:XX00::/40 a tak ziskam rozsah pro celou oblast
- Priklad:
mam oblast 160 tudiz cislo oblasti je a0 a mam vsesmer, LAN a 2x sektor, dale je na LAN jedna uzivatelska sit za routerem, takze site, ktere pouziji budou
- pro vsesmer 2a01:168:a000:0000::/64 - zkracene 2a01:168:a000::/64
- pro uzivatelskou podsit na LAN 2a01:168:a000:0101::/64 - zkracene 2a01:168:a000:101:/64
- pro sektor 1 2a01:168:a000:0200::/64 - zkracene 2a01:168:a000:200:/64
- pro sektor 2 2a01:168:a000:0300::/64 - zkracene 2a01:168:a000:300:/64
- pro vsesmer 2a01:168:a000:0000::/64 - zkracene 2a01:168:a000::/64
3) Zapnu si modul ipv6, tedy upravim /etc/modules (zalezi na distribuci) kde vepíšu ipv6 nebo dočasně povolím ručně příkazem modprobe ipv6. Od Debianu 6 je IPv6 v systému automaticky zapnuté, do konfigurace musíme zasáhnou jenom v případě když chceme IPv6 podporu vypnout, což lze udělat při každém bootu v /proc nebo v /etc/sysctl.conf kde je už připravena položka "net.ipv6.conf.all.disable_ipv6=1" =1 znamená že disable_ipv6=true tuto položku stačí jenom odkomentovat a udělat reboot.
V OpenSUSE stačí v programu YaST v sekci konfigurace síťových karet zaškrtnout volbu 'povolit IPv6' (vyžaduje restart, ruční nahození modulu nestačí!)
4) Pridam na kazdem interface routeru nejakou IPv6 adresu (idealne dobre zapamatovatelnou) pomoci ip addr add <IPv6Adresa/maska> dev <zarizeni>
Příklad ip -6 addr add 2a01:168:12::1/64 dev eth0
nebo upravím v /etc/network/interfaces (Debian)
auto eth0 iface eth0 inet static address 10.107.6.49 netmask 255.255.255.240 broadcast 10.107.6.63 # nastaveni IPv6 iface eth0 inet6 static address 2001:168:6::1 netmask 64
Pozor pokud mám nastavené vlan položku vlan-raw-device vlanXXX píšu v zápisu pro každé rozhraní jenom jednou, podobně jako při zápisu alias IP např. vlan200:1
pro OpenSUSE stačí přidat řádek do /etc/sysconfig/network/ifcfg-eth0 (místo eth0 zadejte název požadovaného rozhranní)
IPADDR_IPv6='2001:168:6::1/64'
5) Povolim forwardovani IPv6 pomoci
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
V OpenSuSE poté nastavím v souboru /etc/sysconfig/sysctl proměnnou IPV6_FORWARD na "yes"
IPV6_FORWARD="yes"
6) Dale rozjedu na routeru IPv6 a ospf6d - nakonfiguruji podobne jako ve vzorovych konfiguracich prilozenych na konci a spustim
7) Hotovo :)
Doporucuji si precist neco o IPv6 nez se do toho pustite.
Soucasny stav
- IPv6 je funkční na igw, kde bezi ospf6d
- Mame pridelen IPv6 prefix od RIPE
- DNS servery - 2a01:168:0:10::f, 2a01:168:7:a00::245
Stará tabulka - tohle už neplatí. Od 5/2019 je nový adresní plán https://confluence.hkfree.org/x/XQmQB, alokace subnetů pro oblasti https://ripe.hkfree.org/#ipv6
Priklady konfigurace zebry
ospf6d.conf
hostname HOSTNAME password free enable password XXXXXXX ! interface eth0 ipv6 ospf6 cost 10 ! router ospf6 router-id 10.107.X.Y redistribute connected interface eth0 area 0.0.0.0 interface eth1 area 0.0.0.0 !
zebra.conf
Zde pozor na router advertisement, pokud ho nevypnete (ipv6 nd suppress-ra) IPv6 aktivní zařízení na daném interface bude dostávat informace co je na interafce za routr a přes to zařízení se bude snažit lézt do sítě, je to obdoba DHCP serveru i když ne tak zřejmá, většinou potom následuje udivení jak je možné, že ten PC se zapnutým IPv6 dostane adresu a bránu když nemá nikde nic nastavené :)
hostname HOSTNAME password free enable password XXXXXXXXX service advanced-vty interface eth0 ipv6 nd suppress-ra ! muzu rict i jaky prefix budu oznamovat interface eth1 no ipv6 nd suppress-ra ipv6 nd ra-interval 10 ipv6 nd prefix 2a01:168:12:3400::/64 ! oznamuje pocitacum pripojenym k danemu segmentu, ze je zde dalsi router ! a ze si maji pridelit ipv6 adresu a nastavit tento router jako branu interface eth2 ipv6 nd suppress-ra ! !neoznamuje pocitacum pripojenym k segmentu, ze je zde dalsi router interface eth3 no ipv6 nd suppress-ra line vty
Dulezite nastaveni jadra!!
Pro funkcnost autkonfigurace/neprijmani cizich prefixu musí být jádro na routeru nastaveno následovně:
net.ipv6.conf.all.autoconf = 0 # vypne autokonfiguraci na tomto stroji net.ipv6.conf.all.accept_ra = 0 # vypne primani router advertismentu od jinych stroju - aneb routovani se resi pres OSPF net.ipv6.conf.all.accept_redirects = 0 # redirecty take nechcem net.ipv6.conf.all.forwarding = 1 # forwarding - jinak routovat nebudem net.ipv6.conf.all.router_solicitations = 0
Tohle jsem vůbec neřešil, všechno mám na 1 a funguje to :) (Locutus)
Distribuce 1 routy (Linux)
Tip od Ladi na distribuci pouze 1 IPv6 routy za AP.
ospf6d.conf:
router ospf6 router-id 10.107.3.1 redistribute static interface vlan132 area 0.0.0.0 interface vlan133 area 0.0.0.0 interface vlan134 area 0.0.0.0 interface vlan135 area 0.0.0.0
zebra.conf:
ipv6 route 2a01:168:3::/48 ::1 ipv6 forwarding
Zbytek
K precteni taky doporucuji clanek na wikipedii nebo na IPv6.cz
- Autokonfigurace
Pomoci router advertismentu
pomoci radvd /etc/radvd.conf
interface br0 { AdvSendAdvert on; prefix 2a01:168:XXXX:YYYY:/64 { AdvOnLink on; AdvAutonomous on; }; };
pomoci zebra.conf - viz vyse no ipv6 nd suppress-ra
interface eth0 no ipv6 nd suppress-ra ipv6 nd ra-interval 10 ipv6 nd ra-lifetime 120 ipv6 nd reachable-time 150 ipv6 nd other-config-flag ipv6 nd prefix 2a01:168:XXXX:YYYY::/64
pri spravnem nakonfigurovani siri na dany interface oznameni o pritomnosti routeru vcetne sveho prefixu. Z tohoto prefixu si klient vygeneruje svoji adresu na zaklade MAC adresy, windows si vygeneruji jeste druhou docasnou adresu (pro vyssi soukromi ? ;)) Resi pouze ziskani adresy a nastaveni routovani. (nenastavi se DNS - nevadi v pripade dual stack konfigurace, kdy DNS priradi DHCPv4)
vypnuti generovani 2. docasne adresy z sireneho prefixu pod woknama
netsh interface ipv6 set privacy state=disable
naopak zapnuti prirazeni docasne adresy v linuxu (nemusi cely svet znat nasi MAC adresu,ze?)
# cat /etc/sysctl.d/ipv6privacy.conf net.ipv6.conf.all.use_tempaddr=2 net.ipv6.conf.default.use_tempaddr=2 net.ipv6.conf.wlan0.use_tempaddr=2 net.ipv6.conf.eth0.use_tempaddr=2
DHCPv6
Resi prideleni adresy + adres dns serveru, domenoveho jmena apod. Neresi nastaveni routovani.
Dibbler dhcpv6 server + klient + relay pro linux a windows http://klub.com.pl/dhcpv6/
podle testu funguje server na linuxu v pohode. Klient pod windows se zda byt pomerne problematicky, nepovedlo se mi ho spustit jako sluzbu prestoze psal ze nastartoval. Z prikazoveho radku funguje celkem bezproblemove. Pri kombinaci s 1. typem autokonfigurace dochazi k tomu, ze Windows pouzivaji primarne docasnou adresu a ne tu ziskanou pres dhcp :(
Par sikovnych prikazu
Zobrazeni routovaci tabulky
ip -6 ro
Zobrazeni prirazenych ip adres
ip -6 addr
Pingnuti vseho ipv6-enabled hostu (tzn. vsech) na siti:
ping6 -I <interface> ff02::1
Pingnuti vsech ipv6-enabled routeru na siti:
ping6 -I <interface> ff02::2
Rozchození IPv6 na Mikrotiku s RouterOS
Příklad konfigurace AP LiSt, verze RouterOS 3.16, navic balik routing-test.npk (nutny pro OSPFv3). Pro RouterOS >v.4.x staci povolit balik ipv6.
Budu jako příklad uvádět svou oblast LiSt.
List má IP rozsah dle návodu na IPv6 adresní plán jako 2a01:168:4900::/40
- nastavil jsem si první adresu na interface, kde jsou klienti (u mě "bridge-sektory")
/ipv6 address add address=2a01:168:4900::1/64 advertise=yes disabled=no eui-64=no from-pool="" interface=Bridge-sektory no-dad=no
- další je nastavení OSPFv3důležitý, aby to běželo na interface, kde je linka (u mě "bridge-lhota", "birdge-krasnice"), nikoliv klientský interface
/routing ospf-v3 interface add area=backbone cost=20 dead-interval=40s disabled=no hello-interval=10s instance-id=0 interface=bridge-lhota network-type=default passive=no priority=1 retransmit-interval=5s transmit-delay=1s use-bfd=no
- dalším bylo nastavení instancesDůležitý, nastavit tam '
/routing ospf-v3 instance set [ find default=yes ] disabled=no distribute-default=never metric-bgp=auto metric-connected=20 metric-default=1 metric-other-ospf=auto metric-rip=20 metric-static=20 name=default redistribute-bgp=no redistribute-connected=as-type-1 redistribute-other-ospf=no redistribute-rip=no redistribute-static=as-type-1 router-id=10.107.73.1
redistribute static routes'
na hodnotu 'as type 1'
- Protože budeme dále delegovat každému členovi jeho vlastní rozsah a ten by lezl do OSPF, tak uděláme statickou routu v
/ipv6 route
na celý /40 rozsah, a ty drobný klientský pak odfiltrujem./ipv6 route add !bgp-as-path !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-prepend !check-gateway comment="souhrnna \"agregovana\" routa; viz tez routing/filters" disabled=no distance=1 dst-address=2a01:168:4900::/40 !route-tag type=unreachable
- a odfiltrujeme ty drobný rozsahy klientů
/routing filter
přidáme pravidlo co odfiltruje délku prefixu 49-128 a ty nepustí do OSPF/routing filter add action=discard !address-family !append-bgp-communities !append-route-targets !bgp-as-path !bgp-as-path-length !bgp-atomic-aggregate !bgp-communities !bgp-local-pref !bgp-med !bgp-origin !bgp-weight chain=ospf-out disabled=no !distance invert-match=no !locally-originated-bgp !match-chain !ospf-type !pref-src !prefix prefix-length=49-128 !protocol !route-comment !route-tag !route-targets !routing-mark !scope !set-bgp-communities !set-bgp-local-pref !set-bgp-med !set-bgp-prepend set-bgp-prepend-path="" !set-bgp-weight !set-check-gateway !set-disabled !set-distance !set-in-nexthop !set-in-nexthop-direct !set-in-nexthop-ipv6 !set-in-nexthop-linklocal !set-out-nexthop !set-out-nexthop-ipv6 !set-out-nexthop-linklocal !set-pref-src !set-route-comment !set-route-tag !set-route-targets !set-routing-mark !set-scope !set-site-of-origin !set-target-scope !set-type !set-use-te-nexthop !site-of-origin !target-scope
- a pustíme se do delegování subnetů pro klienty/členy. Nastavíme si
/ipv6 pool
jak velké subnety budeme členům delegovat (opět podle návrhu číslovacího plánu)takže jim z /48 rozsahu budu delegovat prefixy /56/ipv6 pool add name=pool1 prefix=2a01:168:4901::/48 prefix-length=56
- a pustíme DHCP server pro delegaci prefixů
/ipv6 dhcp-server
kde nastavíme poslouchací inteface od klientů (u mě "bridge-sektory")/ipv6 dhcp-server add address-pool=pool1 dhcp-option="" disabled=no interface=Bridge-sektory lease-time=1h name=server1 preference=255 rapid-commit=yes route-distance=1 use-radius=no
- v Neighbor discovery
/ipv6 nd
je ?nutné? vypnout "advertise DNS", bo to zlobí. Já ho ale nechal zapnutý. A přepnout interface z "all" na "bridge-sektory", tj. tam, kde jsou klienti/ipv6 nd add advertise-dns=yes advertise-mac-address=yes disabled=no hop-limit=64 interface=Bridge-sektory managed-address-configuration=no mtu=unspecified other-configuration=no ra-delay=3s ra-interval=3m20s-10m ra-lifetime=30m reachable-time=unspecified retransmit-interval=unspecified
- Aby to advertise DNS fungovalo dobře, přidal jsem do DNS konfigurace záznam o DNS serveru pro IPv6
/ip dns set allow-remote-requests=yes cache-max-ttl=1w cache-size=2048KiB max-concurrent-queries=100 max-concurrent-tcp-sessions=20 max-udp-packet-size=512 query-server-timeout=2s query-total-timeout=10s servers=10.107.4.100,10.107.4.129,2a01:168:0:10::f
- No a nakonec se hodí to zabezpečit lehkým firewallem
/ipv6 firewall filter add action=accept chain=input comment="link-local traffic OK" src-address=fe80::/10 add action=reject chain=input comment="No new ex-hkfree incoming connections on IPv6 (this router)" connection-state=new protocol=!icmpv6 reject-with=icmp-admin-prohibited src-address=!2a01:168::/29
- a teď by to mělo být připravené, aby to routovalo a poskytovalo členům prefixy.
DHCPv6
- Tato varianta se hodí v případě, že chceme mít kontrolu nad tím, co uživatelům přidělujeme za adresy. Další možné použití je v případě, že uživatel je připojen s pomocí zařízení od Ubiquity nebo jiného, které umí na straně klienta použít "prefix delegation"
- Dále pak tímto způsobem můžeme uživatelům předat informaci o DNS serveru, WINS serveru atp.
- Pro klientské zařízení se dá použít firmware upravený 8anem -> http://8an.praha12.net/wifi/ubnt/XM.v5.1.2.sdk.3998.100317.1835.bin. Další výhodou tohoto firmware je, že umí i RADIUS autentizaci.
- Pro použití DHCPv6 musíme posílat trochu jiné Router Advertismenty než při bezstavové konfiguraci (viz http://www.faqs.org/rfcs/rfc5175.html). A proto je třeba přidat do nastavení radvd.conf toto:
AdvManagedFlag on AdvOtherConfigFlag on
- Vhodný DHCP server je například https://www.isc.org/software/dhcp ve verzi minimálně 4.1
- http://packages.debian.org/experimental/isc-dhcp-server
- Pro ty co mají přístup na NFX wiki, tak doporučuji stránku: http://www.nfx.cz/wiki/index.php/AirOS_Prefix_Delegation
- Příklad konfigurace DHCPv6
interface eth1 { server-preference 255; renew-time 60; rebind-time 90; prefer-life-time 130; valid-life-time 200; allow rapid-commit; option dns_servers 2a01:168:0:10::f hkfree.org; link AAA { pool{ range 2a01:168:00XX:YYZZ::1 to 2a01:168:00XX:YYZZ::ffff/64; prefix 2a01:168:00XX:YYZZ::/64; }; }; };
Nastavení firewallu
Platí zásada nejdřív zakaž vše a poté povol jen to co potřebuješ.
Pokud nevím kde začít, tak aspoň zakázat přístup odjinud než z HKFree
ip6tables -A INPUT -s 2a01:168::/29 -j ACCEPT ip6tables -A INPUT -s ! 2a01:168::/29 -p tcp --syn -j DROP
Správce na routeru pravděpodobně bude chtít nechat povolené: TCP: port22 (SSH), port 2601 (zebra), port 2604 (ospfd), port 2606 (ospf6d), UDP: SNMP (http://wiki.hkfree.org/Slu%C5%BEby#Monitoring).
Tipy pro různé OS: