Vagrant-VM ferdwynt as de VPN ferbynt: waans rûte bruts
In masine dy't in minuut lyn antwurde ferdwynt op it momint fan ferbinen. Bepaal wa't de brutsen rûte besit foardat jo eat feroarje.
De masine antwurde in minuut lyn, de VPN ferbûn, en no rint itselde adres tsjin in tiidlimit oan. Trije flaters meitsje dat symptoom, en se wenje op ferskillende masines. De host kin de rûte nei it partikuliere netwurk ferlieze, it NAT-berik fan de gast kin botsen mei in berik dat de tunnel no oankundiget, of in folsleine tunnel kin it eigendom fan elke rûte op de host oernimme. Fêststel hokker der bard is foardat jo hokker konfiguraasje dan ek feroarje, want elke reparaasje wennet earne oars.
Sjoch nei de rûte, net nei de masine
Besjoch de rûtebeslissing fan de host foar it adres fan de gast wylst de tunnel oan stiet. In rûte dy't noch nei de host-only-adapter wiist is it probleem net. In rûte dy't no nei de VPN-adapter wiist is it probleem, en de klant hat dy feroare, net jo. Dat de adapter syn adres hâldt, seit dat de ynterface oerlibbe, wat in oar feit is as dat it paad oerlibbe.
In SSH-sesje dy't krekt op it momint fan ferbinen fuortfalt, is ferwacht gedrach. De klant brûkt adapters opnij en ynstallearret rûtes, sadat de ferbining in pear sekonden stjert. De flater is de ferbining dy't nea weromkomt, net dy't even knippere.
Fêstlizze de tabel foar de tunnel en nochris dêrnei, en fergelykje dan dy twa útfier. It ferskil is de diagnoaze, en it is ek it bewiis dat in netwurkeigener freegje sil.
ip -4 route get 192.168.56.10
ip -brief addr show
ip route show table main | head -20Lês de tabel fan de host foar en nei
Op Linux komt de foarkar tusken oerlaapjende rûtes fan 'e lingte fan it foarheaksel en de metryk, sadat in spytskere VPN-rûte wint sels as it ferkeard is. Op Windows beslút de metryk fan 'e ynterface it lykspul, en de tunneladapter komt meastentiids mei in legere metryk as de firtuele. Yn beide gefallen is it sichtbere symptoom identyk: pakketten ferlitte fia de tunneladapter en ferdwine.
Print de adapters en har metryk neist de rûte foar it foarheaksel fan 'e gast. Dat pear útfier beantwurdet de eigendomsfraach mei ien eachopslach.
Get-NetAdapter | Select-Object Name, InterfaceIndex, InterfaceMetric
Get-NetRoute -DestinationPrefix 192.168.56.0/24
route print -4 | Select-String '192.168.56'As de rûte feroare is mar de metryk fan 'e adapter net, hat de klant in konkurrearjende rûte ynstallearre. As de metryk feroare is, hat de klant de adapters oardere. Beide binne te reparearjen, en se wurde op ferskillende plakken reparearre.
As it NAT-berik fan 'e gast de botsing is
VirtualBox NAT brûkt standert 10.0.2.0/24, en in tunnel dy't itselde berik triuwt, makket dat de gast dat ferkear nei syn NAT-poarte stjoert ynstee fan nei de echte bestimming. It pakket ferlit de host nea, sadat gjin firewalllog oan 'e oare kant it sjen sil. Docker Machine hat deselde klasse konflikt yn syn host-only-plan, en it feroarjen fan dat plan kin fereaskje dat de masine opnij makke wurdt mei syn sertifikaten.
Kies de ferfanging troch te listen wat de tunnel al oankundiget, dan wat it kantoarnetwurk brûkt, en dan wat elke firtuele adapter op dizze host opeaske hat. Oerlaap is wat it rûtsjen brekt, en likens is net fan belang. Ien berik kin hielendal binnen in oar sitte wylst it op it earste each hielendal net liket.
Set it nije berik doe't de masine makke wurdt, of feroarje it en laad opnij, en test dan de mislearjende ferbining opnij fan 'e gast ôf. De eigen tabel fan 'e gast is it sicht dat fan belang is.
VBoxManage modifyvm devbox --natnet1 10.77.0.0/24
vagrant reload devbox --provision
vagrant ssh devbox -c 'ip route get 10.20.0.15'Herstel it paad sûnder te fjochtsjen mei de klant
Elk platfoarm biedt in manier om it host-only-foarheaksel wer foarop te setten. Op macOS wurket in statyske rûte nei de host-only-ynterface oant de folgjende ferbining. Op Windows hâldt in legere ynterfacemetryk op 'e firtuele adapter it foarkar. Op Linux dekt in ferfangingsbewurking ien foarheaksel. Alle trije binne needoplossingen, want in klant dy't syn rûtes wer befêstiget, sil se ûngedien meitsje.
Skriuw de kontrôle as skript ynstee fan in blynje werferbining by it opstarten. In lyts skript dat nei elke ferbining de rûte foar it foarheaksel fan 'e gast printet, makket fan in riedsel in rigel yn in log.
As it profyl in folsleine tunnel is, freegje de netwurkeigener om split-tunneling of in dokumintearre útsûndering. Stilwei rûtes tafoegje dy't in befeiligingsbelied omgeane is gjin reparaasje, it is in twadde probleem dat letter mei in auditor komt.
Kontrolearje de reparaasje oan beide kanten
Ferifiearje trije paden nei de feroaring: host nei gast, gast nei de bedriuws-host, en gast nei it ynternet. In reparaasje dy't ien fan dy werombringt en in oar brekt, is in konfiguraasjefoarring ferklaaid as reparaasje. Fêstlizze deselde útfier dy't jo foar de feroaring sammele, sadat de fergeliking lyk mei lyk is.
Notearje de ynterface, de metryk en de rûte dy't feroare is, mei de tiid, sadat it folgjende gefal in opfregaasje is ynstee fan in weropbou. Dy notysje is mear wurdich as in lange ticketried.
ip -4 route get 192.168.56.10
traceroute -n -m 4 10.20.0.15
curl -sS -o /dev/null -w '%{http_code}\n' https://example.comAs de host de gast wer berikt en de gast it LAN berikt, hawwe jo it paad werombrocht dêr't jo mei begûn. As mar ien fan beide wurket, sit de oerbliuwende flater op it grûngebiet fan 'e oare eigener, en it ferskil fertelt jo hokker grûngebiet dat is.