Network configuration (Suomi)

Aiheeseen liittyen
Network Debugging
Firewalls
Internet sharing
Router
Tässä artikkelissa kerrotaan kuinka verkkoyhteydet pystyy konfiguroimaan
OSI kerroksella 3
ja ylöspäin.
Ethernettiin
ja
langattomaan
paneutudaan paremmin niiden alasivuilla.
Tarkista yhteys
Määrittääksesi vian yhteydessä, käy seuraava lista läpi ja varmista että kaikki tapaukset täyttyvät:
Verkon käyttöliittymä
on listattu ja otettu käyttöön. Muussa tapauksessa tarkista laitteen ajuri – katso
ethernet ajuri
tai
langaton ajuri
.
Olet yhdistettynä verkkoon: kaapeli on kytketty kiinni tai olet
yhdistettynä langattomasti LAN verkkoon
.
Sinun verkon käyttöliittymään on asetettu
IP osoite
.
Reititystaulu
on asetettu oikein.
Voit
pingata
verkon sisäisen IP osoitteen (kuten sinun yhdyskäytävä).
Voit
pingata
julkisen IP osoitteen (kuten
8.8.8.8
, joka on Googlen DNS palvelin ja on kätevä osoite testailulle).
Tarkista jotta voit selvittää verkkotunnuksia
(kuten
archlinux.org
).
Ping
Pingausta
käytetään yhteyden selvittämiseen palvelimelle.
$ ping www.example.com
PING www.example.com (93.184.216.34): 56(84) data bytes

64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=11.632 ms

64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.726 ms

64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=10.683 ms

...
Jokaisesta vastauksesta pingaus apuväline printtaa samanlaisen rivin kuin ylhäällä esimerkissä on. Lisätietoa löytyy
ping(8)
manuaalista. Huomaa, että tietokoneet voivat olla konfiguroituja olemaan vastaamatta ICMP echo pyyntöihin.
[1]
Jos et saa vastausta, oletusyhdyskäytävä tai ISP eli palveluntarjoaja saattaa olla ongelmana. Voit suorittaa
traceroute
-työkalun tarkistellaksesi polkua palvelimelle.
Huomautus
Saman tapaisen virheilmoituksen kuin
ping: icmp open socket: Operation not permitted
ilmetessä, kun
ping
-työkalua suoritetaan, yritä asentaa
iputils
paketti uudestaan.
Verkon hallinnointi
Muodostaaksesi verkkoyhteyden käy seuraavat askeleet läpi:
Varmistu siitä, että
verkon käyttöliittymä
on listattuna ja otettuna käyttöön.
Yhdistä verkkoon.  Kiinnitä Ethernet kaapeli tai
yhdistä langattomaan LAN verkkoon
.
Konfiguroi verkkoyhteys:
staattinen IP osoite
dynaaminen IP osoite: käytä
DHCP:tä
Huomautus
Asennuskuva käyttää
systemd-resolved
sekä
systemd-networkd
taustaprosesseja, jotka on konfiguroitu DHCP ohjelmassa
langallisille
ja
langattomille
verkkokäyttöliittymille.
net-tools
Arch Linux on merkinnyt vanhentuneeksi
net-tools
paketin korvatakseen sen
iproute2
paketilla.
[2]
Vanhentunut komento
Korvaava komento
arp
ip neighbor
ifconfig
ip address, ip link
netstat
ss
route
ip route
Laajemmalle selvitykselle asiasta, katso
tämä blogi päivitys
.
iproute2
iproute2
on riippuvuutena
base
meta paketissa
ja antaa
ip(8)
komentorivi käyttöliittymän, jolla hallitaan
verkon käyttöliittymiä
,
IP osotteita
ja
polku taulun
. Ole tietoinen kumminkin siitä, ettei
ip
säilytä asetuksia uudelleen käynnistyksessä. Konfiguroimiseen voidaan käyttää
verkon hallintajärjestelmää
tai voidaan automatisoida
ip
komentoja käyttämällä skriptejä ja
systemd yksiköillä
. Huomioi myös, että
ip
komennot voidaan yleensä lyhentää. Selkeyden vuoksi ne kumminkin tässä artikkelissa ovat pidemmässä muodossa.
Verkon käyttöliittymät
Oletukselta
udev
antaa nimiä verkon käyttöliittymille käyttäen
Ennalta arvattavia verkko käyttölliittymien nimiä
, joka antaa käyttöliittymien nimille etuliitteen
en
(wired/
Ethernet
),
wl
(wireless/WLAN), tai
ww
(
WWAN
).
Vinkki
Jos haluat vaihtaa itse käyttöliittymän nimen, katso
#Vaihda käyttöliittymän nimeä
ja
#Palauta perinteisiin käyttöliittymän nimiin
.
Verkon käyttöliittymien listaus
Langalliset ja langattomat käyttöliittymänimet saa listattua komennolla
ls /sys/class/net
tai komennolla
ip link
. Huomioi että
lo
on
rengas laite
ja sitä ei todellisuudessa käytetä yhteyksien muodostamiseen.
Langattomat laitenimet voidaan myös hakea käyttämällä
iw dev
. Katso myös
Network configuration/Wireless#Get the name of the interface
.
Jos sinun verkonkäyttöliittymää ei ole listalla varmista, että laitteen ajuri latautui onnistuneesti. Katso
Network configuration/Ethernet#Device driver
tai
Network configuration/Wireless#Device driver
.
Verkkokäyttöliittymien aktivointi ja käytöstä poistaminen
Verkkokäyttöliittymät voidaan ottaa pois käytöstä tai laittaa takaisin käyttöön komennolla
ip link set
käyttöliittymä
up|down
, katso
ip-link(8)
.
Tarkistaaksesi käyttöliittymän status
eth0
:
$ ip link show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN mode DEFAULT qlen 1000
...
UP
kohdassa
<BROADCAST,MULTICAST,UP,LOWER_UP>
indikoi käyttöliittymän toiminnasta, ei tuo myöhempi ilmenevistä
state DOWN
.
Huomautus
Jos oletus reitti on käyttöliittymän
eth0
kautta, sen alasottaminen poistaa myös reitin ja sen tuominen takaisin ylös ei automaattisesti luo uudelleen oletus reittiä. Katso
#Reititystaulu
sen uudelleen luonnille.
Staattinen IP osoite
Staattinen IP osoite voidaan konfiguroida kaikkein tavallisimmilla
verkonhallintajärjestelmillä
ja myös
dhcpcd
:n avulla.
Staattisen IP osoitteen konfiguroimiseen manuaalisesti, lisää IP osoite kuten kuvattu
#IP osoitteet
kohdassa, pohjusta
reititystaulu
ja
konfiguroi DNS palvelimet
.
IP osoitteet
IP osoitteita
hallitaan käyttämällä komentoa
ip-address(8)
.
Listaa IP osoitteet:
$ ip address show
Lisää IP osoite käyttöliittymään:
# ip address add
osoite/prefix_len
broadcast + dev
käyttöliittymä
Huomioi että:
osoite annetaan
CIDR notaationa
täydentämään
aliverkonpeitettä
+
on erikoismerkki joka pakottaa
ip
:n päättelemään aliverkonpeitteen
lähettävän osoitteen
IP osoitteesta.
Huomautus
Varmista että manuaalisesti annetut IP osoitteet eivät ole ristiriidassa DHCP:llä annetujen osoitteiden kanssa.
Poista IP osoite käyttöliittymästä:
# ip address del
osoite/prefix_len
dev
käyttöliittymä
Poista kaikki osoitteet jotka vastaavat kriteerejä, eli jostain erityisestä käyttöliittymästä:
# ip address flush dev
käyttöliittymä
Vinkki
IP osoitteet voidaan laskea
ipcalc:in avulla
(
ipcalc
).
Reititystaulu
reititystaulua
käytetään määrittämään jos yhteys IP osoitteeseen suoraan on saatavissa tai mitä yhdyskäytävää (reititin) tulisi käyttää. Jos mikään muu reitti ei täsmää IP osoitetta,
oletus yhdyskäytävää
käytetään.
Reititystaulua hallitaan komennolla
ip-route(8)
.
PREFIX
on joko CIDR notaatio tai
default
oletus yhdyskäytävälle.
Listaa IPv4 reitit:
$ ip route show
Listaa IPv6 reitit:
$ ip -6 route
Lisää reitti:
# ip route add
PREFIX
via
osoite
dev
käyttöliittymä
Poista reitti:
# ip route del
PREFIX
via
osoite
dev
käyttöliittymä
DHCP
DHCP
(lyhenne sanoista Dynamic Host Configuration Protocol) palvelin antaa asiakasohjelmalle dynaamisen IP osoitteen, aliverkkopeitteen, oletus yhdyskäytävän IP osoitteen ja mahdollisesti myös DNS nimi palvelimen.
DHCP käyttöä varten tarvitaan DHCP palvelin sisäisestä verkosta ja DHCP asiakasohjelma:
Asiakasohjelma
Paketti
Archiso
Huomioitavaa
Systemd yksiköt
dhcpcd
dhcpcd
Kyllä
DHCP, DHCPv6, ZeroConf, static IP
dhcpcd.service
,
dhcpcd@
käyttäjäliittymä
.service
ISC dhclient
dhclient
Kyllä
DHCP, DHCPv6, BOOTP, static IP
dhclient@
käyttäjäliittymä
.service
Huomautus
Kahta DHCP asiakasohjelmaa ei pitäisi käyttää samanaikaisesti.
Erillisen DHCP asiakasohjelman sijasta voi myös käyttää
verkonhallintajärjestelmää
, joista osalla on sisäänrakennettu DHCP asiakasohjelma.
Vaihtoehtoisesti,
iwd
sisältää sisäänrakennetun DHCP asiakasohjelman, jota voidaan käyttää joissakin konfiguraatioissa:
iwd#Enable built-in network configuration
.
Vinkki
Voit tarkistaa mikäli DHCP palvelin on käynnissä paketilla
dhcping
.
Kun IP:n muodostaminen on vielä prosessissa, jotain samanlaista voi suorittaa
watch -n 1 ping -c 1 archlinux.org
.
Palvelimet
Palvelin
Paketti
IPv4
IPv6
GUI
Käyttäjäliittymät
Varaston takapää(t)
Huomioitavaa
dhcpd
dhcp
Kyllä
Kyllä
Glass-ISC-DHCP
?
Tiedosto
dnsmasq
dnsmasq
Kyllä
Kyllä
Ei
?
Tiedosto
Myös DNS, PXE ja TFTP
Kea
kea
Kyllä
Kyllä
Kea-Anterius (Kokeellinen)
REST, RADIUS ja NETCONF
Tiedosto, MySQL, PostgreSQL ja Cassandra
Myös DNS
Verkonhallintajärjestelmät
Verkonhallintajärjestelmä mahdollistaa verkkoyhteyksien asetusten hallinnan niin sanotuissa verkkoprofiileissa helpottaakseen verkkojen vaihtelua.
Huomautus
Vaihtoehtoja on monia, mutta muista että jokainen on molemmin puoli pois sulkeva; kahta taustaprosessia ei saa suorittaa samaan aikaan.
Verkonhallintajärjestelmä
GUI
Archiso
[3]
CLI työkalut
PPP
tuki
(esim 3G modeemi)
DHCP asiakasohjelma
Systemd yksiköt
ConnMan
8 epävirallinen
Ei
connmanctl(1)
Kyllä (
ofono
AUR
kanssa)
sisäinen
connman.service
netctl
2 epävirallinen
Ei
netctl(1)
, wifi-menu
Kyllä
dhcpcd
tai
dhclient
netctl-ifplugd@
interface
.service
,
netctl-auto@
interface
.service
NetworkManager
Kyllä
Ei
nmcli(1)
,
nmtui(1)
Kyllä
sisäinen tai
dhclient
NetworkManager.service
systemd-networkd
Ei
Kyllä (
base
)
networkctl(1)
Ei
sisäinen
systemd-networkd.service
,
systemd-resolved.service
Aseta isäntänimi
Isäntänimi
on yksilöllinen nimi luotu tunnistamaan laite verkossa, joka on konfiguroitu tiedostossa
/etc/hostname
. katso
hostname(5)
ja
hostname(7)
yksityiskohdille. Tiedosto voi sisältää järjestelmän verkkotunnuksen, jos yhtään. Isäntänimen asettamiseksi,
muokkaa
/etc/hostname
sisältääksesi yhden rivin
isäntänimeni
:
/etc/hostname
isäntänimeni
Vinkki
Isäntänimen valitsemiselle, katso
RFC 1178
.
Vaihtoehtoisesti käyttäen
hostnamectl(1)
:
# hostnamectl set-hostname
isäntänimeni
Väliaikaisesti asettaaksesi isäntänimen (uudelleen käynnistykseen saakka), käytä
hostname(1)
paketista
inetutils
:
# hostname
isäntänimeni
Laittaaksesi "sievän" isäntänimen ja muuta koneen metadataa, katso
machine-info(5)
.
Paikallinen isäntänimen resoluutio
myhostname
Name Service Switch
(NSS)
systemd
moduuli tarjoaa paikallisen isäntänimen resoluution ilman muokkausta tiedostossa
/etc/hosts
(
hosts(5)
). Se on aktivoituna oletukselta.
Jotkin asiakasohjelmat voivat kumminkin silti luottaa
/etc/hosts
, katso
[4]
[5]
esimerkeille.
Konfiguroidaksesi
hosts
tiedostoa, lisää seuraavat rivit
/etc/hosts
:
127.0.0.1        localhost
::1              localhost
127.0.1.1
isäntänimeni
.localdomain
isäntänimeni
Huomautus
Isäntänimien/peitenimien järjestys joka seuraa IP osoitetta
/etc/hosts
on merkityksellinen. Ensimmäistä merkkijonoa pidetään canonical isäntänimenä ja listään isäntä domainilla, missä domaini komponentit erotellaan toisistaan pisteellä (eli
.localdomain
yllä). Kaikkia muita peitenimiä samalla rivillä pidetään peiteniminä (engl. alias). Katso
hosts(5)
lisätiedolle.
Tämän seurauksena järjestelmä selvittää molempiin kirjauksiin:
$ getent hosts
127.0.0.1       localhost
127.0.0.1       localhost
127.0.1.1
isäntänimeni
.localdomain
isäntänimeni
Pysyvällä IP osoitteella olevassa järjestelmässä tulisi käyttää tätä pysyvää IP osoitetta
127.0.1.1
sijasta.
Paikallisen verkon isäntänimen resoluutio
Liittääkseen kone LAN verkkoon isäntänimen kautta voidaan:
muokata
/etc/hosts
tiedostoa jokaiselle koneelle LAN verkossa, katso
hosts(5)
asettaa
DNS palvelin
selvittämään isäntänimen ja pistämällä LAN laitteet käyttämään sitä (esimerkiksi
#DHCP
:n kautta)
tai helpolla tavalla: käyttää
Zeroconf
palvelua:
Isäntänimen resoluutio Microsoftin
NetBIOS:sin
kautta.
Samba
Linuxissa hoitaa saman. Tämä tarvitsee vain
nmb.service
. Tietokoneet, joissa on Windows, macOS, tai Linux ja
nmb
pyörimässä, löytävät tämän koneen.
Isäntänimen resoluutio
mDNS:sän
kautta. Tulee joko
nss_mdns
Avahi
:n kautta (katso
Avahi#Hostname resolution
asetuksen varalta) tai
systemd-resolved
:in kautta. Tietokoneet, joissa on macOS tai Linux Avahi tai systemd-resolved pyörimässä, pystyvät löytämään tämän koneen. Vanhempi Win32 API ei tue mDNSää, joka voi estää pääsyn joiltain vanhoilta Windows ohjelmilta.
Vinkkejä ja konsteja
Vaihda käyttöliittymän nimeä
Huomautus
Kun nimikaavaa muutetaan, pitää myös päivittää kaikki verkkoon liittyvät konfiguraatio tiedostot ja itsetehdyt systemd yksikkötiedostot vastaamaan muutosta.
Laitteen nimi voidaan vaihtaa määrittämällä sen nimi manuaalisesti udev-rule:n avulla. Esimerkiksi:
/etc/udev/rules.d/10-network.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="net1"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ee:dd:cc:bb:aa", NAME="net0"
Nämä säännöt tulevat käyttöön automaattisesti bootatessa.
Muutama huomioitava asia:
Jos halutaan esittää MAC osoite jokaisesta kortista, käytä tätä komentoa:
cat /sys/class/net/
laitteen_nimi
/address
Muista käyttää pieniä kirjaimia heksaluvussa udev säännöissä. Se ei pidä isoista kirjaimista.
Jos verkkokortilla on dynaaminen MAC osoite, voidaan käyttää
DEVPATH
muuttujaa, esimerkiksi:
/etc/udev/rules.d/10-network.rules
SUBSYSTEM=="net", DEVPATH=="/devices/platform/wemac.*", NAME="int"
SUBSYSTEM=="net", DEVPATH=="/devices/pci*/*1c.0/*/net/*", NAME="en"
DEVPATH
kaikista sillä hetkellä liitetyistä korteista, katso mihin symlinks polussa
/sys/class/net/
johtaa. Esimerkiksi:
file /sys/class/net/*
/sys/class/net/enp0s20f0u4u1: symbolic link to ../../devices/pci0000:00/0000:00:14.0/usb2/2-4/2-4.1/2-4.1:1.0/net/enp0s20f0u4u1
/sys/class/net/enp0s31f6:     symbolic link to ../../devices/pci0000:00/0000:00:1f.6/net/enp0s31f6
/sys/class/net/lo:            symbolic link to ../../devices/virtual/net/lo
/sys/class/net/wlp4s0:        symbolic link to ../../devices/pci0000:00/0000:00:1c.6/0000:04:00.0/net/wlp4s0
Laitteen polun pitäisi vastata sekä uutta että vanhaa laitteen nimeä, sillä se sääntö voidaan suorittaa useammin kuin vain kerran bootatessa. Esimerkiksi, toisessa säännössä,
"/devices/pci*/*1c.0/*/net/enp*"
olisi väärin, koska se lopettaa hakemisen kun nimi on vaihdettu
en
. Vain järjestelmän oletus-sääntö pyörähtää toisen kerran, aiheuttaen nimen muutoksen takaisin kuten esimerkiksi
enp1s0
.
Jos käytetään USB verkkolaitetta ( kuten Android puhelimen tethering), jolla on dynaaminen MAC osoite ja halutaan myös käyttää muita USB portteja, voitaisiin ennemmin käyttää sääntöä, joka vastaa riippuen tavarantoimittajasta tai tuotteen ID:stä:
/etc/udev/rules.d/10-network.rules
SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="12ab", ATTRS{idProduct}=="3cd4", NAME="net2"
Testatakseen
sääntöjä, ne voidaan käynnistää suoraan käyttäjätilasta, esimerkiksi
udevadm --debug test /sys/class/net/*
avulla. Ensin pitää muistaa ottaa alas käyttöliittymä, jota ollaan nimeämässä (esim.
ip link set enp1s0 down
).
Huomautus
Kun valitaan staattisia nimiä,
nimiä jotka vastaavat tyyliä "eth
X
" ja "wlan
X
" pitäisi välttää
, sillä tämä saattaa johtaa kilpailulliseen tilaan kernelin ja udevin välillä boottauksen aikana. Sen sijaan, on parempi käyttää käyttöliittymän nimiä, joita kerneli ei käytä oletukselta, esim.:
net0
,
net1
,
wifi0
,
wifi1
. Enemmän tietoa löytyy
systemd:n
dokumentaatiosta.
Palauta perinteisiin käyttöliittymän nimiin
Jos perinteisemmät käyttöliittymänimet kuten eth0 ovat parempia omaan käyttöön,
ennalta arvattavat nimet
voidaan poistaa käytöstä peittämällä udev sääntö:
# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Vaihtoehtoisesti, lisää
net.ifnames=0
kernelin parametreihin
.
Kannan tutkiminen
ss
on työkalu verkkoporttien tutkimiseen ja on osana
iproute2
pakettia. Sillä on samallainen toiminnallisuus verraten
vanhentuneeseen
netstat työkaluun.
Yleisiä käyttökohteita ovat:
Näytä kaikki TCP Kannat palvelunimillä:
$ ss -at
Näytä kaikki TCP Kannat porttien numeroilla:
$ ss -atn
Näytä kaikki UDP Kannat:
$ ss -au
Lisätietoa löytyy
ss(8)
manuaalisivulta.
Vianmääritys
Katso myös
Linuxin verkon ylläpitäjän käsikirja
Debian referenssi: Verkon pohjustus
RHEL7: Verkkotyöskentelyn käsikirja
Linux kodin verkkotyöskentely
Linux verkkotyöskentely pinon valvominen ja säätö: Datan vastaanottaminen
Linux verkkotyöskentely pinon valvominen ja säätö: Datan lähettäminen
Paketin matkan jäljittäminen käyttäen tracepointteja, perf ja eBPF