Ayusin: Nabigo Walang Ruta na Mag-host Sa Ubuntu Na May Maramihang Mga Network



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Kapag mayroon kang isang kumplikadong pag-set up ng network, nakakabigo na magkaroon ng ' Walang Ruta sa Host ”Simulang lumitaw pagkatapos itaas ang isang bagong interface. Ito ay madalas na sanhi ng default na ruta na nabago o nahulog.



Upang suriin ang iyong default na ruta ipasok



ip ruta ipakita



walang ruta sa host-1

Tulad ng palabas sa itaas mayroon akong tatlong mga pisikal na interface, isang panlabas na nakaharap at dalawa sa panloob na mga network. Ang default na ruta ay bumagsak sa network kapag ang isang koneksyon ay na-reset, na naging sanhi ng natitirang bahagi ng aking network na gumana nang normal, kasama lamang ang makina na ito na hindi alam kung saan maaabot ang Internet.

Para maabot ng makina ang Internet kinakailangan nito na magkaroon ng isang default na ruta na maaaring maidagdag sa sumusunod na utos



sudo ip ruta magdagdag ng default sa pamamagitan ng 136.63.176.1

Kung mayroon kang problemang ito na lumitaw nang higit sa isang beses o dalawang beses, maaari itong maging isang istorbo, kaya mayroon akong isang nakasulat na isang pares ng mga script ng shell upang mabilis na maitama ang sitwasyon.

Kukuha ng unang script ang iyong kasalukuyang ip para sa iyo. Mayroon akong $ INTF na itinakda bilang STDIN, binago mo ito sa iyong tukoy na interface kung hindi mo nais na ipasok ang pangalan ng interface.

Gamit ang iyong paboritong text editor, gusto ko ang vim at magkaroon ng isang folder ng mapagkukunan sa aking direktoryo sa bahay

mkdir ~ / src && cd ~ / src

Dumating ako getip.sh

#! / bin / bash

#fetch ip address na nakatakda para sa naibigay na aparato

INTF = $ {1}

PTH = (~ / src /)

ideklara ang TMP_IP2

TMP_IP2 = $ (ip a | grep $ {INTF} | grep inet | cut -d '” -f6 | cut -d “/” -f1> $ {PTH} kasalukuyang _ $ {INTF} .ip)

ip a | grep $ {INTF} | grep inet | putol -d '” -f6 | gupitin -d “/” -f1 | cut -d '.' -f1-3 | awk ‘{print $ 0 ″ .0 / 24 ″}’> $ {PTH} net _ $ {INTF} .ip

ip a | grep $ {INTF} | grep inet | putol -d '” -f6 | gupitin -d “/” -f1 | cut -d '.' -f1-3 | awk ‘{print $ 0 ″ .1 ″}’> $ {PTH} gw _ $ {INTF} .ip

ideklara ang TMP_IP

TMP_IP = $ (cat $ {PTH} kasalukuyang _ $ {INTF} .ip)

echo “kasalukuyang wan ip $ TMP_IP”

I-save at lumabas, gawin itong maisakatuparan, at pagkatapos ay subukan ito.

sudo chmod a + x getip.sh

bash getip.sh eth0.2

walang ruta sa host-2

Ipagpalagay na gumana nang maayos para sa iyo na magpatuloy at kopyahin ito sa / usr / local / bin / upang ito ay maipatupad sa buong mundo.

sudo cp getip.sh / usr / local / bin / getip

Ngayon ay maaari ko nang mai-type ang getip eth0.2 at ibabalik ang ip.

Ang pangalawang script ay magtatalaga ng default na ruta, pati na rin ang pagpapatakbo ng unang script.

Galing ako sa setip.sh

#! / bin / bash

makakuha ng $ {1}

#fetch ip address na nakatakda para sa naibigay na aparato

PTH = (~ / src /)

ideklara ang RT_IP

RT_IP = $ (cat $ {PTH} gw _ $ {1} .ip)

ip ruta baguhin ang default sa pamamagitan ng $ RT_IP

ip ruta magdagdag ng default sa pamamagitan ng $ RT_IP

echo “ip ruta - default sa pamamagitan ng $ RT_IP”

I-save at mag-quit. Maaaring napansin mo na pareho akong nagbago at nagdagdag ng default na ruta, ito ay para sa mga okasyon na mayroon kang maling itinakdang gateway.

sudo chmod a + x setip.sh

sudo setip.sh eth0.2

walang ruta sa host-3

Maaari mong suriin muli ang talahanayan ng pagruruta upang i-double check na ang lahat ay mabuti.

ipakita ang ruta ng sudo ip

Maaari mong kopyahin ang mga script sa / usr / local / bin / kung nais mo silang maipatupad sa buong mundo. Mangangailangan pa rin ito ng sudo, habang nagbabago ka at interface.

sudo cp setip.sh / usr / local / bin / setip

2 minuto basahin