Kaksi matkapuhelinverkon toimipistettä ilman saapuvia portteja: rakenna toimiva keskitin
Kun kumpikaan toimipiste ei ota vastaan saapuvia IPv4-yhteyksiä, anna molempien aloittaa yhteys saavutettavaan keskittimeen. Suorita reititys-, välitys- ja varareittivaiheet tässä järjestyksessä.
Kaksi matkapuhelinverkon linkkiä käyttävää toimipistettä kohtaa saman ongelman molempiin suuntiin: kumpikaan ei voi ottaa vastaan pyytämätöntä IPv4-yhteyttä, joten kumpikaan ei voi toimia palvelimena suorassa tunnelissa. Toimiva arkkitehtuuri asettaa saavutettavan kolmannen osapuolen keskelle: kumpikin toimipiste soittaa ulospäin ja keskiosa välittää vain liikenteen, jonka hyväksyt. Tämä keskiosa voi olla itse ylläpitämäsi reititin tai tuote, joka esittelee vertaiset, eivätkä ne ole sama asia. Alla olevat vaiheet on järjestetty niin, että jokainen tuottaa todisteen ennen kuin seuraava riippuu siitä.
Kumpaankaan toimipisteeseen ei voi soittaa, joten molempien on soitettava ulos
Vahvista rajoitus ennen kuin suunnittelet sen ympärille. Jos operaattori antaa WAN-liitännälle yksityisen osoitteen, mikään portin välitys toimipisteen omassa reitittimessä ei tee siitä saavutettavaa, koska käännös tapahtuu ylempänä. Julkinen IPv6-osoite voi olla samalla linkillä ja muuttaa suunnittelun kokonaan, siksi tarkistus kattaa molemmat perheet. Kirjoita vastaus muistiin toimipisteittäin, koska kahdella on harvoin samat rajoitukset, vaikka ne jakaisivat operaattorin.
Tavallinen matkapuhelintapaus näyttää osoitteelta operaattorin käännetystä alueesta, jonka läpi kulkee oletusreitti. Se ei ole korjattava vika; se on syy siihen, miksi keskitin on olemassa. Etsit mitä tahansa osoitetta, johon kolmas osapuoli pääsee ennen kuin toimipiste on puhunut ensin.
Kaksi komentoa vastaa edessäsi olevan toimipisteen osoitteistuskysymykseen. Aja ne toimipisteen reitittimessä, älä sen takana olevalla kannettavalla:
ip -4 addr show scope global
ip -6 addr show scope globalKuka esittelee vertaiset ja kuka kantaa paketit
Esittely ja kuljetus ovat erillisiä töitä, joita tuotteet usein niputtavat tekemättä rajaa näkyväksi. Kohtaamismekanismi auttaa kahta vertaista löytämään ehdokasreitin; rele kantaa niiden paketit, kun suoraa reittiä ei ole. Vertaisia esittelevän palvelun ostaminen ei anna sinulle reititintä, ja tämä ero ratkaisee, tarvitseeko suunnittelu ylipäätään keskitintä.
Läpäisyllä on oma sanastonsa, ja sanat kuvaavat rooleja, eivät takuita. ICE-määrittely kuvaa ehdokkaat ja yhteydentarkistukset, STUN kuvaa yhden tavan oppia osoitteen käännöksestä, ja TURN kuvaa releen kautta välitetyn kuljetuksen sovelluksille, jotka toteuttavat sen. Mikään näistä mekanismeista ei esiinny tavanomaisessa yhdyskäytävässä, koska osoitit sen löytöosoitteeseen. Vahvista läpäisy tuotteen ominaisuutena ja oleta rele, kunnes testi osoittaa muuta.
Yksi reitti toimipistettä kohden, vertaisen omistama
Keskitin tarvitsee yhden tunnelin toimipistettä kohden, erillisen LAN-etuliitteen kunkin taakse ja reitin jokaista etuliitettä varten, joka nimeää sen omistajan. Esimerkissä keskitin on 10.61.0.1, toimipiste A on 10.61.0.11 LAN-verkolla 10.60.10.0/24 ja toimipiste B on 10.61.0.12 LAN-verkolla 10.60.20.0/24. Jokainen alla oleva reitti osoittaa vertaiseen, joka omistaa etuliitteen, ei tunnelin liitäntään:
ip route add 10.60.10.0/24 via 10.61.0.11 dev wg0
ip route add 10.60.20.0/24 via 10.61.0.12 dev wg0
sysctl net.ipv4.ip_forward
ip route get 10.60.20.55 from 10.60.10.77Välityksen on oltava käytössä, muuten paketit pysähtyvät keskittimeen ilman virhettä, joka osoittaisi syyn. Viimeinen komento vastaa todelliseen kysymykseen, koska se kysyy, minkä polun paketti kulkisi toimipisteen A LAN-verkosta toimipisteen B LAN-verkkoon, kun lähde on mukana haussa. Pidä hakua, joka nimeää tunnelin liitännän, todisteena ja hakua, joka putoaa oletusreitille, puuttuvana reittinä eikä arvoituksena. Rajoita sitten läpikulkua tarkoituksella, koska keskitin, joka välittää jokaisen vertaisen välillä, tekee kahdesta toimipisteestä litteän verkon ja luulemasi käyttöoikeuskäytäntö lakkaa pätenemästä.
Päätä myös, mihin salaus päättyy. Kun keskitin pitää molemmat tunnelin päät, kyseisen koneen ylläpitäjä ja sen työkuorma liittyvät luottamus- ja saatavuusmalliin, ja sen kaistanleveydestä tulee osa polkua.
Pidä jokainen kartoitus elossa operaattorin läpi
Jokainen toimipiste aloittaa oman tunnelinsa, ja jokaisen on pidettävä käännöskartoitus elossa, muuten operaattori unohtaa sen. Aloittavan osapuolen keepalive säilyttää kartoituksen kättelyjen välissä. Rajaa sallitut etuliitteet keskittimeen osoitteeseen ja etäiseen LAN-verkkoon, jotta vaarantunut vertainen ei voi vaatia etuliitettä, jota se ei omista:
[Peer]
PublicKey = <hub public key>
Endpoint = 192.0.2.10:51820
AllowedIPs = 10.61.0.1/32, 10.60.20.0/24
PersistentKeepalive = 25Peilaa lohko toisessa toimipisteessä sen omalla etäisellä etuliitteellä, ja vastusta halua sallia koko tunnelialue. Kättely, joka pysähtyy ja jatkuu uudesta lähdeportista, on vanhentuneen kartoituksen allekirjoitus, ja kättelyn aikaleimat ovat todiste siitä, että niin tapahtui. Operaattorin aikakatkaisua lyhyempi väli estää vanhenemisen sen jälkeen korjaamisen sijaan. Kun operaattori muuttaa käännöskäyttäytymistään, odota näiden ajoitusten muuttuvan sen mukana.
Todista molemmat suunnat, sitten todista palautuminen
Vahvistus on suunnallinen, joten ping A:sta B:hen todistaa puolet suunnittelusta eikä mitään paluureitistä. Tarkista vastausreitti samalla lähdetietoisella haulla keskittimessä, ja toista testi toiselta puolelta. Tuoreet kättelyt kuuluvat myös todisteisiin, koska tunnin joutilaana ollut tunneli voi testata vanhaa kartoitusta:
wg show wg0 latest-handshakes
ping -c 3 10.60.20.55
traceroute -n 10.60.20.55Testaa sitten odottamasi epäonnistuminen, älä haluamaasi onnistumista. Käynnistä yhden toimipisteen linkki uudelleen ja vahvista, että tunneli palaa ilman, että ihminen koskee kumpaankaan päähän, koska suunnittelu, joka tarvitsee ylläpitäjän jokaisen operaattorin muutoksen jälkeen, on kesken. Kirjaa ensisijainen polku, IPv6-vaihtoehto kun se on olemassa, ja käyttäytyminen, kun keskitin ei ole käytettävissä. Keskitin on nyt osa saatavuusmalliasi, joten kirjoita se muistiin sen sijaan, että löydät sen katkoksen aikana.