Muokataan sivua Kahden oletusreitin käyttö

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
Oletetaan, että halutaan saada yhdelle Linux-koneelle useampi [[IP]]-osoite siten, että nämä osoitteet ovat erillisistä aliverkoista ja niiden liikenne kulkee eri yhdyskäytävien kautta ja molempien aliverkkojen kautta on myös pääsy ulkomaailmaan.
==Ratkaistava ongelma==
 
Halutaan saada yhdelle koneelle useampi [[IP]]-osoite siten, että nämä osoitteet ovat erillisistä aliverkoista ja niiden liikenne kulkee eri yhdyskäytävien kautta ja molempien aliverkkojen kautta on myös pääsy ulkomaailmaan.


Itse IP-osoitteen antamisessa ei ole ongelmaa, kun koneellehan saa helposti useamman IP-osoitteen käyttämällä useampaa fyysistä verkkoliityntää tai käyttämällä fyysisen verkkoliitynnän lisänä virtuaalisia verkkolaitteita <tt>eth0:1</tt>, <tt>eth0:2</tt> jne.
Itse IP-osoitteen antamisessa ei ole ongelmaa, kun koneellehan saa helposti useamman IP-osoitteen käyttämällä useampaa fyysistä verkkoliityntää tai käyttämällä fyysisen verkkoliitynnän lisänä virtuaalisia verkkolaitteita <tt>eth0:1</tt>, <tt>eth0:2</tt> jne.
Rivi 7: Rivi 9:
   ifconfig eth1 172.16.1.2 netmask 255.255.255.0 up
   ifconfig eth1 172.16.1.2 netmask 255.255.255.0 up


Uudet Linux-asennukset laittavat oletuksena reititystietoihinsa reitin kummallekin aliverkolle, mutta jos se pitäisi tehdä itse, niin perinteisesti se tapahtuisi komennolla <tt>[[route]]</tt>:
Uudet Linux-asennukset laittavat oletuksena reititystietoihinsa reitin kummallekin aliverkolle, mutta jos se pitäisi tehdä itse, niin se tapahtuisi komennolla <tt>[[route]]</tt>:
   route add -net 192.168.1.0 eth0
   route add -net 192.168.1.0 eth0
   route add -net 172.16.1.0 eth1
   route add -net 172.16.1.0 eth1
Rivi 36: Rivi 38:


Mutta entäs, jos paketin lähettäjäosoitteena olikin tuo 172.16.1.2 ja kohteena edelleenkin tuo 10.11.12.13? Sillekin reitityspäätös tehdään samalla tavalla, joten paketti päätyy eth0-laitteen takana olevalle reitittimelle 192.168.1.1, mikä on väärin, ja monissa tapauksissa tuo reititin ei edes suostu välittämään IP-osoitteen 172.16.1.2 lähettämää liikennettä. Tuo lähettäjäosoite voi vaihdella siksi, että verkkoon kommunikoiva ohjelma saattaa nimenomaan haluta käyttää sitä, tai paketti voi olla vaikkapa paluuliikennettä siihen kun joku muu kone on halunnut keskustella nimenomaan osoitteen 172.16.1.2 kanssa.
Mutta entäs, jos paketin lähettäjäosoitteena olikin tuo 172.16.1.2 ja kohteena edelleenkin tuo 10.11.12.13? Sillekin reitityspäätös tehdään samalla tavalla, joten paketti päätyy eth0-laitteen takana olevalle reitittimelle 192.168.1.1, mikä on väärin, ja monissa tapauksissa tuo reititin ei edes suostu välittämään IP-osoitteen 172.16.1.2 lähettämää liikennettä. Tuo lähettäjäosoite voi vaihdella siksi, että verkkoon kommunikoiva ohjelma saattaa nimenomaan haluta käyttää sitä, tai paketti voi olla vaikkapa paluuliikennettä siihen kun joku muu kone on halunnut keskustella nimenomaan osoitteen 172.16.1.2 kanssa.


==Ratkaisu==
==Ratkaisu==
Ratkaisu ongelmaan on se, että Linuxille voi tehdä useamman reititystaulun, ja sitten liikenteen lähettäjäosoitteen perusteella valitaan, mitä taulua käytetään.
Ratkaisu ongelmaan on se, että Linuxille voi tehdä useamman reititystaulun, ja sitten liikenteen lähettäjäosoitteen perusteella valitaan, mitä taulua käytetään.


Tuo aiemmin käytetty <tt>route</tt>-käsky ei enää kelpaa, koska se käyttää aina oletustaulua eikä sille voi kertoa, että reititystieto halutaankin johonkin toiseen. Pitää käyttää uudempaa työkalua <tt>[[ip]]</tt>, johon on rakennettu myös <tt>ifconfig</tt>in ja oikeastaan lähes kaikkien muidenkin verkon konfigurointiin tarvittavien komentojen toiminnallisuus.
Tuo aiemmin käytetty <tt>route</tt>-käsky ei enää kelpaa, koska se käyttää aina oletustaulua eikä sille voi kertoa, että reititystieto halutaankin johonkin toiseen. Pitää käyttää uudempaa työkalua <tt>ip</tt>, johon on rakennettu myös <tt>ifconfig</tt>:n ja oikeastaan lähes kaikkien muidenkin verkon konfigurointiin tarvittavien komentojen toiminnallisuus.


Ensimmäisenä voisi katsoa, että mitä reitityssääntöjä koneessa on komennolla <tt>ip rule show</tt>:
Ensimmäisenä voisi katsoa, että mitä reitityssääntöjä koneessa on komennolla <tt>ip rule show</tt>:
Rivi 47: Rivi 51:
   32767:  from all lookup default
   32767:  from all lookup default


Eli koneessa on siis kolme reitityssääntöä, ja aiemmin kerrottua reitityspäätösprosessia pitääkin laajentaa. Reitityspäätöstä tehdessään käyttöjärjestelmä käy ensimmäisenä läpi nuo säännöt prioriteettijärjestyksessä (rivin ensimmäinen numero).
Eli koneessa on siis kolme reitityssääntöä, ja aiemmin kerrottua reitityspäätösprosessia pitääkin laajentaa. Reitityspäätöstä tehdessään käyttöjärjestelmä käy ensimmäisenä läpi nuo säännöt prioriteettijärjestyksessä (Rivin ensimmäinen numero).


Ensimmäisessä säännössä sanotaan, että sitä käytetään, mikäli lähettäjäosoitteena on mikä tahansa (''from all''), ja käytetään reititystaulua, joka on nimetty nimelle ''local''. Mikäli siellä mikään reititystieto ei täsmännyt kokeillaan seuraavaa sääntöä.
Ensimmäisessä säännössä sanotaan, että sitä käytetään, mikäli lähettäjäosoitteena on mikä tahansa (''from all''), ja käytetään reititystaulua, joka on nimetty nimelle ''local''. Mikäli siellä mikään reititystieto ei täsmännyt kokeillaan seuraavaa sääntöä.
Rivi 75: Rivi 79:
   32767:  from all lookup default
   32767:  from all lookup default


<tt>ip</tt>-komento ei välttämättä laita asetuksia suoraan käyttöön, vaan saatetaan joutua tyhjentämään vanhat asetukset reititysjärjestelmän välimuistista ennen kuin uudet muutokset ihan oikeasti vaikuttavat verkkoliikenteeseen. Tämä tapahtuu komennolla <tt>ip route flush cache</tt>.
<tt>ip</tt>-komento ei laita asetuksia suoraan käyttöön, vaan asetukset pitää vielä erikseen ottaa käyttöön ennen kuin ne ihan oikeasti vaikuttavat verkkoliikenteeseen. Tämä tapahtuu komennolla ip route flush cache.


Nyt homman pitäisi toimia. Vaikka <tt>main</tt>-taulua käyttävään sääntöön ei pitäisi tässä esimerkissä käytetyillä asetuksilla joutua, kannattaa silti sinnekin jotain järkevää laittaa.
Nyt homman pitäisi toimia. Vaikka tuonne <tt>main</tt>-taulua käyttävään sääntöön ei pitäisi normaalitilanteessa joutua, mutta silti sinnekin kannattaa jotain järkevää laittaa.


Kannattaa huomioida, että vaikka reititystiedot (route) häviävätkin automaattisesti kun verkkoliityntä sammutetaan, jäävät reitityssäännöt (rule) kuitenkin edelleen olemaan, joten ne pitää poistaa erikseen.
Kannattaa huomioida, että vaikka reititystiedot häviävätkin automaattisesti, kun verkkoliityntä sammutetaan, niin reitityssäännöt kuitenkin jäävät edelleen olemaan, joten ne pitää poistaa erikseen.


[[Luokka:Verkko]]
[[Luokka:Verkko]]
[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)