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.
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.
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).
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).
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!".
RFC 768 - User Datagram Protocol
- UDP provides a procedure for application programs to send messages to other programs with a minimum of protocol mechanism
- Delivery and duplicate protection are not guaranteed
- 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.
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ä.
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
[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
Reititin (vyos): set service https listen-address [IPv4 address on the Router - e.g. loopback]
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.
- python-vyos-mgmt -library for Vyos devices
- ExtremeScripting
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ä.
vyos.ova
:ssa oncommit
-komento, jolla käyttöönotetaan konfiguraatiomuutoksetswitch.ova
:ssa komennot otetaan ... välittömästi käyttöön
Cisco Systems on määrittänyt nimeämiset näille konfiguraatioille seuraavasti:
Running configuration
- Konfiguraatio joka on tällä hetkellä käytössä laitteellaStartup 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!
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ä.