Prisijungiate prie biuro VPN, dėklo piktograma tampa žalia, intranetas įsikelia, o dviem metrais toliau esantis spausdintuvas nustoja atsakinėti. Bendraimasis aplankas, kuris veikė ryte, tame pačiame kompiuteryje baigia laukti, ir jokiame žurnale nėra spausdintuvo. Pirmoji reakcija – DNS, nes neišsprendžiamas vardas atrodo kaip neegzistuojantis vardas, bet problema yra adresas: du adapteriai dabar pretenduoja į 192.168.1.0/24, o šį priešdėlį gali laimėti tik vienas maršrutas. Pereikite tai šia tvarka ir pamatysite, kuris adapteris jį paėmė, prieš ką nors keisdami.

Pradėkite nuo simptomo, o ne nuo tunelio

Užuomina – apimtis. Jei intranetas veikia, o visi vietiniai įrenginiai nepavyksta, tunelis sveikas, o vietinis kelias ne. Jei vietiniai įrenginiai veikia, o intranetas nepavyksta, atvirkščiai. Jei viskas veikia išskyrus vieną mazgą, matote vieną adresą, kuris egzistuoja abiejose pusėse.

Užsirašykite vieną vietinį ir vieną nuotolinį adresą prieš liesdami nustatymą. „Spausdintuvo“ patikrinti negalima; 192.168.1.40 galima. Šis vienas žingsnis apsaugo nuo dažniausiai prarandamos valandos šioje problemoje, tai yra DNS nustatymų perrašymo dėl maršrutizavimo sprendimo.

1 žingsnis: pamatykite abu adapterius, pretenduojančius į priešdėlį

Atidarykite Tinklo ryšius (ncpa.cpl) ir skaitykite abu adapterius greta. Ethernet adapteris rodo 192.168.1.50/24 su tinklų sietuvu 192.168.1.1. VPN adapteris rodo 192.168.1.201/24, kurį atsiuntė serveris. Abu yra teisėti, abu tiki, kad priešdėlis yra on-link, o dėklas jam palaikys vieną maršrutą.

Get-NetIPAddress -AddressFamily IPv4 išvardija adresus, o Get-NetIPInterface | Sort-Object InterfaceMetric rodo tvarką, kuria dėklas juos naudos. Tas metrikos stulpelis yra sprendimas, kurį ketinate perskaityti, todėl užsirašykite skaičius, o ne bandykite juos atsiminti.

Pigiai paneigkite DNS teoriją: Resolve-DnsName printer.office.lan grąžina tą patį adresą kaip vakar. Vardas buvo išspręstas; tada paketas išėjo per netinkamą adapterį. Dvi minutės čia sutaupo popietę sprendėjo nustatymuose.

2 žingsnis: perskaitykite maršrutą, kuris tikrai laimėjo

Find-NetRoute -RemoteIPAddress 192.168.1.40 išspausdina sąsają, kitą šuolį ir šaltinį, kuriuos dėklas naudotų tam adresui. Traktuokite šią išvestį kaip atsakymą, o ne kaip užuominą. route print -4 pateikia visą lentelę, kai norite pamatyti, kuris įrašas pralaimėjo ir kiek.

Konkretumas nugali ketinimą. Stumiamas 192.168.0.0/25 nugali vietinį 192.168.0.0/24, nes priešdėlis ilgesnis, todėl 192.168.0.0–192.168.0.127 išeina per tunelį, o viršutinė pusė lieka vietinė. Kad pusė LAN dingsta be klaidos pranešimo, yra teisingas tos lentelės elgesys.

tracert -d 192.168.1.40 tai patvirtina už lentelės ribų: jei pirmas šuolis yra tunelio adresas, o ne jūsų maršrutizatorius, maršrutas yra visa istorija. Linux atveju tas pats klausimas yra ip route get 192.168.1.40, kuris išspausdina šaltinio adresą ir įrenginį vienoje eilutėje. Kai atsakyme nurodytas tun0, nustokite žiūrėti į naršyklę.

3 žingsnis: patikrinkite grįžimo kelią prieš kaltindami klientą

Teisingas maršrutas pirmyn vis tiek nepavyksta, jei tolimoji pusė negali atsakyti. Kai į kliento LAN patenkama per tunelį, tos LAN sietuvas turi žinoti, kur gyvena tunelio telkinys: ip route add 10.8.0.0/24 via 192.168.1.12 tame maršrutizatoriuje, ir push „route 192.168.1.0 255.255.255.0“ iš serverio, kad klientai žinotų grįžimo kelią.

Be pirmo įrašo atsakymas palieka tikslą link savo numatytojo sietuvo, kuris perduoda privatų adresą tiekėjui ir jį numeta. Simptomas vienkryptis ir lengvai neteisingai perskaitomas: užklausos pasirodo tun0, atsakymai niekada.

Masquerade taisyklė VPN mazge pašalina to statinio maršruto poreikį: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. Ji taip pat slepia tikruosius šaltinio adresus, todėl kiekvienas vėlesnis žurnalo klausimas tampa sunkesnis. Tikslinis mazgas su neteisingu numatytuoju sietuvu sukuria tą pačią tylą, geriausiu atveju su ICMP peradresavimu, o įprastu atveju su juoda skylių, todėl fiksavimas priklauso abiem galams.

4 žingsnis: pasirinkite taisymą, su kuriuo galite gyventi

Tam naudojami penki taisymai, ir jie nėra keičiami. Rinkitės pagal tai, kas turi likti pasiekiama vienu metu, o ne pagal tai, kuri komanda trumpiausia.

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

Metrikos yra pigus variantas ir tas, į kurį žmonės pirmiausia siekia. Pakeitimas galioja sąsajai, todėl veikia, kol tunelis pakeltas, ir jo vieta yra scenarijuje prie kliento, o ne apvalkale, kurį pamiršite. Ji negali suteikti vienalaikės prieigos prie to paties adreso dviejuose tinkluose, ir būtent ši riba siunčia visus kitus lentelės apačion.

Namų LAN pernumeravimas į 10.10.0.0/24 yra švarus sprendimas: vienas DHCP nuomos atnaujinimas plius rezervacijos, spausdinimo eilės ir kietai įrašyti adresai, kurie mini seną diapazoną. Biuro pusės pernumeravimas paprastai nėra jūsų sprendimas. IPv6 visiškai pašalina susidūrimą, kai abu tinklai jį palaiko, naudodamas unikalų vietinį priešdėlį iš fd00::/8 vietoj ko nors įsimintino, bet testuokite programą per TCP, o ne ping, nes ICMP gali veikti, kai paslauga neveikia.

Pačios OpenVPN vertimo parinktis yra paskutinė priemonė, stumiama iš serverio į klientui būdingą katalogo įrašą. Ji priima keturis parametrus po parinkties pavadinimo – kryptį, tinklą, tinklo kaukę ir slapyvardį – ir slapyvardis nėra neprivalomas: push "route 192.168.2.0 255.255.255.0" ir push "client-nat dnat 192.168.2.0 255.255.255.0 192.168.1.0". Tinklas ir kaukė yra diapazonas, kurį mato klientas (192.168.2.0/24), slapyvardis yra tikrasis biuro diapazonas serverio pusėje (192.168.1.0/24), o stumiamas maršrutas padaro tą matomą diapazoną pasiekiamą. Tada biuras tam klientui rodomas po 192.168.2.x. Dokumentuokite atvaizdavimą profilyje, kitaip kitas žmogus derins tai kaip maršrutizavimo gedimą.

Vienos paslaugos publikavimas yra siaura vertimo versija, ir jai visiškai nereikia OpenVPN parinkties. DNAT taisyklė VPN mazge iš naujo paskelbia vieną prievadą, todėl LAN išsaugo savo adresus ir pasiekia paslaugą tuo mazgo adresu, kurį jau žino. Kaina įprasta: paslauga mato VPN mazgą kaip šaltinį, todėl žurnalai pagal klientą ir atvirkštinės užklausos nebetenka prasmės. Tai apima vieną spausdinimo eilę arba vieną administravimo puslapį, o ne abiejų pusių mazgus, kurie pasiekia vienas kitą.

Kas vis tiek neveiks ir ką užsirašyti

Transliacija neperžengia maršrutizuoto tunelio. DLNA, UPnP, NetBIOS naršymas ir Wake-on-LAN priklauso nuo transliacijos ar daugiaadresės siuntos, kurios tun įrenginys neneša, todėl joks maršrutas nepataiso aptikimo. Tiltas su dev tap prailgina segmentą ir kartu DHCP transliacijas, ARP bei visus kitus aptikimo paketus; teikite pirmenybę unicast mazgo maršrutui, pavyzdžiui, route 192.168.2.1 255.255.255.255, nuotolinio maršrutizatoriaus LAN pusės adresui.

Du maršrutizatoriai, kurie abu naudoja 192.168.1.1 tame pačiame kelyje, priklauso tai pačiai problemų šeimai: vietinis adresas visada laimi, todėl tolimo maršrutizatoriaus puslapis lieka nepasiekiamas, kol vienas LAN nepersikelia. Antro adapterio pridėjimas nieko nekeičia nė vienu atveju.

Užrašykite įrodymus prieš ką nors redaguodami: ip route get arba Find-NetRoute, ping -c 3 į atitinkamą adresą, traceroute, ir tcpdump -ni tun0 icmp kliente, tada maršrutizavimo lentelę ir NAT skaitiklius serveryje. Ping, kuris veikia viena kryptimi ir miršta kita, nurodo grįžimo kelią, o ne tunelį, ir būtent šis vienintelis skirtumas nusprendžia, kurio iš aukščiau pateiktų taisymų jums iš tikrųjų reikia.

Susiję straipsniai