VPN in domače LAN v istem podomrežju: najprej prehodite pot
Oba adapterja zahtevata 192.168.1.0/24 in zmaga samo ena pot. Prehodite seznam adapterjev, zmagovalno pot in pot nazaj, preden preštevilčite ali obtožite DNS.
Povežete se v pisarniški VPN, ikona v pladnju postane zelena, intranet se naloži in tiskalnik dva metra stran neha odgovarjati. Deljena mapa, ki je delovala zjutraj, na istem računalniku poteče, in noben dnevnik ne omenja tiskalnika. Refleks je DNS, ker ime, ki se ne razreši, izgleda kot ime, ki ne obstaja, a težava je v naslovu: dva adapterja zdaj zahtevata 192.168.1.0/24 in to predpono lahko dobi samo ena pot. Prehodite jo v tem vrstnem redu in videli boste, kateri adapter jo je vzel, preden karkoli spremenite.
Začnite s simptomom, ne s tunelom
Namig je obseg. Če intranet deluje in vsaka lokalna naprava odpove, je tunel zdrav, lokalna pot pa ne. Če lokalne naprave delujejo in intranet odpove, je obratno. Če vse deluje razen enega gostitelja, gledate en naslov, ki obstaja na obeh straneh.
Preden se dotaknete nastavitve, zapišite en lokalni in en oddaljeni naslov. „Tiskalnika“ ni mogoče preizkusiti; 192.168.1.40 je mogoče. Ta korak prepreči najpogosteje izgubljeno uro pri tej težavi, to je prepisovanje nastavitev DNS zaradi odločitve o usmerjanju.
Korak 1: vidite oba adapterja, ki zahtevata predpono
Odprite Omrežne povezave (ncpa.cpl) in berite oba adapterja drug ob drugem. Adapter Ethernet prikazuje 192.168.1.50/24 s prehodom 192.168.1.1. Adapter VPN prikazuje 192.168.1.201/24, ki ga je poslal strežnik. Oba sta legitimna, oba verjameta, da je predpona on-link, in sklad bo zanjo obdržal eno pot.
Get-NetIPAddress -AddressFamily IPv4 našteje naslove, Get-NetIPInterface | Sort-Object InterfaceMetric pa prikaže vrstni red, v katerem jih bo sklad uporabil. Ta stolpec metrike je odločitev, ki jo boste pravkar prebrali, zato si številke zapišite, namesto da bi si jih poskušali zapomniti.
Poceni ovrzite teorijo DNS: Resolve-DnsName printer.office.lan vrne isti naslov kot včeraj. Ime se je razrešilo; nato je paket odšel skozi napačen adapter. Dve minuti tukaj prihranita popoldne v nastavitvah razreševalnika.
Korak 2: preberite pot, ki je resnično zmagala
Find-NetRoute -RemoteIPAddress 192.168.1.40 izpiše vmesnik, naslednji skok in vir, ki bi jih sklad uporabil za ta naslov. Ta izpis obravnavajte kot odgovor, ne kot namig. route print -4 da celotno tabelo, ko želite videti, kateri vnos je izgubil in za koliko.
Specifičnost premaga namen. Poslan 192.168.0.0/25 premaga lokalni 192.168.0.0/24, ker je predpona daljša, zato 192.168.0.0 do 192.168.0.127 odhajajo skozi tunel, zgornja polovica pa ostane lokalna. Da polovica LAN izgine brez sporočila o napaki, je pravilno vedenje te tabele.
tracert -d 192.168.1.40 to potrdi od zunaj tabele: če je prvi skok naslov tunela namesto vašega usmerjevalnika, je pot celotna zgodba. V Linuxu je isto vprašanje ip route get 192.168.1.40, ki izpiše izvorni naslov in napravo v eni vrstici. Ko odgovor omeni tun0, nehajte gledati brskalnik.
Korak 3: preverite pot nazaj, preden obtožite odjemalca
Pravilna pot naprej vseeno odpove, če oddaljena stran ne more odgovoriti. Ko do LAN odjemalca pridemo skozi tunel, mora prehod tega LAN vedeti, kje živi bazen tunela: ip route add 10.8.0.0/24 via 192.168.1.12 na tem usmerjevalniku, in push „route 192.168.1.0 255.255.255.0“ s strežnika, da odjemalci poznajo pot nazaj.
Brez prvega vnosa odgovor zapusti cilj proti svojemu privzetemu prehodu, ki zasebni naslov posreduje ponudniku in ga zavrže. Simptom je enosmeren in se zlahka napačno prebere: zahteve se pojavijo na tun0, odgovori nikoli.
Pravilo masquerade na gostitelju VPN odpravi potrebo po tej statični poti: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. Skrije tudi prave izvorne naslove, kar oteži vsako poznejše vprašanje o dnevnikih. Ciljni gostitelj z napačnim privzetim prehodom ustvari enako tišino, v najboljšem primeru s preusmeritvijo ICMP, v običajnem pa s črno luknjo, zato posnetek sodi na oba konca.
Korak 4: izberite popravilo, s katerim lahko živite
Za to se uporablja pet popravil in niso zamenljiva. Izberite po tem, kaj mora ostati dosegljivo hkrati, ne po tem, kateri ukaz je najkrajši.
| Repair | What it fixes | What it costs |
|---|---|---|
| Flip interface metrics | Alternating access: office now, home later, never both | Get-NetAdapter -Name "Ethernet 2" | Set-NetIPInterface -InterfaceMetric 21; set the VPN adapter back to 5000. A client that rewrites metrics on connect defeats it |
| Renumber one side | Every host reachable in both directions | DHCP reservations, printer queues, firewall rules and hard-coded addresses all move |
| Narrow the advertised prefix | Remote hosts really live in the upper half | Breaks the day someone adds a host below the cut |
| Translate with client-nat | Both address plans stay untouched | Stateless per-client mapping, unreadable logs, anything embedding addresses breaks |
| Publish one service with DNAT | One service on the VPN host reachable from the LAN | Both address plans stay; source addresses and reverse lookups stop being meaningful |
Metrike so poceni možnost in tista, po kateri ljudje najprej posežejo. Sprememba velja za vmesnik, zato deluje, dokler je tunel pokonci, in sodi v skript poleg odjemalca, ne v lupino, ki jo boste pozabili. Ne more dati sočasnega dostopa do istega naslova v dveh omrežjih, in prav ta meja pošlje vse ostale po tabeli navzdol.
Preštevilčenje domačega LAN na 10.10.0.0/24 je čista rešitev: ena obnovitev najema DHCP plus rezervacije, tiskalne vrste in trdo kodirani naslovi, ki omenjajo stari obseg. Preštevilčenje pisarniške strani običajno ni vaša odločitev. IPv6 popolnoma odpravi trk, ko ga nosita obe omrežji, z edinstveno lokalno predpono iz fd00::/8 namesto nečesa, kar si je lahko zapomniti, vendar preizkusite aplikacijo po TCP, ne s pingom, ker lahko ICMP deluje, medtem ko storitev ne.
Lastna možnost prevajanja OpenVPN je zadnja rešitev, poslana s strežnika v vnos imenika, specifičen za odjemalca. Za imenom možnosti sprejme štiri parametre — smer, omrežje, masko in vzdevek — in vzdevek ni izbiren: push "route 192.168.2.0 255.255.255.0" in push "client-nat dnat 192.168.2.0 255.255.255.0 192.168.1.0". Omrežje in maska sta obseg, ki ga odjemalec vidi (192.168.2.0/24), vzdevek je pravi pisarniški obseg na strani strežnika (192.168.1.0/24), poslana pot pa naredi ta vidni obseg dosegljiv. Pisarna se nato temu odjemalcu prikaže pod 192.168.2.x. Dokumentirajte preslikavo v profilu, sicer jo bo naslednja oseba razhroščevala kot napako usmerjanja.
Objavljanje ene storitve je ozka različica prevajanja in možnosti OpenVPN sploh ne potrebuje. Pravilo DNAT na gostitelju VPN znova objavi ena vrata, zato LAN obdrži svoje naslove in doseže storitev na naslovu gostitelja, ki ga že pozna. Cena je običajna: storitev vidi gostitelja VPN kot vir, zato dnevniki po odjemalcih in povratna iskanja ne pomenijo več ničesar. To pokrije eno tiskalno vrsto ali eno skrbniško stran, ne gostiteljev na obeh straneh, ki se dosežejo.
Kaj še vedno ne bo delovalo in kaj zabeležiti
Razširjanje ne prečka usmerjenega tunela. DLNA, UPnP, brskanje NetBIOS in Wake-on-LAN so odvisni od razširjanja ali multicast, ki ga naprava tun ne prenaša, zato nobena pot ne popravi odkrivanja. Mostenje z dev tap razširi segment in z njim razširjanje DHCP, ARP in vsak drug paket odkrivanja; raje izberite unicast pot do gostitelja, na primer route 192.168.2.1 255.255.255.255, za naslov na strani LAN oddaljenega usmerjevalnika.
Dva usmerjevalnika, ki oba uporabljata 192.168.1.1 na isti poti, spadata v isto družino težav: lokalni naslov vedno zmaga, zato stran oddaljenega usmerjevalnika ostane nedosegljiva, dokler se en LAN ne preseli. Dodajanje drugega adapterja ne spremeni ničesar v nobenem od obeh primerov.
Zapišite dokaze, preden karkoli uredite: ip route get ali Find-NetRoute, ping -c 3 na zadevni naslov, traceroute in tcpdump -ni tun0 icmp na odjemalcu, nato usmerjevalno tabelo in števce NAT na strežniku. Ping, ki deluje v eno smer in umre v drugo, kaže na pot nazaj, ne na tunel, in prav ta razlika odloči, katero od zgornjih popravil v resnici potrebujete.