Skip to content

M10 TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP)

Takaisin opintojakson aikatauluun

Opetusvideot

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 1

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 2

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 3

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 4

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 5

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 6

OSI - Malli kerros 4

Nyt puhutaan OSI Mallin neljännestä kerroksesta eli kuljetuskerroksesta (eng. Transport Layer). Tämä olisi voinut tulla palomuurien yhteydessä, mutta harjoitteina johdonmukaisempi palomuurauksen jälkeen. Eli tutustutaampa miten OSI mallin 4. kerros toimii.

!a

Tämä kerros lähettää segmenttejä dataa päätelaitteiden välillä. Se käyttää 3. kerrosta segmenttien siirtämiseen paketeissa.

Kuten palomuuraus kappaleessa jo hieman törmättiin...

Yksi tärkeimmistä asioista kuljetuskerroksella on portit (tai portti numerot) eri palveluille

Portti termin voi esittää usealla eri tavalla

Example

[protokolla]/[portti]

tcp/22 udp/53 tcp/80

[sovellus]://[ipv4 osoite]:[portti]

http://192.168.0.1:80

https://192.168.0.5:443

ftp://192.168.0.5:21

Joskus sovellus käyttää IANA:n määrittelemää oletusporttia: Service Name and Transport Protocol Port Number Registry

http://192.168.0.5/ on täysin sallittu osoite

Oletusportti HTTP:lle on 80 (jos etsii IANA:n listauksesta)

Täten esim. selaimet jättävät :8 pois osoitekentästä (URL:sta).

sovellus/palvelu voidaan joskus konfiguroida eri porttiin

Esim. HTTP palvelun voi olla kuuntelemassa portissa http://192.168.0.5:8080

Nyt oletusportti HTTP palvelulle on vaihtunut 80 -> 8080

Mikä tarkalleen on portti? No tässä tapauksessa pitää katsoa sitten segmenttien otsikkoa...

Transmission Control Protocol - TCP

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 2

TCP on yhteydellinen siirtoprotokolla. Se muodostaa yhteyksiä IPv4 osoitteiden välille kolmivaiheisen kättelyn avulla (eng. three-way handshake). Se kuittaa vastaanotetut segmentit ja puuttuvien segmenttien osalta säätää lähetysnopeutta (ikkuna kokoa).

Katsotaan aluksi TCP otsikkoa.

!a

Wireshark TCP otsikosta

!a

Source Port: 16 bits (suom. Lähdeportti)

Lähdeporttinumero. 2^16 = 0 - 65535 eri porttia. Asiakkaan käyttöjärjestelmä kuuntelee tätä porttia.

Destination Port: 16 bits (suom. kohdeportti)

Kohdeporttinumero. 2^16 = 0 - 65535 eri porttia. Palvelimen käyttöjärjestelmä kuuntelee tätä porttia asiakasyhteyksiä varten.

Sequence Number: 32 bits (suom. sekvenssinumero)

Kuljetuskerroksen otsikko sisältää yleensä sovelluksen dataa. Sekenssinumero kertoo mitä osiota (segmenttiä) datasta kuljetetaan. Esim. ensimmäinen otsikko voi kantaa 0-999 ja toinen otsikko voi kantaa 1000-1999.

Acknowledgment Number: 32 bits (suom. kuittausnumero)

Jos ACK -lippu on asetettu arvoon 1. Tämä kenttä sisältää seuraavan sekvenssinumeron jota lähettäjä odottaa saavansa. Kun yhteys on muodostettu. Tämä lähetetään aina.

Data Offset: 4 bits (suom. datan "osoitin")

Kuinka monta 32bit:n muuttujaa on otsikossa. Määrittää mistä data alkaa. Otsikko on jaollinen 32:lla.

Reserved: 6 bits (suom. varattu)

Tulevaisuuden käyttötarkoituksia varten varattu 6 bittiä. Toteutuksissa yleensä 0.

Control Bits: 6 bits (from left to right) (suom. hallintabitit)

Paremmin tunnetaan TCP -lippuina:

  • URG: Jos tosi, lue Urgent Pointer -kenttä
  • ACK: Jos tosi, lue Acknowledgment Number -kenttä
  • PSH: Työntää segmentin liikkeelle odottamatta tavuvirtaa sovellukselta
  • RST: Resetoi (TCP) yhteyden
  • SYN: Synkronoi sekvenssinumerot
  • FIN: Ei enää dataa lähettäjältä

Window: 16 bits (suom. ikkuna)

Tämä kenttä ilmoittaa datan määrän jota lähettäjä on valmis hyväksymään. Usein kutsutaan "ikkunan kokona" (eng. window size). Eli seuraava segmentti voidaan pyytää 2000 tavuisena esim. 1000 tavuisen sijasta.

Checksum: 16 bits (suom. tarkastussumma)

Tarkastussumma auttaa vastaanottajaa tarkastamaan otsikon eheyden. Välttääkseen mahdollisia häiriöitä tiedonsiirrossa.

Urgent Pointer: 16 bits (suom. hätä osoitin)

Hätäisyysosoitin on tapa TCP:lle kertoa että kiireellistä tietoa olisi tulossa. Valitettavasti tämän kentän käyttö on hyvin villiä kuten seuraava RFC toteaa...

RFC6093 - On the Implementation of the TCP Urgent Mechanism

Unfortunately, virtually all TCP implementations process TCP urgent indications differently.

Options: variable (suom. vaihtoehdot)

Vaihtoehdot kenttä on määritetty muuttuvan kokoiseksi. Se tukee siis useita eri tulevaisuuden tarpeita.

Esimerkkejä käyttötavoista on

  • Maximum Segment Size (MSS) - Kuinka paljon dataa voi lähettää yhdessä segmentissä
  • Timestamps - Tukemaan mahdollisia sovellusten algoritmejä, jotka vaativat tietoa viiveen vaihtelusta yhteydellä
  • Selective Acknowledgements (SACK) - Jos on segmenttejä kuitattavaksi, jotka ovat saapuneet epäjohdonmukaisessa järjestyksessä

Padding: variable (suom. täyte)

Täyte varmistaa että TCP on 32:lla jaettavissa. Jotta esimerkiksi 32 bittiset prosessorit voivat käsitellä otsikon. Täyte on pelkästään nollabittejä.

Handshaking (suom. kättely)

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 3

Yksi tärkeimmistä osioista on yhteyden muodostaminen kolmivaiheisella kättelyllä (eng. three-way handshake).

!a

Sama - wireshark pakettikaappauksena

!a

Windowing (suom. Ikkunointi)

Toinen tärkeä toiminnallisuus on TCP:n kyky reagoida tiedonsiirron ongelmiin.

TCP reagoi muuttamalla tiedonsiirtonopeuksia tietoverkossa nostamalla tai pienentämällä segmentin kokoa. Lisäksi kaikki ikkunat/segmentit pitää kuitata vastaanotetuiksi (ACK -lippu).

!a

User Datagram Protocol - UDP

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 4

TCP on monimutkainen ja protkolla täynnä ... kenttiä ja lippuja... turhauttavaa.

User Datagram Protocol on yksinkertainen ratkaisu: "Lähetä ja unohda!".

!a

RFC 768 - User Datagram Protocol

  1. UDP provides a procedure for application programs to send messages to other programs with a minimum of protocol mechanism
  2. Delivery and duplicate protection are not guaranteed
  3. Applications requiring ordered reliable delivery of streams of data should use the Transmission Control Protocol (TCP)

Eli UDP on käytännöllinen lähetä & unohda tyylisessä tietoliikenteessä. Vastaanottaja kyllä vastaa, jos tarpeellista. Täten uudelleenlähetysajastimet on sovelluskerroksen ongelmia, jos niiden tiedonsiirto käyttää UDP:tä.

I could tell you an UDP joke, but you wouldn't get it

Source Port: 16 bits (suom. Lähdeportti)

Lähdeporttinumero. 2^16 = 0 - 65535 eri porttia.

Valinnainen, koska vastauksia ei yleensä odotella. Jos tarpeeton, lähdeportti = 0.

Destination Port: 16 bits (suom. Kohdeportti)

Kohdeporttinumero. 2^16 = 0 - 65535 eri porttia.

Length (suom. pituus)

Pituus -kenttä esittää kokonaistavumäärää Otsikosta + Datasta.

Checksum (suom. tarkastussumma)

Tarkastussumma auttaa vastaanottajaa tarkastamaan otsikon eheyden. Välttääkseen mahdollisia häiriöitä tiedonsiirrossa.

Wireshark UDP:stä käytännössä

!a

Reordering

Huomioi että UDP:ssä ei ole sekvenssinumeroa millään tavalla kenttänä. Tämä tarkoittaa että jos segmentit vastaanotetaan väärässä järjestyksessä... ei ole mitään tapaa järjestellä niitä.

Useat puhelu- tai videokonferenssi sovellukset saattavat käyttää UDP tiedonsiirtoa, täten DP:n päälle on esitetty kaksi eri vaihtoehtoa ratkaitakseen "lähetä yksinkertaisesti, mutta uudelleenjärjestä sekvenssinumeron & aikaleiman perusteella".

  • Real-time Transport Protocol - RTP
    • Tarjoaa aikaleimausta ja sekvenssinumerointia
  • Real-time Transport Control Protocol - RTCP
    • Tarjoaa puhelu-/videoyhteyden palvelunlaadullisia kenttiä

Tunnistettavia portteja joita sovellukset käyttävät

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 5

TCP/UDP ports joita kaikkien (IT-insinöörien) pitäisi tunnistaa

Älä ole huolissaan. Alat vähitellen muistamaan niitä. Koekysymyksissä voi olla muutamia näistä, koska ne koetaan olevan "yleistietoa" IT-alalla

Lista ei ole "tärkeysjärjestyksessä" vaan porttinumerojärjestyksessä.

Palvelunnimi Porttinumero Kuljetusprotokolla Kuvailu
FTP 21 tcp/udp File Transfer Protocol
SSH 22 tcp/udp The Secure Shell Protocol
Telnet 23 tcp/udp Telnet
SMTP 25 tcp/udp Simple Mail Transfer
DNS 53 tcp/udp Domain Name Server
HTTP 80 tcp/udp Hyper-Text Transfer Protocol
POP3 110 tcp/udp Post Office Protocol - Version 3
SFTP 115 tcp/udp Secure File Transfer Protocol
NTP 123 tcp/udp Network Time Protocol
IMAP 143 tcp/udp Internet Message Access Protocol
BGP 179 tcp/udp Border Gateway Protocol
LDAP 389 tcp/udp Lightweight Directory Access Protocol
HTTPS 443 tcp/udp Hyper-Text Transfer Protocol - Secure
MySQL 3306 tcp Open-source Structured Query Language
RDP 3389 tcp/udp Remote Desktop Protocol

TCP/UDP suorituskyvyn mittaaminen iperf:llä

iperf on työkalu mittaamaan TCP/UDP kaistanleveyttä (eng. bandwidth) verkon ylitse. Meidän lubuntu.ova:ssa on se asennettuna valmiiksi.

Seuraavassa esimerkissä Lubuntu VM on sillatussa rajapinnassa Internettiin (eng. bridged network)

Client -mode (suom. asiakassovelluksena)

iperf -c [ip address]

lubuntu@lubuntu-virtualbox:~$ iperf -c iperf.he.net -p 5201
------------------------------------------------------------
Client connecting to iperf.he.net, TCP port 5201
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.208 port 57606 connected with 216.218.207.42 port 5201
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.1 sec  12.8 MBytes  10.6 Mbits/sec
lubuntu@lubuntu-virtualbox:~$
iperf -c [ipaddress] -p 5201

-p [port] määrittää kohdeportin yhteydelle

lubuntu@lubuntu-virtualbox:~$ iperf -c iperf.he.net -p 5201
------------------------------------------------------------
Client connecting to iperf.he.net, TCP port 5201
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.208 port 57606 connected with 216.218.207.42 port 5201
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.1 sec  12.8 MBytes  10.6 Mbits/sec
lubuntu@lubuntu-virtualbox:~$
iperf -c [ipaddress] -p 5201 -t 50

-t [#] määrittää testausajan sekunteina

lubuntu@lubuntu-virtualbox:~$ iperf -c iperf.he.net -p 5201 -t 50
------------------------------------------------------------
Client connecting to iperf.he.net, TCP port 5201
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.208 port 57604 connected with 216.218.207.42 port 5201
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-50.0 sec  58.9 MBytes  9.88 Mbits/sec
lubuntu@lubuntu-virtualbox:~$
iperf -c [ipaddress] -p 5201 -t 10 -i 2

-i [#] määrittää testien aikavälin. Esimerkissä 2 sekunnin testausvälejä 10 sekunnin aikana.

lubuntu@lubuntu-virtualbox:~$ iperf -c iperf.he.net -p 5201 -t 10 -i 2
------------------------------------------------------------
Client connecting to iperf.he.net, TCP port 5201
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.208 port 57610 connected with 216.218.207.42 port 5201
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 2.0 sec  2.88 MBytes  12.1 Mbits/sec
[  3]  2.0- 4.0 sec  2.75 MBytes  11.5 Mbits/sec
[  3]  4.0- 6.0 sec  2.75 MBytes  11.5 Mbits/sec
[  3]  6.0- 8.0 sec  2.00 MBytes  8.39 Mbits/sec
[  3]  8.0-10.0 sec  2.75 MBytes  11.5 Mbits/sec
[  3]  0.0-10.4 sec  13.1 MBytes  10.5 Mbits/sec
lubuntu@lubuntu-virtualbox:~$
iperf -c [ipaddress] -p 5201 -u

-u määrittää iperf sovelluksen käyttävän UDP protokollaa testauksessa.

lubuntu@lubuntu-virtualbox:~$ iperf -c iperf.he.net -p 5201 -u
------------------------------------------------------------
Client connecting to iperf.he.net, UDP port 5201
Sending 1470 byte datagrams, IPG target: 11215.21 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.208 port 56028 connected with 216.218.207.42 port 5201
read failed: Connection refused
[  3] WARNING: did not receive ack of last datagram after 1 tries.
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[  3] Sent 892 datagrams
lubuntu@lubuntu-virtualbox:~$

iperf -c [ipaddress] -p 5201 -u -b 1000000000

-b 1000000000 -vipu lisää UDP -lähetyksen maksiminopeudeksi 1Gbit/s.

UDP:tä käytetään palvelunestohyökkäyksissä, eli ÄLÄ TEE TÄTÄ INTERNET:ssä

Rikoslaki 38 6 § Törkeä tietoliikenteen häirintä

Server -mode (suom. palvelinsovelluksena)

Seuraavassa esimerkissä Lubuntu VM on sisäisessä rajapinnassa opintojakson harjoitusympäristöön (eng. internal network)

Palvelinsovelluksena meidän täytyy käynnistää iperf meidän harjoitusympäristössä. Huomioi että liikennettä ei viedä palomuurin lävitse, koska se vaatisi porttien sallimista palomuurisäännöstössä.

!a

iperf -s käynnistetään lubuntu virtuaalikoneella (palvelin) vasemmalla

Esimerkki:

lubuntu@lubuntu-virtualbox:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
iperf -s -komento käyttää IPv4 osoitetta Lubuntu:ssa, joka on 172.16.0.11 (tätä osoitetta käytetään seuraavaksi asiakassovelluksessa).

iperf -c 172.16.0.11 komento lubuntu virtuaalikoneella (asiakas) oikealla
lubuntu@lubuntu-virtualbox:~$ sudo iperf -c 172.16.0.11
------------------------------------------------------------
Client connecting to 172.16.0.11, TCP port 5001
TCP window size:  289 KByte (default)
------------------------------------------------------------
[  3] local 192.168.10.9 port 35750 connected with 172.16.0.11 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   166 MBytes   139 Mbits/sec
Palvelin osoitteessa 172.16.0.11 reagoi yhteydenottoon seuraavasti
lubuntu@lubuntu-virtualbox:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size:  128 KByte (default)
------------------------------------------------------------
[  4] local 172.16.0.11 port 5001 connected with 192.168.10.9 port 35750
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec   166 MBytes   138 Mbits/sec

Network Configuration (suom. verkonkonfiguraatio)

Video: Tietoverkot, TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP), osa 6

Opintojakson aikana verkonkonfiguraatiota on hallinnoitu verkkolaitteilla switch.ova ja vyos.ova.

Verkkokonfiguraatio tallennetaan usein .cfg tiedostoksi (tai vastaavaksi) sisältäen tekstiä.

Esimerkkejä eri konfiguraatiotiedostoista

Cisco Systems konfiguraatiota

https://www.cisco.com/c/m/en_us/techdoc/dc/reference/cli/n5k/commands/show-running-config.html

version 4.2(1)N2(1)
feature fcoe
feature telnet
feature tacacs+
feature udld
feature interface-vlan
feature lacp
feature vpc
feature lldp
feature fex
snmp-server enable traps entity fru
role name default-role
  description This is a system defined role and applies to all users.
  rule 5 permit command feature environment
  rule 4 permit command feature hardware
  rule 3 permit command feature module
  rule 2 permit command feature snmp
  rule 1 permit command feature system
role name praveena
username admin password 5 $1$VrQsB2KX$4jkUcx3sXWU8lhI1mlwLa/  role network-admin
username oregon password 5 $1$p3VJ0/BY$Kp22A08NeqCQ0asxUKXq91  role network-oper
ator
no password strength-check
ip domain-lookup
ip host switch 192.168.2.215
ip host BEND-1 192.168.2.215
tacacs-server host 192.168.2.54 key 7 "wawy1234"
aaa group server tacacs+ t1
    server 192.168.2.54
    use-vrf management
aaa group server tacacs+ tacacs
radius-server host 192.168.2.5 key 7 "KkwyCet" authentication accounting
aaa group server radius r1
    server 192.168.2.5
    use-vrf management
hostname switch
logging event link-status default
errdisable recovery interval 30
no errdisable detect cause link-flap
errdisable recovery cause pause-rate-limit
--More--
switch#
Paloalto konfiguraatiota

https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm2lCAC

set network interface ethernet ethernet1/1 layer3 ip 10.18.143.145/26
set zone trust network layer3 ethernet1/1
set network virtual-router default interface ethernet1/1
set network interface ethernet ethernet1/2 layer3 ip 172.16.77.170/30
set zone untrust network layer3 ethernet1/2
set network virtual-router default interface ethernet1/2
set network virtual-router default routing-table ip static-route default destination 0.0.0.0/0 nexthop ip-address 172.16.77.169
set network profiles interface-management-profile allow_ping_ssh ping yes ssh yes
set network interface ethernet ethernet1/1 layer3 interface-management-profile allow_ping_ssh
set network profiles interface-management-profile allow_ping ping yes
set network interface ethernet ethernet1/2 layer3 interface-management-profile allow_ping
commit
Juniper Networks konfiguraatiota

https://www.juniper.net/documentation/en_US/junos/topics/example/flowmonitoring-active-sampling-solutions.html

[edit]
interfaces {
    sp-2/0/0 { # This adaptive services interface creates the flow records.
        unit 0 {
            family inet {
                address 10.5.5.1/32 {
                    destination 10.5.5.2;
                }
            }
        }
    }
    fe-1/0/0 { # This is the interface where records are sent to the flow server.
        unit 0 {
            family inet {
                address 10.60.2.2/30;
            }
        }
    }
    ge-2/3/0 { # This is the input interface where all traffic enters the router.
        unit 0 {
            family inet {
                filter {
                    input catch_all; # This is where the firewall filter is applied.
                }
                address 10.1.1.1/20;
            }
        }
    }
    ge-3/0/0 { # This is the interface where the original traffic is forwarded.
        unit 0 {
            family inet {
                address 10.2.2.1/24;
            }
        }
    }
}
forwarding-options {
    sampling { # Traffic is sampled and sent to a flow server.
        input {
            rate 1; # Samples 1 out of x packets (here, a rate of 1 sample per packet).
        }
}
family inet {
    output {
        flow-server 10.60.2.1 { # The IP address and port of the flow server.
            port 2055;
            version 5; # Records are sent to the flow server using version 5 format.
            }
            flow-inactive-timeout 15;
            flow-active-timeout 60;
            interface sp-2/0/0 { # Adding an interface here enables PIC-based sampling.
            engine-id 5; # Engine statements are dynamic, but can be configured.
            engine-type 55;
            source-address 10.60.2.2; # You must configure this statement.
        }
    }
}
}
firewall {
    family inet {
        filter catch_all { # Apply this filter on the input interface.
            term default {
                then {
                    sample;
                    count counter1;
                    accept;
                }
            }
        }
    }
}

Controlling Devices (suom. laitteiden hallintaa)

Console connection (suom. konsoliyhteys)

Konsoliyhteys on vanhimpia tapoja hallita laitetta. Verkkolaitteilla on yleensä con portti konfigurointia varten. Vanhat konsolikaapelit korvataan tätä nykyään USB porteilla. Joka tapauksessa tämä tapa antaa laitteille "vierihoitoa" on yksinkertaisimpia tapoja asentaa laite verkkoon ennen SSH- tai HTTPS -yhteydellisyyttä.

Cisco reititin käynnistetään sinisen konsolikaapelin ollessa kiinni hallintaa varten

Tällä opintojaksolla konsoliyhteyttä käytetään VirtualBox:n VirtualBox Console window:n lävitse virtuaalikoneille.

Remote connections (suom. etäyhteydet)

On eri tapoja konfiguroida verkkolaitteita verkonylitse. Näitä yhteyksiä kutsutaan:

  • In-Band connection (tietoliikennettä välittävän verkon lävitse)
  • Out-of-Band connection (OOB) (tietoliikenteestä erotetun hallintaverkon kautta)

In-Band connection on tapa jolla hallinnoimme laitteita tällä kurssilla (pl. virtualbox konsoli)

Out-of-Band connection on tapa hallita verkkolaitteita korkean saatavuuden verkoissa, joissa taataan pääsy laitteille. Verkonmuutos tilanteissakin. Tämä tarkoittaa että verkkolaitteiden vieressä on toinen hallintaverkko.

Mutta mites OOB -verkon verkkolaitteita konfiguroidaan?

Noh... "Kuka vahtii vahtimiehiä?"

Yleensä yksi kerros varmentamista on tarpeeksi. Hyvin harvoin yhteysongelmat vaivaavat molempia verkkoja (olettaen että verkot käyttävät erillisiä fyysisiä kaapelointeja)

Verkkolaitteiden nimeäminen

Tämä on hankala aihe. Opintojakson lävitse on käytetty useita eri termejä reitittimille. Kun etäyhteys otetaan, olisi hyvä olla selkeää komentokehoitteessa: Millä laitteella ollaan.

Laitteen nimeäminen Vyos:ssa (reitittimet)

Vyos: set system host-name [name]

Vaatii uudelleen käynnistyksen tullakseen voimaan....

Laitteen nimeäminen EXOS:ssa (kytkimet)

EXOS-VM.1# configure snmp sysName [name]

SSH

Secure Shell (SSH) on sovellus ja protokolla, jolla yhdistät palvelimeen (tai verkkolaitteeseen) etänä hallitaksesi laitteen asetuksia (esim. avaamalla shell/komentokehote/command-line interface).

Verkonhallintaa varten SSH takaa salatun yhteyden TCP/IP -verkon lävitse.

SSH:sta on tullut de facto työkalu IT järjestelmienhallinnoijalle. Voit lukea lisää https://www.ssh.com/ssh/

Enabloidaksesi SSH -palvelimen switch.ova:ssa:

EXOS-VM.8 # enable ssh2 port 22
WARNING: Generating new server host key
This could take up to 1 minute and cannot be cancelled. Continue? (y/N) Yes

Key Generated.
EXOS-VM.9 #

Enabloidaksesi SSH -palvelimen vyos.ova:ssa:

vyos$vyos# set service ssh port 22
vyos$vyos# commit
vyos$vyos# save

HTTP(S)

Hyvin usein jonkinlainen web -palvelin rajapinta on toteutettuna kaupallisiin sovelluksiin. Tämä on nätti etusivu/frontti (eng. front-end) käyttäjille jotka eivät ymmärrä mitä ovat tekemässä, mutta nyt heidän ei tarvitse opetella komentolinjan komentoja (jota ollaan tehty opintojaksolla) päästäkseen "likaisiin yksityiskohtiin" laitteissa.

Kun olet oppinut ymmärtämään miten komennot toimivan "pellin alla", HTTP voi olla nopea tapa konfiguroida laitteita. Joskus se on jopa ainoa tapa... joka (voi) raivostuttaa IT-insinööriä.

HTTP -palvelimen voi enabloida laitteilla seuraavasti.

Kytkin: EXOS-VM.1# enable web http

!a

Reititin (vyos): set service https listen-address [IPv4 address on the Router - e.g. loopback]

!a

Miten tallennat verkkosivun konfiguraation!?

No yleensä et tallenna sitä... paitsi että sivut tarjoavat kenties jonkinlaisen rajapinnan, josta voit ladata konfiguraation tekstitiedostona...

Application Programmable Interfaces - API

Tietoverkkojen automaatio on alkanut lisäämään mahdollisuuksia hallita/konfiguroida verkkolaitteita esim. python skriptoilla.

Tietoverkkojen automatisointi vaatii tuotannon (eng. Operations) tiiviimpää yhteistyötä kehityksen (eng. Development) kanssa muodostaakseen termin "DevOps". Yleensä tämä tarkoittaa että automaatiota kehitetään git -versionhallinnan kautta joka sisältää konfiguraatiotiedostot, jotka ajetaan tuotantoon "Jatkuvan integroinnin - jatkuvan kehityksen" -linjastojen lävitse (Continuous Integration - Continuous Development - or CI/CD - pipelines).

Five stages of Network Automation Grief - ipspace.net

Denial. I don’t need automation. Our network doesn’t change that much, and it’s perfectly OK to configure devices by hand. We’ve always been doing it this way, and it was fine.

Anger. Why is everyone talking about this new stuff? Why should I learn something new after studying networking for a decade?

Bargaining. Maybe I don’t need automation. Maybe I can buy an intent-based or software-defined product from my $vendor and continue using GUI… or maybe I could do a bit of Google-and-paste and get something done.

Needless to say, $vendors love engineers being stuck in this phase… and well-meaning evangelists explaining how easy it is to automate stuff (without ever telling you about the hard parts like source-of-truth or data models) inadvertently help creating either Expert Beginners that stay stuck at this phase forever (while thinking they really nailed it) or death by a thousand scripts.

Depression. It’s so complex. I have to learn all this new stuff. I hate YAML. Jinja2 is really a pile of crap. Network devices suck… even SSH doesn’t work reliably. Why couldn’t my $vendor give me a clean API returning the data I need (hint: because you chose the wrong vendor ;).

Acceptance. Damn it, I’m an engineer. I can make it work. I’ll work hard, master new stuff, and get it done. After all, if I managed to get to the point where I can design and deploy complex networks, I might be able to team with a programmer (or an automation expert) and slowly build something useful.

  • Source: blog.ipspace.net ... this is an awesome blog for data networking... highly recommended

Tämä automatisointi on osa Skriptaamisen ja automatisoinnin perusteet -opintojaksoa.

Configuration Control (suom. Konfiguraationhallinta)

Tähän mennessä olet varmastikin huomannut erot switch.ova (EXOS) ja vyos.ova (Vyos) käyttöjärjestelmissä.

  1. vyos.ova:ssa on commit -komento, jolla käyttöönotetaan konfiguraatiomuutokset
  2. switch.ova:ssa komennot otetaan ... välittömästi käyttöön

Cisco Systems on määrittänyt nimeämiset näille konfiguraatioille seuraavasti:

  1. Running configuration - Konfiguraatio joka on tällä hetkellä käytössä laitteella
  2. Startup configuration - Konfiguraatio joka on tallennettuna laitteella (ja käyttöönotetaan käynnistäessä)

Configuration Rollbacks on tapa palauttaa konfiguraatio aiempaan pisteeseen (yleensä toimivaan konfiguraatioon).

Configuration Rollbacks - reitittimet opintojaksolla tukevat tätä toiminnallisuutta.
vyos@vyos2# rollback 
Possible completions:
  <N>   Rollback to revision N (currently requires reboot)

  Revisions:
    0   2020-08-27 10:22:43 vyos by cli
    1   2020-08-27 09:53:21 vyos by cli
    2   2020-08-21 07:22:18 vyos by cli
    3   2020-08-21 07:11:22 vyos by cli
    4   2020-08-19 05:34:12 vyos by cli
    5   2020-08-19 05:30:44 vyos by cli
    6   2020-08-12 09:22:18 vyos by cli
    7   2020-08-06 05:12:57 vyos by cli
    8   2020-08-06 05:08:18 root by boot-config-loader
    9   2020-08-05 10:11:31 vyos by cli
    10  2020-08-05 09:33:52 vyos by cli
    11  2020-06-01 12:04:55 root by boot-config-loader
    12  2020-06-01 12:04:54 root by init

[edit]
vyos@vyos2#

Jatka harjoituksiin!

E11 Mitataan TCP ja UDP

E12 Verkon konfiguraation hallinta

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