VPN va uydagi LAN bitta subnetda: avval yo'lni kuzatib chiqing
Ikkala adapter ham 192.168.1.0/24 ni da'vo qiladi va faqat bitta yo'l yutadi. Qayta raqamlashdan yoki DNS ni ayblashdan oldin adapterlar ro'yxatini, yutgan yo'lni va qaytish yo'lini kuzatib chiqing.
Ofis VPN iga ulanasiz, tray belgisi yashil bo'ladi, intranet yuklanadi va ikki metr naridagi printer javob berishni to'xtatadi. Ertalab ishlagan umumiy papka o'sha mashinada vaqt tugatadi va hech bir jurnal printerni eslatmaydi. Birinchi reaksiya DNS, chunki hal qilinmaydigan nom mavjud bo'lmagan nomga o'xshaydi, lekin muammo manzilda: ikki adapter endi 192.168.1.0/24 ni da'vo qiladi va bu prefiksni faqat bitta yo'l yuta oladi. Shu tartibda kuzatib chiqing va biror narsani o'zgartirishdan oldin qaysi adapter uni egallaganini ko'rasiz.
Alomatdan boshlang, tunneldan emas
Belgi — qamrov. Intranet ishlasa va har bir mahalliy qurilma ishlamasa, tunnel sog'lom, mahalliy yo'l esa yo'q. Mahalliy qurilmalar ishlasa va intranet ishlamasa, aksi. Bitta xostdan boshqa hammasi ishlasa, siz ikki tomonda ham mavjud bitta manzilni ko'rib turibsiz.
Biror sozlamaga tegishdan oldin bitta mahalliy va bitta uzoq manzilni yozib qo'ying. “Printerni” sinab bo'lmaydi; 192.168.1.40 ni sinash mumkin. Shu bitta qadam bu muammoda eng ko'p yo'qotiladigan soatni — marshrutlash qarori uchun DNS sozlamalarini qayta yozishni — oldini oladi.
1-qadam: prefiksni da'vo qilayotgan ikkala adapterni ko'ring
Tarmoq ulanishlari (ncpa.cpl) ni oching va ikkala adapterni yonma-yon o'qing. Ethernet adapteri 192.168.1.50/24 va 192.168.1.1 shlyuzini ko'rsatadi. VPN adapteri server yuborgan 192.168.1.201/24 ni ko'rsatadi. Ikkalasi ham qonuniy, ikkalasi ham prefiksni on-link deb hisoblaydi va stek u uchun bitta yo'l saqlaydi.
Get-NetIPAddress -AddressFamily IPv4 manzillarni sanaydi, Get-NetIPInterface | Sort-Object InterfaceMetric esa stek ularni qanday tartibda ishlatishini ko'rsatadi. O'sha metrika ustuni siz hozir o'qimoqchi bo'lgan qaror, shuning uchun raqamlarni yodlashga urinish o'rniga yozib qo'ying.
DNS nazariyasini arzon rad eting: Resolve-DnsName printer.office.lan kechagi manzilni qaytaradi. Nom hal bo'ldi; keyin paket noto'g'ri adapterdan chiqdi. Bu yerda ikki daqiqa hal qiluvchi sozlamalarida yarim kunni tejaydi.
2-qadam: haqiqatda yutgan yo'lni o'qing
Find-NetRoute -RemoteIPAddress 192.168.1.40 o manzil uchun stek ishlatadigan interfeys, keyingi sakrash va manbani chiqaradi. Bu natijani maslahat emas, javob deb qabul qiling. Qaysi yozuv qancha yutqazganini ko'rish uchun route print -4 butun jadvalni beradi.
Aniqlik niyatdan ustun. Yuborilgan 192.168.0.0/25 mahalliy 192.168.0.0/24 dan ustun, chunki prefiks uzunroq, shuning uchun 192.168.0.0 dan 192.168.0.127 gacha tunneldan chiqadi, yuqori yarmi mahalliy qoladi. LAN ning yarmi hech qanday xato xabarisiz yo'qolishi o'sha jadval uchun to'g'ri xatti-harakat.
tracert -d 192.168.1.40 buni jadvaldan tashqaridan tasdiqlaydi: agar birinchi sakrash sizning routeringiz emas, tunnel manzili bo'lsa, marshrut butun voqea. Linux da xuddi shu savol ip route get 192.168.1.40, u manba manzili va qurilmani bitta satrda chiqaradi. Javob tun0 desa, brauzerga qarashni to'xtating.
3-qadam: mijozni ayblashdan oldin qaytish yo'lini tekshiring
To'g'ri oldinga yo'l ham uzoq tomon javob bera olmasa ishlamaydi. Mijoz LAN iga tunnel orqali yetib borilganda, o'sha LAN shlyuzi tunnel hovuzi qayerdaligini bilishi kerak: o'sha routerda ip route add 10.8.0.0/24 via 192.168.1.12, va mijozlar qaytish yo'lini bilishi uchun serverdan push “route 192.168.1.0 255.255.255.0”.
Birinchi yozuv bo'lmasa, javob nishondan chiqib o'zining standart shlyuziga ketadi, u xususiy manzilni provayderga uzatib tashlab yuboradi. Alomat bir tomonlama va noto'g'ri o'qish oson: so'rovlar tun0 da ko'rinadi, javoblar hech qachon.
VPN xostidagi masquerade qoidasi o'sha statik yo'lga ehtiyojni olib tashlaydi: iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. U haqiqiy manba manzillarni ham yashiradi, bu esa keyingi har bir jurnal savolini qiyinlashtiradi. Standart shlyuzi noto'g'ri nishon xost ham xuddi shu sukunatni keltiradi, eng yaxshi holatda ICMP qayta yo'naltirish va oddiy holatda qora tuynuk, shuning uchun ushlash ikki uchida ham kerak.
4-qadam: birga yashay oladigan tuzatishni tanlang
Buning uchun beshta tuzatish ishlatiladi va ular bir-birining o'rnini bosmaydi. Qaysi buyruq qisqaroq ekaniga qarab emas, bir vaqtda nima yetib borishli qolishi kerakligiga qarab tanlang.
| 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 |
Metrikalar arzon variant va odamlar birinchi qo'l uradigan narsa. O'zgarish interfeysga tegishli, shuning uchun tunnel ko'tarilgan ekan ishlaydi va joyi mijoz yonidagi skriptda, siz unutadigan shell da emas. U bir manzilga ikki tarmoqda bir vaqtda kirish bera olmaydi va aynan shu chegara qolganlarni jadvalning pastiga yuboradi.
Uydagi LAN ni qayta raqamlash 10.10.0.0/24 ga toza yechim: bitta DHCP ijara yangilanishi va eski diapazonni eslatuvchi rezervlashlar, printer navbatlari va qattiq yozilgan manzillar. Ofis tomonini qayta raqamlash odatda sizning qaroringiz emas. Ikkala tarmoqda bo'lsa IPv6 to'qnashuvni butunlay olib tashlaydi, eslab qoladigan narsa o'rniga fd00::/8 dan noyob mahalliy prefiks ishlatib, lekin ilovani TCP da sinang, ping bilan emas, chunki ICMP ishlab, xizmat ishlamasligi mumkin.
OpenVPN ning o'z tarjima opsiyasi oxirgi chora, serverdan mijozga xos katalog yozuviga yuboriladi. Opsiya nomidan keyin to'rt parametr oladi — yo'nalish, tarmoq, niqob va taxallus — va taxallus ixtiyoriy emas: push "route 192.168.2.0 255.255.255.0" va push "client-nat dnat 192.168.2.0 255.255.255.0 192.168.1.0". Tarmoq va niqob mijoz ko'radigan diapazon (192.168.2.0/24), taxallus server tomonidagi haqiqiy ofis diapazoni (192.168.1.0/24), va yuborilgan yo'l o'sha ko'rinadigan diapazonni yetib borishli qiladi. Shunda ofis o'sha mijozga 192.168.2.x ostida ko'rinadi. Xaritani profilda hujjatlashtiring, aks holda keyingi odam uni marshrutlash nosozligi deb tuzatadi.
Bitta xizmatni e'lon qilish tarjimaning tor ko'rinishi va unga OpenVPN opsiyasi umuman kerak emas. VPN xostidagi DNAT qoidasi bitta portni qayta e'lon qiladi, shuning uchun LAN o'z manzillarini saqlaydi va allaqachon bilgan xost manzilida xizmatga yetadi. Narxi odatdagidek: xizmat VPN xostini manba deb ko'radi, shuning uchun har bir mijoz bo'yicha jurnallar va teskari qidiruvlar ma'nosini yo'qotadi. Bu bitta printer navbatini yoki bitta boshqaruv sahifasini qamraydi, ikki tomondagi xostlarning bir-biriga yetishini emas.
Yana nima ishlamaydi va nima yozib qo'yiladi
E'lon qilish marshrutlangan tunneldan o'tmaydi. DLNA, UPnP, NetBIOS ko'rish va Wake-on-LAN tun qurilmasi ko'tarmaydigan e'lon yoki multicastga tayanadi, shuning uchun hech qanday yo'l aniqlashni tuzatmaydi. dev tap bilan ko'prik segmentni uzaytiradi va u bilan birga DHCP e'lonlari, ARP va boshqa aniqlash paketlarini ham; uzoq routerning LAN tomonidagi manzil uchun route 192.168.2.1 255.255.255.255 kabi unicast xost yo'lini afzal ko'ring.
Bir yo'lda ikkalasi ham 192.168.1.1 ishlatadigan ikki router bir xil muammolar oilasiga kiradi: mahalliy manzil doim yutadi, shuning uchun bitta LAN ko'chmaguncha uzoq router sahifasi yetib borilmas bo'lib qoladi. Ikkinchi adapter qo'shish ikkala holatda ham hech narsani o'zgartirmaydi.
Biror narsani tahrirlashdan oldin dalillarni yozib qo'ying: ip route get yoki Find-NetRoute, tegishli manzilga ping -c 3, bitta traceroute, va mijozda tcpdump -ni tun0 icmp, keyin serverda marshrutlash jadvali va NAT hisoblagichlari. Bir yo'nalishda ishlab ikkinchisida o'ladigan ping tunnelni emas, qaytish yo'lini ko'rsatadi va aynan shu farq yuqoridagi qaysi tuzatish sizga chindan kerakligini hal qiladi.