IPv6: Porovnání verzí
m (→Soucasny stav) |
Značka: editace z Vizuálního editoru |
||
(Není zobrazeno 21 mezilehlých verzí od 7 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
==Adresace== | ==Adresace== | ||
− | * prefix IPv6 pro celé HKfree je '''2a01:168::/32''' | + | * prefix IPv6 pro celé HKfree je '''2a01:168::/32''' v kompletním zapisu: 2a01:168:0000:0000:0000:0000:0000:0000/32, zápis "::" znamená doplň celý zbytek adresy nulami, |
* kazda oblast dostane prefix /48 podle cisla oblasti u IPv4 | * kazda oblast dostane prefix /48 podle cisla oblasti u IPv4 | ||
− | Dalsich 8 bitu je logicka cast (router1, router2, sektor, vsesmer, lan, ...) v ramci oblasti a zbylych 8 bity je pro lepsi rozdeleni v teto logicke casti (0 je vzdy hlavni podsit) | + | Dalsich 8 bitu je logicka cast (router1, router2, sektor, vsesmer, lan, vlan ...) v ramci oblasti a zbylych 8 bity je pro lepsi rozdeleni v teto logicke casti (0 je vzdy hlavni podsit), obecně je zbytečné adresní rozsah do nekonečna dělit a pak mít problémy s přechodem klientů např. mezi sektory apod. |
− | * linkove adresy nejsou potreba - viz link scope | + | * 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 | + | * 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 | + | * adresy aplikacnich serveru se prideluji z rozsahu 2a01:168::/48, |
− | * [[Klientské zařízení s podporou IPv6]] | + | * [[Klientské zařízení s podporou IPv6]], |
− | * [http://petrkrcmar.blog.root.cz/2010/10/25/cim-si-vyzkouset-ipv6/ Test 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 29: | Řádek 29: | ||
− | 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'''. | + | 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čí!) | 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čí!) | ||
Řádek 50: | Řádek 50: | ||
netmask 64 | netmask 64 | ||
</pre> | </pre> | ||
+ | '''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í) | pro OpenSUSE stačí přidat řádek do '''/etc/sysconfig/network/ifcfg-eth0''' (místo eth0 zadejte název požadovaného rozhranní) | ||
Řádek 83: | Řádek 84: | ||
* 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 | |
{| border="1" | {| border="1" | ||
− | | '''Oblast''' || '''Podpora na pateri''' || '''Podpora u klientu''' || '''IPv6 Adresa routeru''' | + | | '''<s>Oblast</s>''' || '''<s>Podpora na pateri</s>''' || '''<s>Podpora u klientu</s>''' || '''<s>IPv6 Adresa routeru</s>''' |
|- | |- | ||
− | | D-network || Ano || Ano (pouze klienti, kteri jsou na stejnem subnetu jako hlavni routr) || 2a01:168:3::1 | + | | <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> |
|- | |- | ||
− | | JNet || Ano || Ano || 2a01:168:36::1 | + | | <s>JNet</s> || <s>Ano</s> || <s>Ano</s> || <s>2a01:168:36::1</s> |
|- | |- | ||
− | | Slatina || Ano || Castecne || 2a01:168:7::a00::1 | + | | <s>Slatina</s> || <s>Ano</s> || <s>Castecne</s> || <s>2a01:168:7::a00::1</s> |
|- | |- | ||
− | | Libuse || Ano || Neznamo || 2a01:168:2::1 | + | | <s>Libuse</s> || <s>Ano</s> || <s>Neznamo</s> || <s>2a01:168:2::1</s> |
|- | |- | ||
− | | Piletice || Ano || Ne || 2a01:168:31:700::1 | + | | <s>Piletice</s> || <s>Ano</s> || <s>Ne</s> || <s>2a01:168:31:700::1</s> |
|- | |- | ||
− | | Podulsany || Ano || Ano || 2a01:168:a::1 | + | | <s>Podulsany</s> || <s>Ano</s> || <s>Ano</s> || <s>2a01:168:a::1</s> |
|- | |- | ||
− | | Yzop || Neznamo || Neznamo || Neznamo | + | | <s>Yzop</s> || <s>Neznamo</s> || <s>Neznamo</s> || <s>Neznamo</s> |
|- | |- | ||
− | | Lhotka || Neznamo || Neznamo || Neznamo | + | | <s>Lhotka</s> || <s>Neznamo</s> || <s>Neznamo</s> || <s>Neznamo</s> |
|- | |- | ||
− | | Postman || Ano || Ano || 2a01:168:3c: | + | | <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>Ano</s> | ||
+ | |<s>Ano (IPV6 na všech subnetech k užvatelům vč. AP Dolíky)</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> |
|- | |- | ||
− | | Obědovice || Připravuju || Připravuju || 2a01:168:b0::1 | + | | <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 163: | Řádek 191: | ||
zebra.conf | 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é :) | ||
<pre> | <pre> | ||
hostname HOSTNAME | hostname HOSTNAME | ||
Řádek 200: | Řádek 229: | ||
</pre> | </pre> | ||
+ | '''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) == | ||
Řádek 288: | Řádek 318: | ||
==Rozchození IPv6 na Mikrotiku s RouterOS== | ==Rozchození IPv6 na Mikrotiku s RouterOS== | ||
− | Příklad konfigurace AP | + | 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 [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> |
− | / | + | /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]] |
− | + | * 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 | + | </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 |
− | /routing ospf-v3 | + | * dalším bylo nastavení '''instances'''<syntaxhighlight> |
− | /routing | + | /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> |
− | + | * 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 | |
− | < | + | </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> |
− | </ | + | /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)]] | ||
+ | *a pustíme se do '''delegování subnetů pro klienty/členy'''. Nastavíme si <code>/ipv6 pool</code> jak velké subnety budeme členům delegovat (opět podle návrhu číslovacího plánu)<syntaxhighlight> | ||
+ | /ipv6 pool add name=pool1 prefix=2a01:168:4901::/48 prefix-length=56 | ||
+ | </syntaxhighlight>takže jim z /48 rozsahu budu delegovat prefixy /56[[Soubor:IPv6-pool.png|none|thumb|427x427px|IPv6 - pool]] | ||
+ | *a pustíme '''DHCP server pro delegaci prefixů''' <code>/ipv6 dhcp-server</code> kde nastavíme poslouchací inteface od klientů (u mě "bridge-sektory")<syntaxhighlight> | ||
+ | /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 | ||
+ | </syntaxhighlight>[[Soubor:IPv6-dhcpv6.png|none|thumb|432x432px|IPv6 - DHCPv6]] | ||
+ | *v '''Neighbor discovery''' ''<code>/ipv6 nd</code>'' 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<syntaxhighlight> | ||
+ | /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 | ||
+ | </syntaxhighlight>[[Soubor:IPv6-ND.png|none|thumb|442x442px|IPv6 - Neighbor discovery]] | ||
+ | *Aby to advertise DNS fungovalo dobře, přidal jsem do DNS konfigurace záznam o DNS serveru pro IPv6<syntaxhighlight> | ||
+ | /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 | ||
+ | </syntaxhighlight>[[Soubor:IPv6-DNS.png|none|thumb|466x466px|IPv6 - DNS]] | ||
− | + | *No a nakonec se hodí to '''zabezpečit lehkým firewallem''' | |
− | < | + | <syntaxhighlight> |
− | IPv6- | + | /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- | + | </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.''' | |
− | |||
== DHCPv6 == | == DHCPv6 == |
Verze z 3. 5. 2020, 21:26
Obsah
Adresace
- prefix IPv6 pro celé HKfree je 2a01:168::/32 v kompletním zapisu: 2a01:168:0000:0000:0000:0000:0000:0000/32, zápis "::" znamená doplň celý zbytek adresy nulami,
- kazda oblast dostane prefix /48 podle cisla oblasti u IPv4
Dalsich 8 bitu je logicka cast (router1, router2, sektor, vsesmer, lan, vlan ...) v ramci oblasti a zbylych 8 bity je pro lepsi rozdeleni v teto logicke casti (0 je vzdy hlavni podsit), obecně je zbytečné adresní rozsah do nekonečna dělit a pak mít problémy s přechodem klientů např. mezi sektory apod.
- 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 pripojim za 2a01:168:00XX:YYZZ::/64 a tak ziskam rozsah pro nejakou podsit v ramci oblasti
- 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:a0:0000::/64 - zkracene 2a01:168:a0::/64
- pro uzivatelskou podsit na LAN 2a01:168:a0:0101::/64 - zkracene 2a01:168:a0:101:/64
- pro sektor 1 2a01:168:a0:0200::/64 - zkracene 2a01:168:a0:200:/64
- pro sektor 2 2a01:168:a0:0300::/64 - zkracene 2a01:168:a0:300:/64
- pro vsesmer 2a01:168:a0:0000::/64 - zkracene 2a01:168:a0::/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::/32 -j ACCEPT ip6tables -A INPUT -s ! 2a01:168::/32 -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: