Kirjoittaja Aihe: Osoitteen haku uudestaan automaattisesti  (Luettu 2390 kertaa)

Tha-Fox

  • Käyttäjä
  • Viestejä: 3315
  • Arch Linux && CentOS
    • Profiili
    • http://kettu.dy.fi
Osoitteen haku uudestaan automaattisesti
« : 01.06.11 - klo:00.59 »
Ongelma on seuraava? Sukulaiseni tarjoaa palvelimelleni konesalipaikan. (Suomeksi vanha läppärin raato pöydän kulmalla.) Työnnän sinne varmistukset verkon yli ssh:lla. Sikäläinen ADSL-modeemi (A-Link RR24AP) päättää aina silloin tällöin heittäytyä hankalaksi, mahtaako ARP-taulu täyttyä vai mitä lie. Joka tapauksessa liikenne ei tämän jälkeen kulje ilman virtaresettiä modeemille. Ja tästä alkavat ongelmat...

Kone saa normaalisti privaattiosoitteen 10-verkosta (NAT käytössä) ja ifconfig näyttää osoitetta tältä alueelta. Edellisen virtaresetin jälkeen kone oli pari päivää ilman verkkoyhteyttä. Kun huomasin asian, pyysin ensimmäisenä tarkistamaan paikallisesti koneen ip:n. Jostain syystä se oli 80-alkuinen ja sama kuin mitä ADSL-modeemin ulkoinen ip oli ollut pari päivää sitten ennen virtaresettiä. Verkkoliitännät käytettiin alhaalla käskyttämällä
Koodia: [Valitse]
sudo /etc/init.d/networking restart ja tämän jälkeen kone sai jälleen osoitteen 10-verkosta. Mainittakoon, että NATin toimimiseksi sisäverkon IP on sidottu koneen MAC-osoitteeseen.

Kysymys kuuluu, onko mitään keinoa saada kone tajuamaan, että ADSL-modeemi (alias DHCP-serveri) on käynyt alhaalla ja osoite pitäisi kysellä uudestaan? Purkkavirityksenä voisin ajaa verkkoliitännät cronilla alas vaikka joku yö, mutta onko tähän elegantimpaa ratkaisua? A-Linkin päivitys olisi tietysti yksi vaihtoehto, mutta se asia ei ole minun päätettävissäni.

Echramath

  • Käyttäjä
  • Viestejä: 242
    • Profiili
    • http://iki.fi/ech/
Vs: Osoitteen haku uudestaan automaattisesti
« Vastaus #1 : 01.06.11 - klo:01.37 »
Entä jos laitat rootin croniin (vaikka miten usein, tunnin, vartin, minuutin välein?)

Koodia: [Valitse]
ping -c 1 osoite &> /dev/null || /etc/init.d/networking restart
OR-operaattori (eli ||) testaa, onko edes jompi kumpi sen puolista tosi. Se on myös sen verran optimoiva, ettei se turhaan suorita ensimmäistä, jos ensimmäinen ehto on jo tosi. Ohjelmien tapauksessa paluuarvo 0 on katsotaan (vähän epäloogisesti) todeksi, muut epätodeksi. Tässä ping palauttaa nollan, jos pingaus onnistuu. Jos ei onnistu, tulee jotakin muuta, ja jälkimmäinen puolisko suoritetaan. (itse OR-operaattorin lopullisella arvollahan tässä ei tehdä mitään).

Osoite voinee tässä olla vaikka modeemin osoite tai sitten jonkin internetissä oleva, kuten ping.funet.fi.