Mikrotik usmerjevalnik: kako nastaviti IPv6 dostop preko PPPOE (*DSL, FTTH)
Nekateri slovenski operaterji počasi začenjajo s testiranjem IPv6 dostopa preko pppoe (*DSL, FTTH, …) dostopa, zato smo v go6lab-u začeli testirati različne naprave, ki to podpirajo. Trenutno testiramo dve napravi, ena je Asus RT-AC66U, ki je v lab mikro-okolju brez pppoe pokazal, da zna preko WAN vmesnika sprejeti IPv6 delegacijo prefixa in jo tudi ustrezno razporediti na notranji del omrežja ter Mikrotik RB750GL, katerega smo pa stestirali na sistemu z dostopom preko pppoe odjemalca…
Na tem mestu bi zapisali kratek postopek, kako nastavimo Mikrotik RouterOS naprave (v nadaljevanju MK), da preko pppoe-client vmestnika dobijo IPv6-PD in ga znajo tudi primerno razporediti na LAN vmesnike. Pri opisovanju MK tipično ne govorimo o WAN in LAN vmestnikih, saj so vsi vmestniki enakovredni L3/L2 vmestniki, a za lažje razumevanje bomo to notacijo vseeno uporabili.
Tu bi se radi zahvalili našemu Go6 članu, podjetju Virtua-IT za testno Mikrotik opremo v Go6lab-u, s katero lahko testiramo marsikaj na področju IPv6.
Najprej preverimo, katero verzijo Router OS-a imamo. Danes je zadnja verzija 6.7, a najbolje da preverimo na Mikrotik spletni strani, katera je trenutno zadnja. Na MK usmerjevalniku preverimo verzijo z ukazom:
/system resource print
Ko imamo to urejeno najprej preverimo, če je vzpostavljena seja pppoe klienta.
/interface pppoe-client print
Če je na pred poljem “name” zapisan “R”, to pomeni da imamo vzpostavljeno pppoe sejo (Running). Pri pppoe odjemalcu ni treba nič dodatno postavljati, saj že sam po sebi podpira IPv4 in IPv6.
Nato nastavimo DHCPv6 odjemalca. Recimo, da je “name” pppoe tunela “pppoe-isp”.
/ipv6 dhcp-client add add-default-route=yes interface=pppoe-isp pool-name=isp-pd use-peer-dns=yes pool-prefix-length=64
Popravek: V novejših verzijah RouterOS je sintaksa malo drugačna:
/ipv6 dhcp-client add add-default-route=yes interface=pppoe-isp pool-name=isp-pd use-peer-dns=yes pool-prefix-length=64 request=address,prefix
V tem koraku smo routerju naročili, naj dhcpv6 odjemalec posluša na vmestniku pppoe-isp, naj zahteva IPv6-PD (prefix delagation) in ko ga dobi naj ga doda v IPv6-pool po imenu “isp-pd”. Dodatno smo mu še naročili, naj doda “default route” proti IPv6 Internetu in tudi vpraša ter uporabi DNS informacijo, če jo od operaterja dobi preko DHCPv6. Delovanje tega preverimo z ukazom:
/ipv6 dhcp-client print
Tu se nam mora pojaviti IPv6 dodeljeni naslovni prostor in status “bound”.
Če je status “searching”, potem poizkusimo spremeniti “request” iz “address,prefix” v samo “prefix”. Če delamo PPPoE na Telekom, potem vam “address,prefix” ne bo deloval, dajte vpisati samo “prefix”.
Pred tem je dobro dodati tudi dovoljenje za sprejemanje DHCPv6 paketov na našem PPPOE vmesniku:
/ipv6 firewall filter add action=accept chain=input comment=”DHCPv6 from provider” dst-port=546 in-interface=pppoe-isp protocol=udp
Ali smo dobili DNS informacijo od operaterja preverimo s tem ukazom:
/ip dns print
Imeti moramo polje “dynamic-servers” in tam neke vrednosti, katere smo dobili. Preverimo še, ali imamo “default route”:
/ipv6 route print
Pri vrhu seznama moramo zagledati nekaj takšnega:
# DST-ADDRESS GATEWAY DISTANCE 0 ADS ::/0 pppoe-isp 1 .
To pomeni, da usmerjamo ves promet (razen lokalnega) proti Internetu skozi pppoe tunel. Sedaj lahko preverimo, če se je naš IPv6-PD pravilno dodal v IPv6 pool:
/ipv6 pool print
Tam moramo zagledati ime poola (isp-pd), dodeljen PD ter prefix-length /64. To pomeni, da bomo delili na ostale vmestnike podomrežja, velika /64. Kako to storimo? MK je pri dodeljevanju naslova na ethernet vmestnik uvedel tudi možnost nastavitve “from-pool”:
/ipv6 address add address=::1/64 from-pool=isp-pd interface=lan advertise=yes
To pomeni, da na vmestnik “lan” dodelimo naslov, sestavljen iz prvega prostega /64 podomrežja in host del je ::1. Recimo, če bi od operaterja dobili IPv6-PD 2001:db8:aaaa::/48, bi na prvi vmestnik dodelili naslov 2001:db8:aaaa::1/64, na naslednjega pa 2001:db8:aaaa:1::1/64, nato 2001:db8:aaaa:2::1/64 in tako naprej. Svetujemo vam, da si IPv6 naslov iz svojega subneta dodelite tudi na local loopback 🙂
“lan” vmestnik zamenjajte z imenom ethernet vmestnika, na katerega imate priključeno notranje (LAN) omrežje.
“advertise=yes” pomeni, da se na tem vmestniku po[ilja ven RA pakete za stateless autoconfiguration naprav na našem notranjem omrežju. Ali imamo pravi IPv6 naslov na vmestniku preverimo s komando:
/ipv6 address print
Naslednji korak je nastavljanje pošiljanja RA paketov. Najprej preverimo kaj je trenutno nastavljeno:
/ipv6 nd print
Prednastavljeno je, da se RA paketi pošiljajo na vseh vmestnikih. Tu lahko nastavimo še, da MK v RA pakete vključi DNS informacijo s tem, da spremenimo vrednost polja advertise-dns v “yes” (advertise-dns=yes).
Če smo uspešno prišli do sem, to v veliki meri lahko pomeni, da imamo delujoč IPv6 dostop do Interneta. na LAN priključimo napravo, ki podpira IPv6, preverimo če smo dobili IPv6 naslov in z brskalnikom preverimo http://test-ipv6.go6.si/
Za Go6, Jan Žorž
Vaš IP naslov (ali ste na IPv6 ?):
3.146.206.246
Po teh navodilih sem si nastavil stvari in funkcionirajo. Dokler niso crknile – prva stvar je bila, da sem dodatno dovolil UDP port 546, ki je potreben za dobro delovanje DHCPv6. A še vedno ni pomagalo. Občasno je vseeno IPv6 mrknil. Pomagal je reboot, a mi je kolega namignil koliko dinamičnih DNS strežnikov je videti v IP->DNS.
Ko sem ugasnil uporabo ponudnikovega DNS pri dhcp klientu – opcija “use peer DNS” ter ročno vpisal DNS v IP->DNS, je videti, da je IPv6 preko Telekoma stabilen kot mora biti.
RouterOS 6.13.