Rotot tat-traffiku tal-host permezz ta' VPN f'VM: sitt verifiki
Sitt verifiki f'ordni biex VM issir id-daħla VPN li minnha l-host tagħha stess jgħaddi t-traffiku: mod tal-adapter, trażmissjoni, NAT, rotot tal-host, DNS, MTU.
Sitt verifiki, magħmula f'ordni, jiddeċiedu jekk VM tistax taġixxi bħala d-daħla VPN għall-host tagħha stess. Il-hypervisor ma jagħmel xejn minn dan għalik: il-mistieden jippossjedi t-tunnel, il-host jippossjedi rotta, u n-netwerk bejniethom huwa routing ordinarju. Inżomm il-lista għax taqbeż pass wieħed dejjem tagħti l-istess sintomu, is-skiet, fejn il-host jippinja lill-mistieden bil-ferħ u ma jasal għal xejn intern.
Ibda mir-raġuni. Jew il-klijent korporattiv jiġi installat biss fil-mistieden, jew il-politika żżommu hemmhekk, u għadek għandek bżonn il-build server intern mill-host. Jekk il-host jitħalla jkollu l-klijent tiegħu stess, agħmel hekk minflok: tunnel wieħed fuq il-host dejjem jegħleb żewġ netwerks flimkien ma' NAT.
Verifika 1: il-host għandu bżonn konnessjoni li jista' jagħtiha indirizz
Il-host irid ikollu interface fl-istess prefiss bħat-tieni adapter tal-mistieden. Host-only f'VirtualBox, host-only jew VMnet personalizzat f'VMware Workstation, pont intern jew apparat tap f'QEMU/KVM, u switch Internal f'Hyper-V kollha jikkwalifikaw. Mistieden 192.168.56.2, host 192.168.56.1, prefiss 192.168.56.0/24 hija l-arranġament li nuża fil-laboratorji.
In-netwerk QEMU f'mod utent (-netdev user, il-backend SLIRP default) u NAT ta' VirtualBox ifallu dan il-verifika għal kollox. Il-pakketti tal-mistieden jilħqu proċess proxy fuq il-host, allura l-host qatt ma jara apparat li jġorr l-indirizzi tal-mistieden u m'għandu xejn fejn jindika rotta. Id-Default Switch ta' Hyper-V hija l-istess storja. Jekk ping 192.168.56.2 mill-host ifalli, ieqaf: l-ebda rotta miżjuda wara ma tiswiha.
Verifika 2: il-mistieden jgħaddi u jittraduċi
Il-pakketti mill-host jaslu b'indirizz sors host-only u destinazzjoni interna, allura l-mistieden irid jgħaddihom u mbagħad jaħbihom wara l-indirizz tat-tunnel tiegħu. Fuq mistieden Linux dan ifisser trażmissjoni, par FORWARD accept, u source NAT lejn it-tunnel:
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 192.168.56.0/24 -o tun0 -j MASQUERADE
Ir-regola MASQUERADE hija l-parti li n-nies iħallu barra. Ir-router korporattivi rari jafu li 192.168.56.0/24 jeżisti; bir-regola, is-servers interni jaraw l-indirizz tat-tunnel tal-mistieden u jwieġbu għalih, u t-tweġiba ssib triqha lura lejn il-mistieden.
Mistieden Windows huwa iktar goff. IPEnableRouter=1 taħt SYSTEM\CurrentControlSet\Services\Tcpip\Parameters jixgħel it-trażmissjoni mingħajr traduzzjoni, allura jaħdem biss fejn ir-routing korporattiv diġà jindika lura lejn il-prefiss host-only tiegħek. Internet Connection Sharing jittraduċi, imma jerġa' jinnumera l-adapter maqsum għal 192.168.137.1, allura aqra l-indirizz li effettivament ħa qabel ma tikteb rotot tal-host.
Verifika 3: ir-rotot tal-host isemmu lill-mistieden, mhux it-tunnel
Ibgħat biss il-prefissi li l-host għandu bżonn permezz tal-mistieden. Fuq Linux rotta waħda għal kull prefiss biżżejjed u terġa' lura nadifa:
sudo ip route add 10.20.0.0/16 via 192.168.56.2
ip route get 10.20.30.40
Fuq Windows l-ekwivalenti huwa route add 10.20.0.0 mask 255.255.0.0 192.168.56.2. Ħalli barra -p waqt li għadek tittestja, biex rotta ħażina tmut meta jerġa' jibda, u żidha meta t-triq taħdem. Tneħħix ir-rotta default tal-host sakemm kull applikazzjoni fuq il-host ma għandhiex tuża t-tunnel; jekk tunnel sħiħ huwa verament ir-rekwiżit, żid iż-żewġ rotot /1 u żomm ir-rotta diretta lejn in-netwerk tal-hypervisor:
sudo ip route add 0.0.0.0/1 via 192.168.56.2
sudo ip route add 128.0.0.0/1 via 192.168.56.2
Fuq host Windows, iċċekkja wkoll il-metrika tal-interface. Rotta miżjuda waqt li l-adapter host-only kien diżattivat tibqa' fit-tabella imma qatt ma ġġorr traffiku, u t-tieni adapter b'metrika aktar baxxa jista' jirbaħ it-tfittxija għall-istess prefiss.
Verifika 4: id-DNS isegwi r-rotta, mhux id-default tat-tunnel
Ir-rotot iċaqalqu l-pakketti; ir-resolver jiddeċiedi liema ismijiet jipproduċu pakketti. Illimita r-resolver korporattiv għaż-żona korporattiva minflok tissostitwixxi r-resolver tal-host, u indikah lejn DNS server li r-rotta l-ġdida diġà tilħaq. B'systemd-resolved fuq il-host:
resolvectl dns eth1 10.20.0.53
resolvectl domain eth1 '~corp.example.com'
Fuq Windows entrata fit-tabella tal-politika tar-riżoluzzjoni tal-ismijiet tagħmel l-istess xogħol: Add-DnsClientNrptRule -Namespace ".corp.example.com" -NameServers 10.20.0.53. Jekk il-mistieden iħaddem ir-resolver tiegħu fuq l-indirizz host-only, uża dak l-indirizz minflok, imma biss wara li tikkonferma li jwieġeb fuq 192.168.56.2 u mhux fuq loopback.
Imbagħad iċċekkja l-MTU qabel ma tagħti t-tort lid-DNS għal paġni bil-mod. L-interface tat-tunnel hija iżgħar mill-interface ta' 1500 byte tal-host, allura host li jibgħat segmenti ta' daqs sħiħ bil-bit DF mixgħul jarahom jinżlu xi mkien ġewwa l-mistieden. Is-sintomu klassiku huwa ping li jaħdem u applikazzjoni web interna li twaqqaf wara l-idejn tat-TLS. Issikka l-MSS fit-triq tat-trażmissjoni tal-mistieden:
sudo iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Verifika 5: ivverifika miż-żewġt itruf
Mill-host, traceroute jew tracert lejn indirizz intern għandu juri 192.168.56.2 bħala l-ewwel qabża, mhux id-daħla fiżika. Fil-mistieden, osserva l-istess tentattiv ħiereġ: tcpdump -ni any host 10.20.30.40 juri t-talba mgħoddija fuq in-naħa host-only u dik tradotta fuq it-tunnel. Talba li toħroġ, terġa' lura u xorta tħalli lill-host sieket tindika t-triq tar-ritorn.
Żewġ fallimenti jispjegaw il-biċċa l-kbira ta' dan. Jew it-tunnel tal-mistieden ma jġorr l-ebda rotta lura għall-prefiss host-only għax ir-regola NAT hija nieqsa, jew ir-rotta tal-host tindika indirizz li l-mistieden m'għandux iktar wara restart. Aqra mill-ġdid l-indirizzi b'ip -br addr u ip route get minflok ma tafda noti mis-sessjoni ta' qabel.
Verifika 6: għamlha tissopravvivi restart u aġġornament tal-hypervisor
Żomm iż-żewġ nofsijiet permanenti: konfigurazzjoni tar-rotot netplan jew NetworkManager fuq il-host, route add ... -p fuq Windows, u net.ipv4.ip_forward=1 f'/etc/sysctl.d/ flimkien ma' sett ta' regoli tal-firewall li jerġgħu jitgħabbu fil-mistieden. Ħu snapshot tal-mistieden hekk kif il-konfigurazzjoni tiġi vverifikata, qabel ma tasal l-aġġornament li jmiss tal-klijent korporattiv.
In-netwerks host-only jerġgħu jiġu nnumerati meta l-hypervisor jerġa' joħloq l-adapters tiegħu, u dan iħassar bil-kwiet kull rotta u regola NAT mibnija fuq 192.168.56.0/24. Wara aġġornament, erġa' agħmel l-ewwel tliet verifiki f'ordni; dan jieħu minuta u jaqbad il-każ fejn il-host għad għandu r-rotta tiegħu filwaqt li l-mistieden marret għal subnet ġdid.
IPv6 jeħtieġ tiegħu stess. Ir-regoli ip6tables, ir-rekords AAAA u t-tieni familja ta' rotot tal-host ma jsegwux is-setup IPv4, u servizz korporattiv aċċessibbli permezz ta' IPv6 jidher permanentement miksur waqt li IPv4 jaħdem.
Għadda jew le, f'ordni: il-host jista' jippinja l-indirizz host-only tal-mistieden; il-mistieden jgħaddi u jagħmel MASQUERADE lejn it-tunnel; ip route get jirritorna lill-mistieden bħala daħla għall-prefiss intern; ismijiet korporattivi jiġu riżolti permezz tar-resolver illimitat; traceroute juri lill-mistieden l-ewwel; u l-istess sitt tweġibiet jissopravvivu restart.