Jūs pieslēdzaties biroja VPN, teknējā ikona kļūst zaļa, intranets ielādējas, un printeris divu metru attālumā pārstāj atbildēt. Koplietojamā mape, kas darbojās no rīta, tajā pašā datorā nonāk līdz taimautam, un nevienā žurnālā nav pieminēts printeris. Pirmā reakcija ir DNS, jo neatrisināts nosaukums izskatās kā neeksistējošs nosaukums, bet problēma ir adresē: divi adapteri tagad pretendē uz 192.168.1.0/24, un šo prefiksu var uzvarēt tikai viens maršruts. Izstaigājiet to šajā secībā, un jūs redzēsiet, kurš adapteris to paņēma, pirms kaut ko mainījāt.

Sāciet ar simptomu, nevis tuneli

Pazīme ir apjoms. Ja intranets darbojas un visas vietējās ierīces nokrīt, tunelis ir vesels, bet vietējais ceļš nav. Ja vietējās ierīces darbojas un intranets nokrīt, ir otrādi. Ja viss darbojas, izņemot vienu saimnieku, jūs skatāties uz vienu adresi, kas pastāv abās pusēs.

Pierakstiet vienu vietējo un vienu attālo adresi, pirms pieskaraties iestatījumam. “Printeri” nevar pārbaudīt; 192.168.1.40 var. Šis viens solis novērš visbiežāk izšķērdēto stundu šajā problēmā, proti, DNS iestatījumu pārrakstīšanu maršrutēšanas lēmuma dēļ.

1. solis: ieraugiet abus adapterus, kas pretendē uz prefiksu

Atveriet Tīkla savienojumus (ncpa.cpl) un lasiet abus adapterus blakus. Ethernet adapteris rāda 192.168.1.50/24 ar vārteju 192.168.1.1. VPN adapteris rāda 192.168.1.201/24, ko nosūtījis serveris. Abi ir likumīgi, abi uzskata, ka prefikss ir on-link, un steks tam turēs vienu maršrutu.

Get-NetIPAddress -AddressFamily IPv4 uzskaita adreses, un Get-NetIPInterface | Sort-Object InterfaceMetric parāda secību, kādā steks tās izmantos. Tā metrikas kolonna ir lēmums, ko jūs tūlīt lasīsiet, tāpēc pierakstiet skaitļus, nevis mēģiniet tos atcerēties.

Lēti atspēkojiet DNS teoriju: Resolve-DnsName printer.office.lan atgriež to pašu adresi kā vakar. Nosaukums tika atrisināts; pēc tam pakete izgāja caur nepareizo adapteri. Divas minūtes šeit ietaupa pēcpusdienu risinātāja iestatījumos.

2. solis: izlasiet maršrutu, kas patiešām uzvarēja

Find-NetRoute -RemoteIPAddress 192.168.1.40 izdrukā saskarni, nākamo lēcienu un avotu, ko steks izmantotu šai adresei. Uztveriet šo izvadi kā atbildi, nevis mājienu. route print -4 dod visu tabulu, kad vēlaties redzēt, kurš ieraksts zaudēja un cik daudz.

Konkrētība pārspēj nodomu. Iestumtais 192.168.0.0/25 pārspēj vietējo 192.168.0.0/24, jo prefikss ir garāks, tāpēc 192.168.0.0 līdz 192.168.0.127 iziet caur tuneli, kamēr augšējā puse paliek vietēja. Tas, ka puse LAN pazūd bez kļūdas ziņojuma, ir pareiza šīs tabulas uzvedība.

tracert -d 192.168.1.40 to apstiprina ārpus tabulas: ja pirmais lēciens ir tuneļa adrese, nevis jūsu paša maršrutētājs, maršruts ir viss stāsts. Linux tas pats jautājums ir ip route get 192.168.1.40, kas izdrukā avota adresi un ierīci vienā rindā. Kad atbilde nosauc tun0, pārtrauciet skatīties uz pārlūku.

3. solis: pārbaudiet atgriešanās ceļu, pirms vainojat klientu

Pareizs maršruts uz priekšu tomēr neizdodas, ja tālā puse nevar atbildēt. Kad klienta LAN tiek sasniegts caur tuneli, šīs LAN vārtejai jāzina, kur dzīvo tuneļa pūls: ip route add 10.8.0.0/24 via 192.168.1.12 tajā maršrutētājā, un push „route 192.168.1.0 255.255.255.0“ no servera, lai klienti zinātu atgriešanās ceļu.

Bez pirmā ieraksta atbilde pamet mērķi uz savu noklusēto vārteju, kas pārsūta privātu adresi pakalpojumu sniedzējam un to izmet. Simptoms ir vienvirziena un viegli nepareizi nolasāms: pieprasījumi parādās uz tun0, atbildes nekad.

Masquerade noteikums VPN saimniekā novērš vajadzību pēc šī statiskā maršruta: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. Tas arī slēpj īstās avota adreses, kas padara katru vēlāko žurnāla jautājumu grūtāku. Mērķa saimnieks ar nepareizu noklusēto vārteju rada to pašu klusumu: labākajā gadījumā ICMP pāradresāciju, parastajā — melnu bedri, tāpēc ieraksts pieder abiem galiem.

4. solis: izvēlieties labojumu, ar kuru varat sadzīvot

Tam tiek izmantoti pieci labojumi, un tie nav aizstājami. Izvēlieties pēc tā, kam jāpaliek sasniedzamam vienlaikus, nevis pēc tā, kura komanda ir īsākā.

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

Metrikas ir lētais variants un tas, pie kā cilvēki ķeras vispirms. Izmaiņa attiecas uz saskarni, tāpēc tā darbojas, kamēr tunelis ir augšā, un tās vieta ir skriptā blakus klientam, nevis čaulā, kuru aizmirsīsiet. Tā nevar dot vienlaicīgu piekļuvi vienai adresei divos tīklos, un tieši šis ierobežojums visus pārējos sūta tabulas apakšā.

Mājas LAN pārnumurēšana uz 10.10.0.0/24 ir tīrais risinājums: viens DHCP nomas atjauninājums plus rezervācijas, drukas rindas un cieti kodētās adreses, kas piemin veco diapazonu. Biroja puses pārnumurēšana parasti nav jūsu lēmums. IPv6 pilnībā novērš sadursmi, ja abi tīkli to atbalsta, izmantojot unikālu vietējo prefiksu no fd00::/8, nevis kaut ko viegli iegaumējamu, bet pārbaudiet lietojumprogrammu TCP, nevis ar ping, jo ICMP var darboties, kamēr pakalpojums nedarbojas.

Pašas OpenVPN tulkošanas opcija ir pēdējais līdzeklis, ko no servera iebīda klientam raksturīgā direktorijas ierakstā. Tā pēc opcijas nosaukuma ņem četrus parametrus — virzienu, tīklu, tīkla masku un aizstājvārdu — un aizstājvārds nav obligāts: push "route 192.168.2.0 255.255.255.0" un push "client-nat dnat 192.168.2.0 255.255.255.0 192.168.1.0". Tīkls un maska ir diapazons, ko klients redz (192.168.2.0/24), aizstājvārds ir īstais biroja diapazons servera pusē (192.168.1.0/24), un iebīdītais maršruts padara šo redzamo diapazonu sasniedzamu. Tad birojs šim klientam parādās zem 192.168.2.x. Dokumentējiet kartējumu profilā, citādi nākamais cilvēks to atkļūdos kā maršrutēšanas kļūdu.

Viena pakalpojuma publicēšana ir tulkošanas šaurā versija, un tai vispār nav vajadzīga OpenVPN opcija. DNAT noteikums VPN saimniekā atkārtoti publicē vienu portu, tāpēc LAN saglabā savas adreses un sasniedz pakalpojumu tajā saimnieka adresē, ko jau zina. Izmaksas ir parastās: pakalpojums redz VPN saimnieku kā avotu, tāpēc žurnāli pa klientiem un apgrieztās meklēšanas vairs neko nenozīmē. Tas aptver vienu drukas rindu vai vienu administrēšanas lapu, nevis abu pušu saimniekus, kas sasniedz viens otru.

Kas joprojām nedarbosies un ko pierakstīt

Raide nešķērso maršrutētu tuneli. DLNA, UPnP, NetBIOS pārlūkošana un Wake-on-LAN ir atkarīgi no raides vai multiraides, ko tun ierīce nenes, tāpēc neviens maršruts nelabo atklāšanu. Tiltu ar dev tap paplašina segmentu un līdz ar to DHCP raides, ARP un visus citus atklāšanas paketes; dodiet priekšroku unicast saimnieka maršrutam, piemēram, route 192.168.2.1 255.255.255.255, attālā maršrutētāja LAN puses adresei.

Divi maršrutētāji, kas abi izmanto 192.168.1.1 vienā ceļā, pieder vienai problēmu saimei: vietējā adrese vienmēr uzvar, tāpēc attālā maršrutētāja lapa paliek nesasniedzama, līdz viens LAN pārceļas. Otra adaptera pievienošana neko nemaina nevienā no abiem gadījumiem.

Pierakstiet pierādījumus, pirms kaut ko labojat: ip route get vai Find-NetRoute, ping -c 3 uz attiecīgo adresi, traceroute, un tcpdump -ni tun0 icmp klientā, tad maršrutēšanas tabulu un NAT skaitītājus serverī. Ping, kas darbojas vienā virzienā un mirst otrā, norāda uz atgriešanās ceļu, nevis tuneli, un tieši šī vienīgā atšķirība nosaka, kurš no iepriekš minētajiem labojumiem jums patiešām vajadzīgs.

Saistītie raksti