Skip to content

M04 DHCP ja staattinen reititys

Takaisin opintojakson aikatauluun

Opetusvideot

Video: Tietoverkot, DHCP ja staattinen reititys, osa 1

Video: Tietoverkot, DHCP ja staattinen reititys, osa 2

Video: Tietoverkot, DHCP ja staattinen reititys, osa 3

DHCP - Dynamic Host Configuration Protocol

Aiemmassa kappaleessa puhuttiin laitteiden manuaalisesta osoitteistamisesta. Tämä on työläs ja vaivalloinen tapa, mutta tarpeellinen 1990 -luvun lopussa, kun standardeja tapoja osoitteistaa päätelaitteita ei ollut laajasti saatavilla (tai tuettuna).

Hypätäkseni tähän päivään, DHCP on tullut niin olennaisena osana tietoverkkoihin, että törmäät siihen todennäköisesti useita kertoja opinnoissasi. Kertaus on opintojen äiti.

RFC 2131 - Dynamic Host Configuration Protocol

The Dynamic Host Configuration Protocol (DHCP) provides configuration parameters to Internet hosts. DHCP consists of two components:

  1. a protocol for delivering host-specific configuration parameters from a DHCP server to a host
  2. and a mechanism for allocation of network addresses to hosts.

DHCP:ssä pitää olla palvelinsovellus (eng. DHCP server) joka jakaa osoitteita asiakassovelluksille (eng. DHCP client).

  • DHCP palvelimia voivat olla
    • Linux käyttöjärjestelmä (esim. Centos 8)
    • Windows käyttöjärjestelmä (e.g. Windows Server)
    • Reititin
      • e.g. Vyos jota käytämme tällä opintojaksolla
      • Kotireitittimesi
  • DHCP asiakkaita voivat olla
    • Matkapuhelimet
    • Kannettavat tietokoneet
    • Pöytäkoneet
    • IoT -laitteet
    • Jääkaapit
    • Pakastimet
    • Autot
    • Robotti-imurit
    • ... mikä tahansa joka yhdistää Internettiin

DHCP on siis kaikkialla.

Vinkki: DHCP:tä kutsutaan joskus DHCPv4:ksi IPv4 käytössä

Vinkki: IPv6 & DHCP

IPv6:ssa yritettiin hankkiutua eroon DHCP:stä EUI64 & SLAAC osoitteistuksen kautta.

DHCP on vain niin suosittu että sille on myös IPv6 tuki DHCPv6 (RFC 8415):n kautta.

Viestit laitteiden välillä

DHCP käyttää UDP porttia 68 and UDP porttia 67 tiedonsiirtoon OSI Mallin 4 kerroksella (aiemmin kyseiset portit oli varattuna "Bootstrap protocol":lle). Kuvio alapuolella osoittaa perusyhteydellisyyden laitteiden välillä automaattista osoitteistusta varten.

!a

DHCPDISCOVER

Asiakas lähettää tämän viestin "löytääkseen" mitä DHCP palvelimia olisi saatavilla verkossa ja mitä verkkoparametrejä ne tarjoaisivat.

Pakettikaappaus DHCPDISCOVER -viestistä

!a

DHCPOFFER

Palvelin vastaa DHCPDISCOVER viestiin DHCPOFFER -viestillä. Tarjouksessa palvelin ehdottaa eri IPv4 asetuksia asiakkaalle.

Pakettikaappaus DHCPOFFER -viestistä

!a

DHCPREQUEST

Kun asiakas saa tarjouksen, sen pitää pyytää dhcp sidontaa (eng. dhcp binding) niille asetuksille/parametreille. Tämä viesti tunnistaa että molemmat laitteet ovat havainneet toisensa verkossa.

Pakettikaappaus DHCPREQUEST -viestistä

!a

DHCPACK

Palvelin vahvistaa DHCPACK -viestillä asetukset ja dhcp sidonnan. Tämä sinetöi molemmilla laitteilla asetusten käyttöönoton ja asiakkaan automaattisen osoitteistuksen valmistumisen.

Pakettikaappaus DHCPACK -viestistä

!a

Tehdään Vyos:sta DHCP palvelin

Topologiamme mahdollistaa Vyos:n toiminnan DHCP -palvelimena. configure -tilassa voimme asettaa seuraavat komennot:

set service dhcp-server shared-network-name VLAN5 subnet 192.168.0.0/24 default-router 192.168.0.254

Asettaa DHCP viestiin aliverkolle 192.168.0.0/24 parametrin oletusyhdyskäytävä:lle osoitteeseen 192.168.0.254

set service dhcp-server shared-network-name VLAN5 subnet 192.168.0.0/24 range PCs start 192.168.0.2

Aloittaa osoitteiden jakamisen osoiteavaruudesta 192.168.0.2 alkaen.

set service dhcp-server shared-network-name VLAN5 subnet 192.168.0.0/24 range PCs stop 192.168.0.250

Lopettaa osoitteiden jakamisen osoiteavaruudesta päättyen 192.168.0.250.

Jotka näyttäisi show configuration -komennossa

service {
    dhcp-server {
        shared-network-name VLAN5 {
            subnet 192.168.0.0/24 {
                default-router 192.168.0.254
                range PCs {
                    start 192.168.0.2
                    stop 192.168.0.250
                }
            }
        }
    }
}
Varoitus: Jos sinulla on useampia aliverkkoja samassa DHCP palvelimessa, käytä eri shared-network-name nimeä niille!

esim.

service {
    dhcp-server {
        shared-network-name VLAN5 {
            subnet 192.168.0.0/24 {
                default-router 192.168.0.254
                range PCs {
                    start 192.168.0.2
                    stop 192.168.0.250
                }

        shared-network-name VLAN10 {
            subnet 192.168.2.0/24 {
                default-router 192.168.2.254
                range PCs {
                    start 192.168.2.2
                    stop 192.168.2.250
                }
            }
        }
    }
}

Kun asetukset on otettu käyttöön Vyos -reitittimellä ja päätelaitteet asetettu automaattiselle osoitteistukselle. Palvelin näyttää aktiiviset lainansa päätelaitteille.

show dhcp server leases

vyos@vyos:~$ show dhcp server leases
IP address    Hardware address    Lease expiration     Pool    Client Name
------------  ------------------  -------------------  ------  ------------------
192.168.0.2   08:00:27:03:c2:9a   2020/08/06 08:01:49  VLAN5   lubuntu-VirtualBox
Varoitus: Joskus on tarpeellista pakottaa DHCP asiakas välittömästi pyytämään IP osoitetta

ipconfig /release

ipconfig /renew

dhclient -r

or

ifdown eth0

ifup eth0

DHCP voi joskus muistaa yllättävän paljon (lue: olla tuskainen käyttää) eli palvelinmuutoksien pakottaminen päätelaitteelle voi vaatia päätelaitteen täydellisen uudelleenkäynnistämisen.

Staattinen reititys (eng. Static routing)

Nyt olemme siirtymässä pois lähiverkoista reitittimien välisiin verkkoihin. Reitittimet toimivat aliverkkojen "risteyksissä" ja niitä voi mieltää risteyksien liikennevaloiksi ja -kylteiksi. Ne sallivat liikenteen lävitse ja ohjaavat paketteja kääntymään eri suuntiin perustuen metriikoihin (yleensä etäisyys esim. kilometrit normaalissa liikenteessä).

Staattiset reitit ovat päätöksiä tietoverkon ylläpitäjiltä; miten liikennekyltit asetetaan risteyksiin.

Esimerkki: Staattinen reitti

set protocols static route <subnet> next-hop <how to get there / next-hop>

esim.

set protocols static route 172.16.0.0/24 next-hop 25.0.0.2

Tätä voi mieltää liikennekylttinä risteyksessä

set a static sign <Helsinki> next-hop <turn left>

Esimerkki yläpuolelta toimii alapuolisessa topologiassa. Ampere -reititin saa set protocols static route 172.16.0.0/24 next-hop 25.0.0.2 -komennon, koska sillä ei ole liitäntöjä (teitä) IP aliverkkoon 172.16.0.0/24. Ampere ei tiedä missä sellainen aliverkko on ilman staattista reittiä.

!a

Symmetrinen ja Asymmetrinen reititys

Lähestulkoon aina tietoliikenne on kaksisuuntaista (eng. bidirectional) kommunikointia. Molemmat osapuolet haluavat lähettää liikennettä toisilleen: asiakas <-> palvelin. Tämä vaatii että reitityksen pitää olla "täydellistä" kaikissa risteyksissä/reitittimissä.

Aiemmassa esimerkissä me pelkästään asetimme reitin oikealta vasemmalle, mutta emme reittiä takaisin. Tätä voi ajatella menemisenä Jyväskylästä Helsinkiin, mutta... miten pääsemme takaisin Helsingistä Jyväskylään? Noh... on useampia reittejä esim. Lahden tai Tampereen lävitse.

!a

Tietenkin saatat ottaa eri reitin takaisinpäin, mutta... miksi?

!a

No koska Jyväskylä - Lahti - Helsinki on lyhyempi reitti, ja siten vie vähemmän polttoainetta eli on halvempi.

Tämä sama periaate on kaiken reitityksen ytimessä. On syitä miksi tietoliikennepaketti poikkeasi lyhimmältä reitiltä, mutta usein lyhintäreittiä suositaan.

Esimerkki - Symmetrinen

Annetussa esimerkissä

!a

Saavuttaakseen symmetrisen reitityksen, seuraavat komennot tarvitaan:

Ampere -reitittimellä: set protocols static route 172.16.0.0/24 next-hop 25.0.0.2

Ja Candela -reitittimellä: set protocols static route 192.168.0.0/24 next-hop 25.0.0.1

Jos molemmat aliverkot on symmetrisesti reititetty, Candela -reititin tarvitsee myös: set protocols static route 192.168.10.0/24 next-hop 25.0.0.1

Esimerkki - Asymmetrinen

Sama esimerkki asymmetrisenä tarkoittaisi muutoksia reitteihin (jotka annettiin symmetrisessä esimerkissä).

!a

Ampere -reitittimellä: set protocols static route 172.16.0.0/24 next-hop 25.0.0.2

Ja Candela -reitittimellä: set protocols static route 192.168.0.0/24 next-hop 50.0.0.1

Reitinvalintaprosessi

Me käytämme alapuolista topologiaa esittämään reitinvalintaprosessia.

!a

Kun Ampere -reititin vastaanottaa IP-paketin, se katsoo Kohdeosoite -kentän paketista. Oletettakoon että osoite on 172.16.0.32 reititin voi ruveta etsimään reititystaulustaan "pisintä osumaa" verkonosoitteelle & aliverkonmaskille.

Protocol IP Network Mask Interface
Connected 25.0.0.0 / 30 Ethernet 3
Connected 192.168.0.0 / 24 Ethernet 1
Connected 192.168.10.0 / 24 Ethernet 2
Static 172.16.0.0 / 24 Ethernet 3

Tätä varten jokaisen reitin osoitetta ja aliverkonmaskia käytetään suorittamaan JA -totuustaulu (muistatko aliverkotuksesta?), jotta löydetään mikä reitti osuu parhaiten/eniten.

Tässä tapauksessa jos otamme reitin 172.16.0.0/24 ja erotamme aliverkonmaskin /24. Voimme käyttää sitä laskemaan, josko kohdeosoite osuu aliverkkoon seuraavalla laskutoimituksella:

1010 1100 . 0001 0000. 0000 0000 . 0010 0000 kohdeosoite binääriformaatissa.

1111 1111 . 1111 1111. 1111 1111 . 0000 0000 aliverkonmaski binääriformaatissa.

JA -totuustaulun avulla käymme bitti bitiltä molemmat muuttujat lävitse saadaksemme tulokseksi että 172.16.0.32 kuuluu 172.16.0.0/24 -aliverkkoon. Ja on tarkin osuma reititystaulussa.

Täten paketti lähetetään ulos rajapinnasta Ethernet 3.

Varoitus: Tämä esimerkki oli hyvin yksinkertainen... suuremmassa reititystaulussa voi olla monimutkaisempia tilanteita

Voi olla useita eri metriikoita pohdittavana päällekkäisten reittiosumien kesken.

Yleensä vertaillaan Administrative Distance ja Metric(s), joskin metriikat ovat erillaisia per dynaaminen reititysprotokolla.

Mutta nämä tapaukset ovat myöhempiä opintojaksoja varten.

Jatka harjoituksiin!

E05 DHCP konfigurointi ja staattinen reititys

Kertaa materiaalia pienellä tietovisalla?

Tietoverkot Quiz - M04 DHCP ja staattinen reititys

Takaisin opintojakson aikatauluun?

Takaisin opintojakson aikatauluun


Lisenssi

Tämän opintojakson materiaalin on kirjoittanut Karo Saharinen ja se on lisensoitu Creative Commons Nimeä-EiKaupallinen-EiMuutoksia 4.0 Kansainvälinen -lisenssillä.

Creative Commons -lisenssi