Dvije mobilne lokacije bez dolaznih portova: izgradite čvorište koje radi
Kada nijedna lokacija ne prihvata dolazne IPv4 veze, pustite obje da iniciraju prema dostupnom čvorištu. Izvedite korake usmjeravanja, prosljeđivanja i rezervnog puta ovim redom.
Dvije lokacije na mobilnim vezama imaju isti problem u oba smjera: nijedna ne može prihvatiti neželjenu IPv4 vezu, pa nijedna ne može igrati ulogu servera u direktnom tunelu. Arhitektura koja funkcioniše stavlja dostupnu treću stranu u sredinu: svaka lokacija se spaja prema van, a sredina prosljeđuje samo promet koji odobrite. Ta sredina može biti ruter koji sami vodite ili proizvod koji upoznaje partnere, i to nije isto. Koraci ispod poredani su tako da svaki daje dokaz prije nego sljedeći o njemu zavisi.
Nijednoj lokaciji se ne može prići, pa obje moraju zvati prema van
Potvrdite ograničenje prije nego što dizajnirate oko njega. Ako operater dodijeli WAN interfejsu privatnu adresu, nijedno prosljeđivanje porta na vlastitom ruteru lokacije neće ga učiniti dostupnim, jer se prevođenje dešava uzvodno. Javna IPv6 adresa može postojati na istoj vezi i potpuno promijeniti dizajn, zato provjera pokriva obje porodice. Zapišite odgovor za svaku lokaciju, jer dvije rijetko imaju identična ograničenja čak i kada dijele operatera.
Uobičajen mobilni slučaj izgleda kao adresa iz operaterovog prevedenog opsega s podrazumijevanim putem kroz nju. To nije kvar koji treba popraviti; to je razlog zbog kojeg čvorište postoji. Tražite bilo koju adresu do koje treća strana može doći prije nego što se lokacija prva javi.
Dvije komande odgovaraju na pitanje adresiranja za lokaciju pred kojom stojite. Pokrenite ih na ruteru lokacije, ne na laptopu iza njega:
ip -4 addr show scope global
ip -6 addr show scope globalKo upoznaje partnere i ko nosi pakete
Upoznavanje i prijenos su odvojeni poslovi koje proizvodi često spajaju ne pokazujući granicu. Mehanizam susreta pomaže dvama partnerima da nađu kandidatski put; relej nosi njihove pakete kada direktnog puta nema. Kupovina usluge koja upoznaje partnere ne daje vam ruter, a ta razlika odlučuje treba li dizajnu čvorište uopšte.
Probijanje ima svoj rječnik, a riječi opisuju uloge, ne garancije. ICE specifikacija opisuje kandidate i provjere povezanosti, STUN opisuje jedan način da saznate o prevođenju adresa, a TURN opisuje preneseni prijenos za aplikacije koje ga implementiraju. Nijedan od tih mehanizama ne postoji u uobičajenom gatewayu jer ste ga usmjerili na adresu za otkrivanje. Provjerite probijanje kao mogućnost proizvoda i pretpostavite relej dok test ne pokaže drugačije.
Jedna ruta po lokaciji, koju posjeduje partner
Čvorištu treba jedan tunel po lokaciji, poseban LAN prefiks iza svake i ruta za svaki prefiks koja imenuje vlasnika. U primjeru čvorište je 10.61.0.1, lokacija A je 10.61.0.11 s LAN-om 10.60.10.0/24, a lokacija B je 10.61.0.12 s LAN-om 10.60.20.0/24. Svaka ruta ispod pokazuje na partnera koji posjeduje prefiks, a ne na interfejs tunela:
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.77Prosljeđivanje mora biti omogućeno, inače se paketi zaustavljaju na čvorištu bez greške koja pokazuje uzrok. Posljednja komanda odgovara na pravo pitanje, jer pita kojim putem bi paket išao s LAN-a lokacije A na LAN lokacije B s izvorom uključenim u pretragu. Pretragu koja imenuje interfejs tunela smatrajte dokazom, a onu koja pada na podrazumijevanu rutu nedostajućom rutom, ne misterijom. Zatim namjerno ograničite tranzit, jer čvorište koje prosljeđuje između svakog partnera pretvara dvije lokacije u ravnu mrežu i politika pristupa koju ste mislili da imate prestaje važiti.
Odredite i gdje enkripcija završava. Kada čvorište drži oba završetka tunela, operater tog stroja i njegovo radno opterećenje ulaze u model povjerenja i dostupnosti, a njegov propusni opseg postaje dio puta.
Održavajte svako mapiranje živim kroz operatera
Svaka lokacija pokreće vlastiti tunel i svaka mora održavati mapiranje prevođenja živim, inače ga operater zaboravi. Poruka održavanja na strani koja inicira čuva to mapiranje između rukovanja. Ograničite dozvoljene prefikse na adresu čvorišta i udaljeni LAN, da kompromitovani partner ne može tražiti prefiks koji ne posjeduje:
[Peer]
PublicKey = <hub public key>
Endpoint = 192.0.2.10:51820
AllowedIPs = 10.61.0.1/32, 10.60.20.0/24
PersistentKeepalive = 25Preslikajte blok na drugoj lokaciji s njenim udaljenim prefiksom i oduprite se porivu da dozvolite cijeli raspon tunela. Rukovanje koje stane i nastavi s novog izvornog porta potpis je isteklog mapiranja, a vremenske oznake rukovanja dokaz su da se to dogodilo. Interval kraći od operaterovog isteka sprječava istek umjesto da ga kasnije popravlja. Kada operater promijeni ponašanje prevođenja, očekujte da će se ta vremena promijeniti s njim.
Dokažite oba smjera, zatim dokažite oporavak
Provjera je usmjerena, pa ping od A do B dokazuje pola dizajna i ništa o povratnoj ruti. Provjerite put odgovora istom pretragom svjesnom izvora na čvorištu, zatim ponovite test s druge strane. Svježa rukovanja također pripadaju dokazima, jer tunel koji je mirovao sat vremena možda testira staro mapiranje:
wg show wg0 latest-handshakes
ping -c 3 10.60.20.55
traceroute -n 10.60.20.55Zatim testirajte kvar koji očekujete, a ne uspjeh koji želite. Restartujte vezu jedne lokacije i potvrdite da se tunel vraća bez toga da čovjek dira bilo koji kraj, jer dizajn kojem treba operater nakon svake promjene kod operatera nije dovršen. Zapišite primarni put, IPv6 alternativu kada postoji i ponašanje kada čvorište nije dostupno. Čvorište je sada dio vašeg modela dostupnosti, pa to zapišite umjesto da otkrivate tijekom prekida.