VPN un mājas LAN vienā apakštīklā: vispirms izstaigājiet maršrutu
Abi adapteri pretendē uz 192.168.1.0/24, un uzvar tikai viens maršruts. Izstaigājiet adapteru sarakstu, uzvarējušo maršrutu un atgriešanās ceļu pirms pārnumurēšanas vai DNS vainošanas.
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ā.
| 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 |
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.