Kada imate složene mrežne postavke, frustrirajuće je imati ' Nema rute do domaćina ”Počinju se pojavljivati nakon podizanja novog sučelja. To je često zbog promjene zadane rute ili ispuštanja.
Za provjeru zadane rute unesite
ip ruta show
Kao što je prikazano gore, imam tri fizička sučelja, jedno prema van i dva prema unutarnjim mrežama. Zadana ruta pala je na mreži kad je veza resetirana, zbog čega je ostatak moje mreže normalno radio, samo što ovaj stroj nije znao gdje doći do Interneta.
Da bi stroj mogao pristupiti Internetu mora imati zadanu rutu koja se može dodati sljedećom naredbom
sudo ip ruta dodaj zadani putem 136.63.176.1
Ako se ovaj problem pojavi više puta ili dva puta, to može postati smetnja, pa sam napisao nekoliko skripti školjke kako bih brzo ispravio situaciju.
Prva će skripta dohvatiti vaš trenutni ip za vas. Imam $ INTF postavljen kao STDIN, promijenite ga u svoje određeno sučelje ako ne želite unijeti naziv sučelja.
Pomoću vašeg omiljenog uređivača teksta volim vim i imam izvornu mapu u svom početnom direktoriju
mkdir ~ / src && cd ~ / src
Došao sam getip.sh
#! / bin / bash
#fetch ip adresa postavljena za zadani uređaj
INTF = {1} USD
PTH = (~ / src /)
izjavi TMP_IP2
TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d ”” -f6 | cut -d “/” -f1> $ {PTH} trenutno _ $ {INTF} .ip)
ip a | grep $ {INTF} | grep inet | izrezati -d ”” -f6 | izrezati -d “/” -f1 | izrezati -d '.' -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip
ip a | grep $ {INTF} | grep inet | izrezati -d ”” -f6 | izrezati -d “/” -f1 | izrezati -d '.' -f1-3 | awk ‘{print $ 0 ″ .1 ″}’> $ {PTH} gw _ $ {INTF} .ip
izjavi TMP_IP
TMP_IP = $ (mačka $ {PTH} trenutna _ $ {INTF} .ip)
odjek 'trenutni wan ip $ TMP_IP'
Spremite i zatvorite, učinite ga izvršnim, a zatim testirajte.
sudo chmod a + x getip.sh
bash getip.sh eth0.2
Pod pretpostavkom da je to ispravno funkcioniralo, kopirajte ga u / usr / local / bin / kako biste ga učinili globalno izvršnim.
sudo cp getip.sh / usr / local / bin / getip
Sada mogu jednostavno upisati getip eth0.2 i ip će biti vraćen.
Druga skripta dodijelit će zadanu rutu, kao i izvođenje prve skripte.
Došao sam iz setip.sh
#! / bin / bash
getip $ {1}
#fetch ip adresa postavljena za zadani uređaj
PTH = (~ / src /)
proglasiti RT_IP
RT_IP = $ (mačka $ {PTH} gw _ $ {1} .ip)
ip zadana promjena rute putem $ RT_IP
ip route add default putem $ RT_IP
odjek 'ip ruta - zadana putem $ RT_IP'
Spremi i zatvori. Možda ste primijetili da i mijenjam i dodajem zadanu rutu, ovo je za prilike da ste postavili pogrešan pristupnik.
sudo chmod a + x setip.sh
sudo setip.sh eth0.2
Možete ponovno provjeriti tablicu usmjeravanja da biste još jednom provjerili je li sve u redu.
sudo ip show route
Možete kopirati skripte u / usr / local / bin / ako želite da budu globalno izvršne. I dalje će biti potreban sudo, jer mijenjate i sučelje.
2 minute čitanjasudo cp setip.sh / usr / local / bin / setip