Linux-verkonhallinta – teoria, konfigurointi ja vianetsintä

Alpine Linuxin ja Ubuntu-pohjaisten järjestelmien IP-osoitteistus, reititys, DNS, DHCP ja pakettitason vianetsintä.

Linux-verkonhallinta

Oppimistavoite: ymmärtää verkonhallinnan käsitteet, muuttaa asetuksia väliaikaisesti ja pysyvästi Alpine Linuxissa sekä Ubuntu-pohjaisissa järjestelmissä ja perustella havainnot näyttökomentojen ja pakettikaappausten avulla.

Huomio: Kaikki seuraavat tulosteet ovat havainnollistavia esimerkkejä, eivät oikean laboratoriokoneen mittaustuloksia. Tarkista liitännän nimi aina ennen komentojen suorittamista. Esimerkeissä käytetään eth0-liitäntää ja dokumentointiin varattuja IP-verkkoja 192.0.2.0/24, 198.51.100.0/24 ja 203.0.113.0/24.

Etäyhteyden varoitus: IP-osoitteen, oletusreitin tai verkkopalvelun uudelleenkäynnistys voi katkaista SSH-yhteyden. Tee muutokset EVE-NG:n konsolista tai varmista palautusreitti.

1. Liitännät ja osoitteistus

Linuxin iproute2-työkalut näyttävät linkkitilan, osoitteet ja reitit. IPv4-prefix /24 vastaa maskia 255.255.255.0. ip-komennolla tehdyt muutokset vaikuttavat käynnissä olevaan järjestelmään, mutta eivät yleensä säily uudelleenkäynnistyksessä eivätkä välttämättä edes verkkopalvelun uudelleenkäynnistyksessä.

ip -br link

Esimerkkituloste:

lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
eth0             UP             00:50:00:00:0b:00 <BROADCAST,MULTICAST,UP,LOWER_UP>
eth1             DOWN           00:50:00:00:0b:01 <BROADCAST,MULTICAST>
Kenttä Merkitys
lo Loopback-liitäntä; paikallisen koneen sisäinen liikenne
eth0, eth1 Verkkoliitännät; Ubuntussa nimet voivat olla myös ens18, enp3s0 jne.
UP / DOWN Raportoitu operatiivinen linkkitila
UNKNOWN Tila ei ole yksiselitteisesti määritettävissä; tavallinen loopbackilla
00:50:... Liitännän MAC-osoite
UP lipuissa Liitäntä on hallinnollisesti käytössä
LOWER_UP Alempi linkkikerros ilmoittaa yhteyden olevan toiminnassa

Johtopäätös: eth0 on käytössä ja linkki toimii. eth1 ei ole toimintatilassa; lyhyt tuloste ei yksin kerro, johtuuko tämä hallinnollisesta sulkemisesta vai puuttuvasta fyysisestä linkistä. Tarkista tarkemmin ip -d link show dev eth1.

ip -br addr – osoitteet

ip -br addr
lo               UNKNOWN        127.0.0.1/8 ::1/128
eth0             UP             192.0.2.10/24 fe80::250:ff:fe00:b00/64
eth1             DOWN
Kenttä Merkitys
192.0.2.10/24 IPv4-osoite ja verkkopeite: verkko 192.0.2.0/24
fe80::.../64 IPv6-link-local-osoite, ei normaalisti reitity internetiin
127.0.0.1/8 IPv4-loopback
Tyhjä osoitekenttä Liitännälle ei näy IP-osoitetta

ip route show – reititystaulu

ip route show
default via 192.0.2.1 dev eth0 proto static metric 100
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.10
Osa Merkitys
default Reitti kohteisiin, joille ei löydy tarkempaa reittiä
via 192.0.2.1 Seuraava hyppy eli yhdyskäytävä
dev eth0 Ulosmenoliitäntä
proto static Staattisesti lisätty reitti
proto kernel Ytimen muodostama reitti, usein liitännän osoitteesta
scope link Kohdeverkko on suoraan samalla linkillä
src 192.0.2.10 Reitin ensisijainen lähdeosoite
metric 100 Reitin etusija samanpituisissa ja muuten vertailukelpoisissa reiteissä; pienempi on tavallisesti ensisijainen

ip route get – valitun reitin simulointi

ip route get 198.51.100.10
198.51.100.10 via 192.0.2.1 dev eth0 src 192.0.2.10 uid 1000
    cache

Tulkinta: Linux aikoo lähettää kohteen 198.51.100.10 liikenteen yhdyskäytävälle 192.0.2.1 liitännästä eth0 ja käyttää lähdeosoitetta 192.0.2.10. Tämä on paikallinen reitityspäätös, ei todiste siitä, että yhteys kohteeseen toimii. uid kertoo reitityskyselyn käyttäjätunnisteen; cache on tulosteen toteutuskohtainen lisätieto.

2. IP-osoitteen ja reittien väliaikainen muuttaminen (Alpine ja Ubuntu)

Nämä iproute2-komennot toimivat molemmissa jakeluperheissä, kun ip-työkalu on asennettu.

Liitännän käyttöönotto ja sulkeminen

sudo ip link set dev eth0 up
sudo ip link set dev eth0 down

Alpine Linuxissa sudo ei välttämättä ole asennettu. Root-käyttäjänä komennot annetaan ilman sudo-etuliitettä.

Lisää tai poista IP-osoite

sudo ip addr add 192.0.2.10/24 dev eth0
sudo ip addr del 192.0.2.10/24 dev eth0

Olemassa olevien IPv4-osoitteiden korvaaminen yhdellä osoitteella:

sudo ip -4 addr flush dev eth0
sudo ip addr add 192.0.2.10/24 dev eth0

Varoitus: flush poistaa kyseisen liitännän kaikki IPv4-osoitteet, myös etäyhteyden käyttämän osoitteen. Älä käytä sitä sokkona SSH-istunnossa.

Tarkista:

ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    inet 192.0.2.10/24 scope global eth0
       valid_lft forever preferred_lft forever

inet on IPv4-osoite, scope global tarkoittaa muuta kuin vain paikallista linkki- tai loopback-käyttöä ja valid_lft forever kertoo, ettei osoitteelle ole asetettu määräaikaista voimassaoloa.

Oletusreitin lisääminen tai vaihtaminen

sudo ip route replace default via 192.0.2.1 dev eth0

Poistaminen:

sudo ip route del default via 192.0.2.1 dev eth0

Tietyn verkon reitti:

sudo ip route replace 198.51.100.0/24 via 192.0.2.254 dev eth0
ip route get 198.51.100.10
198.51.100.10 via 192.0.2.254 dev eth0 src 192.0.2.10 uid 1000
    cache

Tulkinta: Tarkempi /24-reitti ohittaa oletusreitin. Yhdyskäytävän 192.0.2.254 pitää olla saavutettavissa kyseisen liitännän kautta.

Väliaikainen DNS

DNS-asetusta ei muuteta ip-komennolla. Menetelmä riippuu resolvointipalvelusta:

resolvectl status
readlink -f /etc/resolv.conf

Jos Ubuntu käyttää systemd-resolved-palvelua:

sudo resolvectl dns eth0 192.0.2.53
sudo resolvectl domain eth0 lab.example
resolvectl status eth0

Jos /etc/resolv.conf on tavallinen tiedosto ja sen hallinta on käsin tehtävä, tiedostoon voidaan määritellä esimerkiksi:

nameserver 192.0.2.53
search lab.example

Älä korvaa /etc/resolv.conf-tiedostoa käsin, jos NetworkManager, DHCP-asiakas tai systemd-resolved hallitsee sitä: muutos voi ylikirjoittua tai rikkoa nimipalvelun. lab.example on vain esimerkkidomain.

3. Pysyvät verkkoasetukset Alpine Linuxissa

Alpine Linuxissa käytetään usein BusyBoxin ifupdown-tyyppistä verkonhallintaa ja tiedostoa /etc/network/interfaces. Asennuksesta riippuen käytössä voi olla myös muu verkonhallintaratkaisu, joten tarkista ensin ympäristö.

cat /etc/network/interfaces
rc-service networking status
ip -br addr

Staattinen IPv4-osoite

Muokkaa root-käyttäjänä tiedostoa:

vi /etc/network/interfaces

Esimerkkisisältö:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.0.2.10/24
    gateway 192.0.2.1

Joissakin Alpine/ifupdown-toteutuksissa verkkopeite voidaan määrittää erikseen:

    address 192.0.2.10
    netmask 255.255.255.0

Kentät: auto eth0 ottaa liitännän käyttöön käynnistyksessä, iface eth0 inet static valitsee staattisen IPv4-asetuksen, address määrittää osoitteen ja gateway oletusyhdyskäytävän.

DHCP

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

DHCP-asiakas hakee osoitteen, peitteen ja yleensä reititys- sekä DNS-asetukset palvelimelta.

DNS Alpinessa

Jos /etc/resolv.conf on käsin hallittu tiedosto, esimerkki:

nameserver 192.0.2.53
nameserver 1.1.1.1
search lab.example

DHCP-asiakas voi kuitenkin korvata tiedoston. Jos haluat pysyvästi DHCP:stä poikkeavat DNS-asetukset, ne pitää määrittää käytössä olevan DHCP-asiakkaan tai resolvointipalvelun konfiguraatioon. Älä oleta, että resolv.conf pysyy muuttumattomana.

Muutosten käyttöönotto

Turvallisin tapa on tehdä tämä EVE-NG-konsolissa:

rc-service networking restart

Vaihtoehtoisesti liitännän voi yrittää ottaa alas ja ylös:

ifdown eth0
ifup eth0

ifdown/ifup-komennot vaikuttavat konfiguraation ja senhetkisen tilan mukaan; etäyhteys voi katketa. Tarkista käynnistysautomaation tila:

rc-update show | grep networking

Esimerkkituloste:

networking | boot

Tulkinta: networking kuuluu boot-käynnistystasolle. Jos palvelu puuttuu, se voidaan ottaa käyttöön kyseisessä kokoonpanossa komennolla rc-update add networking boot.

4. Pysyvät verkkoasetukset Ubuntu Serverissä: Netplan

Ubuntu Server käyttää usein Netplania, jonka taustalla toimii systemd-networkd tai NetworkManager. Tarkista ensin:

ls -l /etc/netplan/
cat /etc/netplan/*.yaml

Netplan-tiedoston nimi vaihtelee, esimerkiksi 50-cloud-init.yaml tai 01-netcfg.yaml. Jos cloud-init hallitsee verkkoasetuksia, sen generoimaa tiedostoa voidaan kirjoittaa uudelleen; tee pysyvät muutokset ensisijaisesti asetusten todelliseen lähteeseen.

Staattinen IPv4, oletusreitti ja DNS

Esimerkki tiedostosta /etc/netplan/01-lab.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      addresses:
        - 192.0.2.10/24
      routes:
        - to: default
          via: 192.0.2.1
      nameservers:
        addresses:
          - 192.0.2.53
          - 1.1.1.1
        search:
          - lab.example

Tulkinta: renderer määrää taustajärjestelmän, dhcp4: false poistaa IPv4-DHCP:n, addresses asettaa IP:n, routes oletusreitin ja nameservers DNS-palvelimet.

DHCP-asetus

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true

Muutosten tarkistus ja käyttöönotto

sudo netplan generate
sudo netplan try

generate tarkistaa ja generoi taustakonfiguraation; try kokeilee muutoksia ja tarjoaa mahdollisuuden palautukseen, ellei niitä vahvisteta. Palautus ei ole kaikissa tilanteissa täydellinen, joten konsoliyhteys on silti suositeltava.

Kun konfiguraatio on vahvistettu:

sudo netplan apply
ip -br addr
ip route
resolvectl status

Netplanin YAML-sisennyksillä on merkitystä: käytä välilyöntejä, älä tabulaattoreita.

5. Pysyvät verkkoasetukset Ubuntu Desktopissa ja Linux Mintissä: NetworkManager

Ubuntu Desktop ja Linux Mint käyttävät tavallisesti NetworkManageria. Hallinta onnistuu graafisella työkalulla tai nmcli-komennolla.

Selvitä liitäntä ja yhteysprofiili

nmcli device status
nmcli connection show

Esimerkkituloste:

DEVICE  TYPE      STATE      CONNECTION
eth0    ethernet  connected  Wired connection 1
lo      loopback  connected (externally)  lo

Tulkinta: eth0 on Ethernet-laite, sen tila on connected ja sitä hallitsee yhteysprofiili Wired connection 1. Profiilin nimi ei välttämättä vastaa liitännän nimeä.

Staattinen IPv4, yhdyskäytävä ja DNS

sudo nmcli connection modify "Wired connection 1" \
  ipv4.method manual \
  ipv4.addresses 192.0.2.10/24 \
  ipv4.gateway 192.0.2.1 \
  ipv4.dns "192.0.2.53 1.1.1.1" \
  ipv4.ignore-auto-dns yes

Ota profiili uudelleen käyttöön:

sudo nmcli connection up "Wired connection 1"

DHCP takaisin käyttöön

sudo nmcli connection modify "Wired connection 1" \
  ipv4.method auto \
  ipv4.addresses "" \
  ipv4.gateway "" \
  ipv4.dns "" \
  ipv4.ignore-auto-dns no
sudo nmcli connection up "Wired connection 1"

Tarkista asetukset

nmcli -f ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns connection show "Wired connection 1"

Esimerkkituloste:

ipv4.method:                            manual
ipv4.addresses:                         192.0.2.10/24
ipv4.gateway:                           192.0.2.1
ipv4.dns:                               192.0.2.53,1.1.1.1

Tulkinta: Nämä ovat yhteysprofiiliin tallennetut asetukset. Tarkista lisäksi ip addr, ip route ja resolvectl, jotta näet aktiivisen tilan.

Tärkeää: Älä konfiguroi samaa liitäntää yhtä aikaa Netplanin networkd-taustalla, NetworkManagerissa ja käsin tehdyillä ip-komennoilla ilman selkeää hallintamallia. Verkonhallintapalvelu voi palauttaa oman konfiguraationsa.

6. Reititys ja seuraava hyppy

Linux valitsee reititystaulusta pisimmän täsmäävän etuliitteen. Oletusreitti (0.0.0.0/0) on viimeinen vaihtoehto. Seuraavan hypyn pitää olla saavutettavissa valitun ulosmenoliitännän kautta.

ip route

ip route
default via 192.0.2.1 dev eth0
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.10
198.51.100.0/24 via 192.0.2.254 dev eth0

Tulkinta: 198.51.100.0/24 käyttää yhdyskäytävää 192.0.2.254, muu tuntematon liikenne oletusyhdyskäytävää 192.0.2.1. Suoraan kytketty 192.0.2.0/24 ei tarvitse reititintä.

ping – ICMP-saavutettavuus

ping -c 3 192.0.2.1
64 bytes from 192.0.2.1: icmp_seq=1 ttl=64 time=0.52 ms
64 bytes from 192.0.2.1: icmp_seq=2 ttl=64 time=0.46 ms
64 bytes from 192.0.2.1: icmp_seq=3 ttl=64 time=0.48 ms
--- 192.0.2.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss
Kenttä Merkitys
icmp_seq ICMP Echo -pyynnön järjestysnumero
ttl Vastauksen jäljellä oleva IPv4 TTL
time Edestakainen viive (RTT)
packet loss Vastaamatta jääneiden pyyntöjen osuus

Johtopäätös: Yhdyskäytävä vastaa ICMP-pyyntöihin. Tämä ei vielä takaa, että TCP-portit tai reititys kaikkiin muihin verkkoihin toimivat.

traceroute – reitin näkyvät hypyt

traceroute -n 198.51.100.10
traceroute to 198.51.100.10 (198.51.100.10), 30 hops max
 1  192.0.2.1       0.540 ms  0.480 ms  0.501 ms
 2  198.51.100.10   1.100 ms  1.052 ms  1.090 ms

Tulkinta: Ensimmäinen vastaava reititin on 192.0.2.1, toinen vastaava solmu on kohde. -n estää DNS-nimien hakemisen. Kolme viivearvoa vastaavat kolmea koepakettia. * tarkoittaa, ettei kyseiseen koepakettiin saatu vastausta määräajassa; se ei yksin todista yhteyskatkoa. Linuxin tavallinen traceroute käyttää usein UDP-koepaketteja, mutta käytettävissä voi olla ICMP- ja TCP-tiloja.

7. ARP ja naapuruustaulu

ARP selvittää samalla Layer 2 -linkillä olevan IPv4-osoitteen MAC-osoitteen. Toiseen IP-verkkoon lähetettäessä kone selvittää yleensä seuraavan hypyn MAC-osoitteen, ei etäisen kohdelaitteen MAC-osoitetta. ARP-kyselyä ei tavallisesti reititetä IP-reitittimen läpi.

ip neigh show

ip neigh show
192.0.2.1 dev eth0 lladdr 00:50:00:00:03:01 REACHABLE
192.0.2.20 dev eth0 lladdr 00:50:00:00:02:00 STALE
192.0.2.30 dev eth0 INCOMPLETE
Tila Merkitys
REACHABLE Naapurin saavutettavuus on vahvistettu äskettäin
STALE MAC-osoite tunnetaan, mutta tuoretta saavutettavuusvahvistusta ei ole
DELAY Ydin odottaa ennen aktiivista naapurin tarkistusta
PROBE Naapurin saavutettavuutta tarkistetaan aktiivisesti
INCOMPLETE Osoitteen selvitys on kesken
FAILED Naapurin osoitteen selvitys tai saavutettavuuden tarkistus epäonnistui
PERMANENT Pysyvä naapuruusmerkintä
NOARP Merkintä, jossa normaalia ARP-selvitystä ei tehdä

lladdr tarkoittaa linkkikerroksen osoitetta eli tässä MAC-osoitetta. STALE ei sellaisenaan ole vika. INCOMPLETE tai FAILED voi johtua esimerkiksi väärästä VLANista, väärästä osoitteesta, puuttuvasta linkistä tai vastauksen estymisestä.

tcpdump – ARP-kehykset

sudo tcpdump -eni eth0 arp
14:05:10.101000 00:50:00:00:0b:00 > ff:ff:ff:ff:ff:ff, ethertype ARP, Request who-has 192.0.2.1 tell 192.0.2.10
14:05:10.101600 00:50:00:00:03:01 > 00:50:00:00:0b:00, ethertype ARP, Reply 192.0.2.1 is-at 00:50:00:00:03:01

Tulkinta: 192.0.2.10 kysyy broadcast-kehyksellä yhdyskäytävän MAC-osoitetta, ja 192.0.2.1 vastaa. -e näyttää Ethernet-otsakkeen, -n estää nimien resolvoinnin ja -i eth0 valitsee liitännän.

Vianrajaus: jos Request näkyy mutta Reply puuttuu, tarkista vastapää, VLAN, kytkimen MAC-taulu ja mahdollinen ARP-suodatus. Pelkkä puuttuva vastaus ei yksin osoita syytä.

8. DNS ja DHCP

DNS muuntaa nimiä IP-osoitteiksi. DHCP jakaa esimerkiksi IP-osoitteen, peitteen, oletusyhdyskäytävän ja DNS-palvelimet. DHCPv4 käyttää tyypillisesti UDP-portteja 67 (palvelin) ja 68 (asiakas).

resolvectl status – DNS-asetukset

resolvectl status

Esimerkkikatkelma:

Global
       resolv.conf mode: stub
Link 2 (eth0)
    Current Scopes: DNS
         DNS Servers: 192.0.2.53
          DNS Domain: lab.example

Tulkinta: eth0 käyttää DNS-palvelinta 192.0.2.53. stub viittaa tyypillisesti paikalliseen systemd-resolved-välittäjään. Komento ei välttämättä ole saatavilla Alpine Linuxin oletusasennuksessa tai järjestelmässä, jossa systemd-resolved ei ole käytössä.

getent ahostsv4 – nimen ratkaisu

getent ahostsv4 example.com

Esimerkkituloste (osoite on havainnollistava):

93.184.215.14 STREAM example.com
93.184.215.14 DGRAM
93.184.215.14 RAW

Tulkinta: Nimenratkaisu tuottaa IPv4-osoitteen. STREAM, DGRAM ja RAW kuvaavat osoitetietojen socket-tyyppejä, eivät kolmea erillistä verkkoyhteyttä. Todellinen osoite ja tulosteen muoto voivat vaihdella. getent käyttää järjestelmän nimipalvelumekanismia (NSS), joten tulos ei välttämättä tule yksinomaan DNS:stä.

nmcli device show – NetworkManagerin aktiiviset asetukset

nmcli device show eth0

Esimerkkikatkelma:

GENERAL.DEVICE:                         eth0
GENERAL.STATE:                          100 (connected)
IP4.ADDRESS[1]:                         192.0.2.10/24
IP4.GATEWAY:                            192.0.2.1
IP4.DNS[1]:                             192.0.2.53

Tulkinta: Aktiivinen osoite, yhdyskäytävä ja DNS näkyvät samassa tulosteessa. nmcli toimii vain, jos NetworkManager on asennettu ja käytössä.

DHCP-liikenteen tarkkailu

sudo tcpdump -ni eth0 -vv 'udp port 67 or udp port 68'

Esimerkkitulosteesta lyhennetty:

IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request
IP 192.0.2.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply

Tulkinta: Asiakas lähettää DHCP-pyynnön ja palvelin vastaa. Tarkemmat DHCP Discover, Offer, Request ja ACK -viestityypit löytyvät -vv-tulosteen DHCP-optioista. Kaappauksen näkyvyys riippuu ajoituksesta ja liitännästä.

9. TCP, UDP ja vianrajaus

TCP muodostaa yhteyden tavallisesti SYN → SYN/ACK → ACK -kättelyllä ja tarjoaa kuittaukset sekä uudelleenlähetykset. UDP on yhteydetön kuljetusprotokolla eikä tee vastaavaa kättelyä.

ss -lntup – kuuntelevat socketit

sudo ss -lntup

Esimerkkikatkelma:

Netid State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process
 tcp  LISTEN 0      128    127.0.0.1:8000     0.0.0.0:*       users:(("python3",pid=1200,fd=3))
 tcp  LISTEN 0      128    0.0.0.0:22         0.0.0.0:*       users:(("sshd",pid=900,fd=3))
 udp  UNCONN 0      0      0.0.0.0:5353       0.0.0.0:*       users:(("daemon",pid=700,fd=5))
Osa Merkitys
-l Kuuntelevat socketit
-n Numeeriset osoitteet ja portit
-t TCP
-u UDP
-p Prosessitiedot, jos oikeudet riittävät
127.0.0.1:8000 Palvelu kuuntelee vain IPv4-loopbackissa
0.0.0.0:22 Palvelu kuuntelee kaikissa paikallisissa IPv4-osoitteissa
LISTEN TCP-palvelu odottaa yhteyksiä
UNCONN UDP-socket ei ole yhteydessä yksittäiseen vastapäähän

Johtopäätös: Portin 8000 palveluun ei pääse suoraan toiselta koneelta sen IPv4-osoitteen kautta, koska se on sidottu 127.0.0.1-osoitteeseen. SSH kuuntelee kaikissa IPv4-osoitteissa, mutta palomuuri voi silti estää yhteyden.

nc -vz – TCP-portin testaus

nc -vz 192.0.2.20 22

Onnistunut esimerkkituloste:

Connection to 192.0.2.20 22 port [tcp/ssh] succeeded!

Epäonnistunut esimerkkituloste:

nc: connect to 192.0.2.20 port 22 (tcp) failed: Connection refused

Tulkinta: succeeded kertoo, että TCP-yhteyden muodostaminen onnistui; se ei vielä todista SSH-kirjautumisen onnistumista. Connection refused tarkoittaa yleensä, että kohde tai väliin jäävä laite torjui yhteyden aktiivisesti. Aikakatkaisu voi liittyä suodatukseen, reititykseen tai tavoittamattomaan kohteeseen. -v on verbose ja -z testaa yhteyden avaamista lähettämättä sovellustason sisältöä.

tcpdump – TCP-kättely

sudo tcpdump -ni eth0 'host 192.0.2.20 and tcp port 22'

Esimerkkituloste (lyhennetty):

IP 192.0.2.10.50124 > 192.0.2.20.22: Flags [S], seq 1000
IP 192.0.2.20.22 > 192.0.2.10.50124: Flags [S.], seq 5000, ack 1001
IP 192.0.2.10.50124 > 192.0.2.20.22: Flags [.], ack 5001
Merkintä Merkitys
50124 Asiakkaan esimerkkilähdeportti
.22 SSH-palvelimen kohdeportti
[S] SYN: yhteyden avauspyyntö
[S.] SYN + ACK: palvelin vastaa
[.] ACK: asiakas kuittaa
seq TCP-sekvenssinumero
ack TCP-kuittausnumero

Johtopäätös: Kolmivaiheinen TCP-kättely onnistui. Jos SYN näkyy toistuvasti ilman SYN/ACK-vastausta, selvitä, missä liikenne katoaa. Jos vastauksena tulee RST, yhteys torjutaan tai palvelu ei kuuntele kyseisessä osoitteessa ja portissa.

10. Tyypillinen vianetsintäjärjestys EVE-NG-laboratoriossa

  1. Linkki: ip -br link – onko liitäntä käytössä ja linkki ylhäällä?
  2. IP: ip -br addr – onko osoite ja prefix oikein?
  3. Reititys: ip route ja ip route get KOHDE – mitä reittiä liikenne lähtee?
  4. ARP: ip neigh show ja tcpdump arp – löytyykö seuraavan hypyn MAC-osoite?
  5. ICMP: ping -c 3 YHDYSKÄYTÄVÄ – vastaako yhdyskäytävä?
  6. Reittipolku: traceroute -n KOHDE – mitä välihyppyjä näkyy?
  7. DNS: getent ahostsv4 NIMI – toimiiko nimipalvelu?
  8. Palvelu: ss -lntup kohteessa ja nc -vz KOHDE PORTTI asiakkaassa.
  9. Paketit: tcpdump molemmissa päissä ja tarvittaessa ASA:n/kytkimen rajapinnoilla.

Esimerkki: PCS1 ei saa SSH-yhteyttä PCS2:een. Jos ip route get näyttää oikean reitin, ip neigh näyttää PCS2:n MAC-osoitteen, mutta nc -vz epäonnistuu, siirry tarkistamaan PCS2:n ss -lntup sekä mahdollinen palomuuri. Jos ARP jää INCOMPLETE-tilaan, tutki ensin Layer 2 -yhteys ja VLANit.

11. Harjoitustehtävät

Harjoitus A – Väliaikainen staattinen osoite

Aseta EVE-NG:n konsolista Linux-koneelle staattinen osoite, tarkista ip -br addr ja ip route get, testaa yhdyskäytävää pingillä ja selvitä, säilyykö muutos verkkopalvelun tai koneen uudelleenkäynnistyksessä.

Harjoitus B – Pysyvä konfiguraatio

Tee sama pysyvästi käytössä olevan jakelun oikealla menetelmällä: Alpine /etc/network/interfaces, Ubuntu Server Netplan tai Linux Mint/Ubuntu Desktop NetworkManager. Varmista käynnistyksen jälkeen ip addr, ip route ja DNS.

Harjoitus C – Väärä VLAN

Siirrä laboratorioportti väärään VLANiin ja tutki, näkyvätkö ARP Request -kehykset ja saadaanko Reply. Tarkista lisäksi Cisco-kytkimeltä show interfaces status, show vlan brief ja show mac address-table dynamic.

Harjoitus D – TCP-vianrajaus

Käynnistä testipalvelu ensin osoitteessa 127.0.0.1 ja sitten osoitteessa 0.0.0.0. Vertaa ss -lntup, nc -vz ja tcpdump -havaintoja. Tee johtopäätös siitä, miksi palvelu voi toimia paikallisesti mutta ei verkon yli.


Muistisääntö: ip näyttää ja muuttaa ytimen tämänhetkistä verkkotilaa. Pysyvät asetukset tehdään järjestelmän varsinaiseen verkonhallintaan. tcpdump osoittaa, mitä paketteja valitulla rajapinnalla todella näkyy – mutta ei yksin kerro, mitä tapahtuu muualla verkossa.