De oude manier: eenvoudig maar onvoorspelbaar
Bij elke boot wijst Linux elke Network Interface Card (NIC) een naam toe tijdens het
initialisatieproces van de kernel. In het verleden waren deze NIC namen gewoon "ethX" waarbij "X"
een nummer is dat in wezen de volgorde was waarin de NIC door de kernel werd ontdekt tijdens het
opstartproces.
De nieuwe manier: complex maar voorspelbaar
Vanaf v197 system/udev worden automatisch voorspelbare, stabiele netwerkinterfacenamen
toegewezen aan alle lokale Ethernet-, WLAN- en WWAN-interfaces. Dit is een afwijking van het
traditionele interface naamgevingsschema ("eth0", "eth1", "wlan0", ...), maar zou echte problemen
moeten oplossen.
De volgende verschillende naamgevingsschema's voor netwerkinterfaces worden nu door udev
native ondersteund:
Namen met Firmware/BIOS-indexnummers voor boordapparatuur (voorbeeld: eno1)
Namen waarin Firmware/BIOS-firmware is opgenomen, voorzien van PCI Express-
hotpluggleufindexnummers (voorbeeld: ens1)
Namen waarin de fysieke/geografische locatie van de connector van de hardware is
opgenomen (voorbeeld: enp2s0)
Namen waarin de interfaces MAC-adres zijn opgenomen (voorbeeld: enx78e7d1ea46da)
Klassieke, onvoorspelbare kernel-native ethX naamgeving (voorbeeld: eth0)
Benaming schema
Two character prefixes based on the type of interface:
en — Ethernet
ib — Infiniband (introduced in systemd v240)
sl — serial line IP (slip)
wl — wlan
ww — wwan
,types van namen
b<nummer>
o BCMA-kernnummer van de bus
c<bus_id>
o bus id van een gegroepeerd CCW of CCW-apparaat, met alle voorloopnullen gestript
[s390]
o<index>[n<phys_port_naam>|d<dev_port>]
o on-board apparaat indexnummer
s<slot>[f<function>][n<phys_port_naam>|d<dev_port>].
o indexnummer van de hotpluggleuf
x<MAC>
o MAC-adres
[P<domein>]p<bus>s<slot>[f<functie>][n<phys_port_naam>|d<dev_port>].
o geografische locatie PCI
P<domein>]p<bus>s<slot>[f<functie>][u<port>][...][c<config>][i<interface>].
o USB-poortnummerketen
v<slot>
o VIO slotnummer (IBM PowerVM)
a<vendor><model>i<instance>
o Platform bus ACPI instance id
Usb netwerkkaart
Commando: ip add show dev <x>
Uitzetten van de netwerkkaart:
1. Maak uw eigen handmatige naamgevingsschema, bijvoorbeeld door uw interfaces
internet0, of lan0 te benoemen. Maak daarvoor uw eigen udev-regelsbestand aan en stel de
naamgeving van de apparaten in. Zorg ervoor dat u het voor het standaard beleidsbestand
bestelt, bijvoorbeeld door het /etc/udev/rules.d/70-my-net-names.rules te benoemen.
2. Wijzig het standaard beleidsbestand, voor het kiezen van een ander naamgevingsschema,
bijvoorbeeld voor het standaard benoemen van alle interfacenamen naar hun MAC-adres: cp
/lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules, bewerk
dan het bestand daar en wijzig de regels indien nodig. Zie systemd.link(5) voor meer
informatie.
3. Geef de net.ifnames=0 door op de kernel commandolijn.
,Hardware van een netwerkkaart:
Een computer kan worden voorzien van één of meer Network Interface Cards (NIC's). Onder Linux
deze apparaten worden aangesproken met hun logische namen.
Zo kan bijvoorbeeld de eerste netwerkkaart worden geadresseerd via eth0, de tweede via eth1, enz.
Het is zelfs mogelijk om meerdere configuraties aan een kaart toe te voegen, bijvoorbeeld eth0 kan
verschijnen als eth0:1, eth0:2, enz. met elk een eigen configuratie.
Commandos:
Lspci Het lspci commando geeft een lijst van alle PCI-apparaten.
Ishw Het lshw commando kan gedetailleerde informatie over de hardwareconfiguratie
van de machine, inclusief de netwerkkaarten, opvragen. Typ het volgende
commando:
/proc/net/dev De dev pseudo-file bevat informatie over de status van het netwerkapparaat. Dit
geeft het aantal ontvangen en verzonden pakketten, het aantal fouten en
botsingen en andere basisstatistieken weer.
Netwerkkaarten controleren
De ifup- en ifdown-commando's kunnen worden gebruikt om netwerkinterfaces te
configureren op basis van interface-definities in het bestand /etc/netwerk/interfaces.
Ifup
Het uitvoeren van het ifup commando brengt een netwerkinterface naar boven, waardoor deze
beschikbaar is voor het verzenden en ontvangen van gegevens.
Ifdown
als er een netwerkinterface naar beneden wordt gehaald, waardoor deze in een staat komt te
verkeren waarin hij geen gegevens kan verzenden of ontvangen.
ifquery
Over troubleshooting gesproken, ifquery analyseert de configuratie van een netwerkinterface, zodat
u snel antwoord kunt krijgen op vragen over hoe deze op dit moment is geconfigureerd.
,Wat is het verschil tussen 'ifconfig up eth0' en 'ifup eth0'?
Zowel 'ifconfig' als 'ifup' en 'ifdown' kunnen netwerkinterfaces activeren. Maar de laatste heeft de
voorkeur:
"ifconfig" regelt direct de netwerkinterfaces, maar "ifup" of "ifdown" voert
"/etc/sysconfig/netwerkscripts/ifup-" of "ifdown-" scripts uit. De scripts gebruiken een ip
commando.
"ifconfig" en "ip" commando's gebruiken ioctl() om netwerkinterfaces te activeren of te
deactiveren. "ifconfig" markeert de netwerkinterfaces "IFF_UP | IFF_RUNNING", maar "ip"
markeert dat "IFF_UP".
Een "ifconfig up eth0" activeert eth0 maar stelt geen IP adressen in, een "ifup eth0" stelt
echter wel IP adressen of andere opties in gebaseerd op een ifcfg-eth0, omdat de "ifup" een
"ifup-eth*" script gebruikt.
Het ifup commando zal ook alle statische routes configureren die geconfigureerd zijn in de
network-scripts directory. Het ifconfig commando zal dat niet doen.
Netwerk- en interface-informatie
LAN-statistieken
Het ip -s link commando geeft u naast het MAC-adres ook cumulatieve statistieken (tellers).
Als u de -s optie niet opneemt, worden de interface-instellingen gerapporteerd.
Het ifstat-commando geeft u recente koersen, en met de opdrachtregelopties kunt u het tijdvenster
en de periode voor de terugkerende meting regelen.
Dit kan je installeren met het commando apt install ifstat
Mac-addressen verkrijgen
Gebruik ip neigh om de mappings tussen MAC en zowel IPv4 als IPv6 te zien. Of u kunt vragen om
slechts één IP-versie met de opties -4 en -6
IP adressen verkrijgen
Gebruik nu ip addr. U kunt vragen om slechts één interface of slechts één IP-versie met de opties -4
en -6. En eventueel met een specifieke NIC
Routing
Gebruik ip-route om standaard alleen de IPv4-routeringstabel te krijgen. Voeg -6 toe om IPv6 te
krijgen. Ja, de oude route en netstat -r commando's hebben de kolommen mooi uitgelijnd. Maar de
kosten daarvan waren belachelijk lange lijnen met IPv6, zoiets als 130 kolommen. En bovendien zijn
de net-tools commando's nu gewoonweg niet meer betrouwbaar.
TCP/UDP activeit
Dit is de enige die geen ip gebruikt, maar ss -a. UDP eerst, dan TCP, in vrijwel hetzelfde formaat als de
oude netstat, behalve dat het standaard geen IP adressen naar hostnamen oplost. Er kan gevraagd
worden om alleen UDP (-u), alleen TCP (-t), indien mogelijk IP adressen op te lossen naar hostnamen
(-r), alleen de luisterdiensten (-l), of combinaties.
,Lsof -i
Lsof is een Unix-specifiek diagnostisch hulpmiddel. De naam staat voor LiSt Open Files.
Netwerkverbindingen zijn ook bestanden. We kunnen er dus informatie over vinden door gebruik te
maken van lsof.
U kunt alle geopende netwerkverbindingen opnoemen met de optie '-i'.
Lsof is een Unix-specifiek diagnostisch hulpmiddel. De naam staat voor LiSt Open Files.
Netwerkverbindingen zijn ook bestanden. We kunnen er dus informatie over vinden door gebruik te
maken van lsof.
IP Configuratie
Statische IPv4-configuratie
Tijdelijk
Permanent
In oudere Linux versies werden de meeste IP instellingen voor uw netwerkkaart(en) gevonden in
/etc/network/interfaces. Dit bestand kan eenvoudig bewerkt worden met uw tekstverwerker, maar
vergeet niet dat u daarvoor root rechten nodig heeft. Sommige Linux-distributies kunnen dit nog
steeds gebruiken.
Deze configuratiemethode is in recente versies van Ubuntu en de meeste andere distributies
vervangen door netplan.
Statische IPv6 Configuratie
Tijdelijk
Permanent
U kunt netplan ook gebruiken om IPv6-adressen te configureren:
renderer: networkd
ethernets:
eth0:
accept-ra: no
addresses:
- 193.33.61.xxx/24
- 2a00:7b80:454:2000::xxx/48
gateway4: 193.33.61.1
gateway6: 2a00:7b80:454::1
nameservers:
addresses: [89.207.128.252, 89.207.130.252]
,Dynamische IPv44 configuratie
Tijdelijk
Tijdelijke dhcp-configuratie gebeurt door de dhc-client
Het configureren van een netwerkkaart met DHCPv6 gebeurt via de volgende configuratieregels.
In /etc/netwerk/interfaces.
De regel 'iface <interface_name> inet manual' schakelt de <interface_name> uit, er wordt geen IPv4
configuratie gebruikt
Hostnaam
Lezen van de hostnaam:
Vroeger:
hostname
OR
cat /etc/hostname
Tegenwoordig:
Gebruik het hostnamectl commando om de huidige systeemhostnaam op te halen
Hostnaam veranderen
Het hostnamectl commando kan ook gebruikt worden om de huidige hostnaam op Ubuntu 18.04
Bionic Beaver in te stellen of te updaten. Het volgende commando zal bijvoorbeeld de statische
hostnaam van het systeem veranderen in webserver1: # hostnamectl set-hostname webserver1
,Name Resolution
Basis DNS-tests
nslookup
nslookup, wat staat voor "name server lookup", is een handig hulpmiddel om informatie over een
benoemd domein te achterhalen.
Standaard zal nslookup een domeinnaam vertalen naar een IP-adres (of vice versa).
Om de DNS-servers op een Linux-machine te configureren, moet u het bestand /etc/resolv.conf NIET
aanpassen. U kunt hier tot 3 DNS-servers invoeren. Deze worden doorzocht op domeinnamen, in de
volgorde waarin ze staan vermeld, totdat er een resolutie is. U vermeldt deze DNS-servers achter de
term nameserver telkens in een nieuwe regel, in volgorde van belangrijkheid.
Na het zoeken naar de term kunt u een zoeklijst voor het zoeken naar hostnamen weergeven. Een
nslookup naar www geeft www.example.org, in het geval hieronder, en als dat niet het geval is, kijk
dan of www.example.net bestaat, enzovoort.
Bij de term domein kunt u uw lokale domeinnaam invoeren, zoals mycompany.com.
Merk op dat als DHCP is ingesteld op een van uw NIC's, dhclient het /etc/resolv.conf bestand zal
overschrijven, elke keer dat een IP adres wordt opgevraagd.
, Chapter 2: SystemD
Intro
Systemctl start nginx
SystemD is een verbetering op Systemvinit
Bijkomende componenten
Journald
systemd-journald is een daemon die verantwoordelijk is voor de registratie van gebeurtenissen, met
als bijlage alleen binaire bestanden. De systeembeheerder kan kiezen of hij systeemgebeurtenissen
wil vastleggen met systemd-journald, syslog-ng of rsyslog.
loginD
systemd-logind is een daemon die de gebruikerslogins en -zetels op verschillende manieren beheert.
Het is een geïntegreerde login manager die multiseat verbeteringen biedt en vervangt ConsoleKit,
dat niet langer wordt onderhouden. Voor X11 display managers vereist de overstap naar logind een
minimale hoeveelheid porting.
netwerkd
networkd is een daemon voor de configuratie van de netwerkinterfaces, waarbij statisch toegewezen
adressen, brugconfiguratie, DHCP-server voor IPv4-hosts en VXLAN-ondersteuning worden
ondersteund.
tmpfiles
systemd-tmpfiles is een hulpprogramma dat zorgt voor het aanmaken en opschonen van tijdelijke
bestanden en mappen. Het wordt normaal gesproken één keer uitgevoerd bij het opstarten en dan in
gespecificeerde intervallen. Meer info hier en voorbeelden hier.
Timedated
systemd-timed is een daemon die kan worden gebruikt om tijdgerelateerde instellingen te
controleren, zoals de systeemtijd, de systeemtijdzone of de keuze tussen UTC- en lokale
tijdzonesysteemklok. Het is toegankelijk via D-Bus.
udevd
udev is een device manager voor de Linux-kernel, die de /dev-directory en alle acties van de
gebruikersruimte afhandelt bij het toevoegen/verwijderen van apparaten, inclusief het laden van de
firmware.
libudev
Het is de standaardbibliotheek voor het gebruik van udev, waardoor applicaties van derden udev-
bronnen kunnen opvragen.
systemd-boot
systemd-boot is een bootmanager, voorheen bekend als gummiboot.
,Logging
systemd-journald is een systeemdienst die logboekgegevens verzamelt en opslaat
Het creëert en onderhoudt gestructureerde, geïndexeerde tijdschriften op basis van
logboekinformatie die uit verschillende bronnen wordt ontvangen:
Kernel logboekberichten, via kmsg
Eenvoudige systeemlogboekberichten, via de libc syslog-oproep
Gestructureerde systeemlogboekberichten via de native Journal API
Standaarduitvoer en standaardfout van service-eenheden
Auditgegevens, afkomstig van het kernel-audit-subsysteem
De daemon zal impliciet tal van metadatavelden verzamelen voor elke logboekbericht op een veilige
en onfeilbare manier.
De logboekgegevens die door het journaal worden verzameld, zijn voornamelijk gebaseerd op tekst,
maar kunnen indien nodig ook binaire gegevens bevatten.
Standaard slaat het journaal de loggegevens op in /run/log/journal/.
Aangezien /run/ vluchtig is, gaan de loggegevens verloren bij het herstarten.
Om de gegevens blijvend te maken is het voldoende om /var/log/journal/ aan te maken waar het
systeemjournaal de gegevens vervolgens opslaat
Systeemtijd wijzigen
Een van de voordelen van het gebruik van een binair journaal voor logboekregistratie is de
mogelijkheid om logboekrecords naar believen in UTC of lokale tijd te bekijken. Standaard zal
systemd de resultaten in lokale tijd weergeven.
Daarom zullen we, voordat we met het logboek beginnen, ervoor zorgen dat de tijdzone correct is
ingesteld. De systemd suite komt eigenlijk met een tool genaamd timedatectl die hierbij kan helpen.
1. Kijk eerst welke tijdzones beschikbaar zijn met de list-timezones optie
2. Dit geeft een overzicht van de beschikbare tijdzones op uw systeem. Wanneer u een locatie
vindt die overeenkomt met de locatie van uw server, kunt u deze instellen met behulp van de
set-timezone optie
Om er zeker van te zijn dat uw machine nu de juiste tijd gebruikt, gebruikt u het timedatectl
commando alleen, of met de statusoptie. de eerste regel moet de juiste tijd weergeven.
, Basis logboekweergave
Om de logs te zien die de journald daemon heeft verzameld, gebruik je het journalctl commando.
De meest elementaire die je dagelijks zou kunnen gebruiken, is de -b vlag. Deze laat u alle
journaalposten zien die sinds de meest recente herstart zijn verzameld.
Wanneer het opslaan van vorige boots is ingeschakeld op uw server, geeft journalctl een aantal
commando's om u te helpen werken met boots als een eenheid van divisie. Om de boots te zien die
journald kent, gebruik je de --list-boots optie met journalctl
Terwijl het zien van logboekgegevens per boot ongelooflijk nuttig is, kan het zijn dat u vaak
tijdsvensters wilt opvragen die niet goed aansluiten op de boottime. Dit kan vooral waar zijn wanneer
het gaat om langlopende servers met een aanzienlijke uptime.
U kunt filteren op willekeurige tijdslimieten met behulp van de --since en --until opties, die de
ingangen die worden weergegeven beperken tot die na of voor de gegeven tijd, respectievelijk.
De tijdwaarden kunnen in verschillende formaten komen. Voor absolute tijdwaarden moet u het
volgende formaat gebruiken: JJJJ-MM-DD HH:MM:SS. Bij een missende optie word die zelf ingevuld
tot 00:00:00.
Voorbeeld: journalctl --sinds "2017-11-22 01:00:00".
Je kan ook woorden gebruiken. Dus: journalctl –sice yesterday
Service Unit File
Elk programma dat door systemd wordt gestart, heeft een definitiebestand, een zogenaamde service
unit file. Dit bevat bepaalde attributen die systemd kan gebruiken om het programma te lokaliseren
en te starten, en om een aantal van zijn gedrag te definiëren.
sudo chmod 640 niet vergeten
.service extensie
Beschrijving: Dit is een tekstbeschrijving van uw dienst.
Wants: Onze service wil-maar vereist niet - het netwerk moet opstaan voordat onze service
wordt opgestart.
After: Een lijst met unitnamen die moeten worden gestart nadat deze service met succes is
gestart, als ze nog niet actief zijn.
Type: Simpel. systemd zal deze service als gestart beschouwen zodra het door ExecStart
gespecificeerde proces is gestart.
ExecStart: Het pad naar het proces dat gestart moet worden.
Herstart: Wanneer en of de service opnieuw gestart moet worden. We hebben het ingesteld
op "on-failure".
HerstartSec: Hoe lang moeten we wachten voordat we de service proberen te herstarten.
Deze waarde is in seconden.
KillMode: Definieert hoe systemd het proces moet doden als we systemctl vragen de service
te stoppen. We hebben deze instelling op "proces". Dit zorgt ervoor dat systemd alleen het
SIGTERM signaal op het hoofdproces gebruikt. Als onze service een niet-triviaal programma
was in plaats van een eenvoudig script, zouden we dit op "gemengd" zetten om er zeker van
te zijn dat alle gepawnde processen ook worden beëindigd.
WantedBy: We hebben deze ingesteld op "multi-user.target", wat betekent dat de service
gestart moet worden zolang het systeem in een staat is waarin meerdere gebruikers kunnen
inloggen, ongeacht of er een grafische gebruikersinterface beschikbaar is of niet.
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller jeroen_weber. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $5.93. You're not tied to anything after your purchase.