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.

RepairWhat it fixesWhat it costs
Flip interface metricsAlternating access: office now, home later, never bothGet-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 sideEvery host reachable in both directionsDHCP reservations, printer queues, firewall rules and hard-coded addresses all move
Narrow the advertised prefixRemote hosts really live in the upper halfBreaks the day someone adds a host below the cut
Translate with client-natBoth address plans stay untouchedStateless per-client mapping, unreadable logs, anything embedding addresses breaks
Publish one service with DNATOne service on the VPN host reachable from the LANBoth 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.

Sorodni članki