Network configuration (Suomi)
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.
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:
- dynaaminen IP osoite: käytä DHCP:tä
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).
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
.
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 pakottaaip
: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ä
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
|
- 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.
- 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.
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ä (ofonoAUR 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
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
/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 janmb
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.
- Isäntänimen resoluutio Microsoftin NetBIOS:sin kautta. Samba Linuxissa hoitaa saman. Tämä tarvitsee vain
Vinkkejä ja konsteja
Vaihda käyttöliittymän nimeä
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
).
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