Prefiks podružnice IPv6: iroute-ipv6 ili route-ipv6 na serveru?
route-ipv6 dovodi prefiks u jezgro servera; iroute-ipv6 označava klijenta koji ga nosi. Oba pripadaju serveru koji tog klijenta završava.
Dvije direktive skoro istog naziva pojavljuju se u svakom radnom primjeru, a kopiranje jedne bez druge stvara tunel koji izgleda ispravno i tiho odbacuje prefiks podružnice. Rade različit posao na različitim stranama iste granice: jedna uči jezgro servera gdje prefiks živi, a druga uči OpenVPN koji autentificirani klijent ga nosi. Ako su obje tačne, prefiks teče; ako je jedna tačna, paketi imaju rutu ali nemaju vlasnika.
Dvije direktive, dva različita posla
route-ipv6 je obična instalacija rute: server dodaje rutu jezgra koja pokazuje prefiks na njegovo tunelsko sučelje. iroute-ipv6 pripada kontekstu specifičnom za klijenta i deklarira unutrašnje vlasništvo, tako da daemon zna da promet za taj prefiks treba ići određenom klijentu, a ne onom peeru koji ruta jezgra slučajno imenuje.
Jedna se tiče tablice prosljeđivanja jezgra, druga unutrašnjeg modela usmjeravanja daemona. Njihovo razdvajanje objašnjava zašto konfiguracija koja izgleda potpuna ipak može odbaciti prefiks. Objašnjava i zašto se ista mreža pojavljuje dvaput u svakom radnom primjeru. Nijedan od tih redova nije suvišan.
U tradicionalnom userspace postavu potrebne su obje i međusobno se dopunjuju. Sama ruta jezgra ostavlja daemon bez mogućnosti odabira peera. Sam iroute ostavlja jezgro bez puta do tunela. Odatle dolazi i većina zabune oko datoteka po klijentu: datoteka nije unos u tablicu usmjeravanja, a unos rute nije izjava o vlasništvu.
ip -6 route show | grep fd00:7a
ip -6 route get fd00:7a::1Kamo koja pripada
Ruta ide u upravljanu konfiguraciju servera, gdje vrijedi za taj proces servera. iroute ide u datoteku specifičnu za klijenta, nazvanu prema autentificiranom identitetu uređaja podružnice.
Naziv datoteke koji ne odgovara stvarnom identitetu nikad se ne čita, a simptom je identičan nedostajućem irouteu. Provjeri identitet koji je server autentificirao, a zatim provjeri naziv datoteke znak po znak.
# /etc/openvpn/server/server.conf
route-ipv6 fd00:7a::/64
client-config-dir /etc/openvpn/server/ccd
# /etc/openvpn/server/ccd/branch-b
iroute-ipv6 fd00:7a::/64Drži pool i prefiks podružnice odvojeno, jer njihovo preklapanje stvara zagonetku koju nijedna direktiva ne može riješiti.
Šta treba drugi klijent
Drugi klijent koji treba dosegnuti tu podružnicu treba objavu, ne vlasništvo. Pošalji prefiks klijentima koje želiš, u kontekstu klijenta ili grupe koji odgovara tvojoj konfiguraciji.
Ne šalji ga samoj podružnici, jer taj uređaj već ima prefiks kao povezanu mrežu.
Slanje svima je izbor s posljedicama: svaki klijent tada vjeruje da je podružnica dostupna kroz tunel, uključujući klijente kojima nikad nisi htio dati taj pristup. Objava je u praksi odluka o pristupu, iako direktiva izgleda kao vodoinstalaterski posao. referenca za opcije servera dokumentuje iroute-ipv6 kao vlasništvo specifično za klijenta, i to je razlika koju vrijedi zadržati.
Povratni put na uređaju podružnice
Vlasništvo pomaže samo ako podružnica prosljeđuje pakete i njen LAN zna kako odgovoriti. Uključi prosljeđivanje IPv6 na uređaju podružnice i potvrdi da hostovi na njenom LAN-u šalju promet za pool VPN natrag prema podružnici, a ne prema zadanoj ruti koja pool ne poznaje.
Taj povratni put je IPv6 ekvivalent problema rute koja nedostaje, na koji ljudi nailaze s IPv4.
Provjeri to s hosta na LAN-u upitom za adresu poola VPN, ne sa same podružnice. Upit na ruteru odgovara na drugo pitanje od onoga tvojih korisnika, a njih dvoje se dovoljno često razilaze da se dodatna naredba isplati.
Kad par još uvijek nije dovoljan
Neke implementacije uopće ne koriste taj put. Podatkovni put jezgra i serveri kojima upravlja proizvod imaju vlastito podržano rukovanje rutama, a primjer za userspace možda se ne prenosi izravno.
Potvrdi koji podatkovni put koristi tvoja gradnja prije nego kopiraš direktive iz priručnika pisanog za onaj drugi.
Na kraju, zapamti raspon adresa: jedinstveni lokalni prefiks poput fd00:7a::/64 privatan je po dizajnu i ne govori ništa o javnoj dostupnosti IPv6. Tretiraj ga kao interni pristup, a izlaz na internet drži kao zasebno pitanje s vlastitom politikom.