- ifconfig og route tilhører net-tools og lar deg konfigurere grensesnitt, IP-adresser og ruter, men de regnes som foreldede i mange distribusjoner.
- iproute2-pakken, med ip-kommandoen, forener og utvider disse funksjonene, og administrerer grensesnitt, adresser, ruter, ARP, QoS, tunneler og flere rutingstabeller.
- iproute2 forenkler avansert ruting med IP-rute og IP-regel, noe som tillater flere tabeller, lastbalansering mellom gatewayer og kilde- og destinasjonsbaserte policyer.
- Overgangen til iproute2 gir mer kraft og fleksibilitet, selv om det krever at man lærer en ny syntaks og tilpasser eldre skript basert på ifconfig og route.
Administrer nettverksgrensesnitt og IP-ruter på riktig måte Det er en av de grunnleggende oppgavene du må ta på deg før eller siden hvis du administrerer systemer. LinuxI mange år, den kommandoer classic ifconfig y route De har vært den perfekte verktøykassen for å konfigurere IP-adresser, hente kort eller definere gatewayen.
I dag, derimot, Det gamle settet med nettverktøy regnes som foreldet. i mange moderne distribusjoner, som har erstattet den med suiten iproute2 og dens stjernekommando ipLikevel, på eldre servere, undervisningsmateriell, eldre manus eller kurs av hacking y Cybersecurity, du fortsetter å finne ifconfig y route overalt, slik at du forstår hvordan de fungerer (og hvordan de oversettes til ip) er grunnleggende.
Fra ifconfig og rute til iproute2-pakken

Kommandoene ifconfig y rute De er en del av den historiske pakken nettverktøy, arvet fra verden UnixDe har blitt konfigurert nettverksgrensesnitt, IP-adresser, masker, gatewayer og statiske ruter i flere tiår, sammen med andre verktøy som arp, netstat, iptunnel, mii-tool o rarp.
med tidenNettverksbehovene i Linux har blitt mer komplekse: IPv6, QoS, lastbalansering, flere rutingstabeller, tunneler, VLAN-er VPN, nettverksnavneromDen gamle net-tools-pakken kom til kort og var praktisk talt frosset i funksjonalitet.
For å dekke over alt dette dukket det opp iproute2, en samling moderne verktøy der kommandoen er sentralt ipMed denne ene binærfilen kan du utføre oppgaver som tidligere krevde kombinasjon. hviskonfig, rute, arp, netstat, iptunnel og selskap, pluss mange avanserte funksjoner som nettverktøy aldri drømte om å støtte.
I praksis, iproute2 erstatter nettverktøy fullstendigDet er derfor distribusjoner som Debian, nyere Ubuntu-versjoner og mange systemd-baserte distribusjoner markerer net-tools som "utdatert" og ikke lenger installerer det som standard. Likevel, ifconfig og route finnes fortsatt i mange miljøer, spesielt formative eller eldre fag, så det er lurt å mestre begge verdener.
ifconfig-kommando: grunnleggende grensesnittkonfigurasjon
Kommandoen ifconfig (grensesnittkonfigurator) har tradisjonelt blitt brukt til å Vise og endre innstillinger for nettverksgrensesnittDen lar deg initialisere et kort, tilordne det en IP-adresse, aktivere eller deaktivere det, endre parametere som MTU eller promiskuøs modus, osv.
Den generelle syntaksen til ifconfig Det er veldig enkelt: ifconfig [opciones] [interfaz] å vise informasjon, og ifconfig interfaz [configuración] [up|down] når vi vil endre parametere eller heve/senke kortet.
Hvis du kjører den uten argumenter, `ifconfig` viser alle aktive grensesnitt med sin IP, maske, kringkasting, adresse MACMTU og trafikkstatistikk:
/sbin/ifconfig
Til Se også inaktive grensesnitt (for eksempel et kort som finnes, men er deaktivert), legges alternativet til -asom lister opp absolutt alt:
ifconfig -a
Når du vil fokusere på et enkelt, konkret grensesnittBare oppgi navnet. For eksempel, for å se detaljer om hoved-Ethernet-tilkoblingen:
ifconfig eth0
På mange moderne maskiner er ikke navnet lenger eth0men noe sånt som ens33, enp0s3 eller lignendeMen ideen er den samme: hviskonfig Den gir deg IP-adressen, MAC-adressen og statusen (UP, RUNNINGosv.), subnettmasken og annen nyttig informasjon.
Vanlige operasjoner med ifconfig
En av de vanligste oppgavene med nettverktøy er aktivere eller deaktivere et nettverksgrensesnitt. Med ifconfig Det gjøres slik:
# Levantar (activar) la interfaz
ifconfig ens33 up
# Bajar (desactivar) la interfaz
ifconfig ens33 down
En annen klassisk operasjon er tilordne en IPv4-adresse og dens subnettmaske. Med ifconfig IP-adressen angis, etterfulgt av masken (og eventuelt kringkasting):
# Asignar IP y máscara
ifconfig eth0 193.144.84.77 netmask 255.255.255.0 broadcast 193.144.84.255 up
Kommandoen tillater også juster MTU (maksimal transmisjonsenhet)Det vil si den maksimale størrelsen på datagrammet i byte som kan sirkulere gjennom det grensesnittet:
# Cambiar la MTU a 500 bytes
ifconfig eth0 mtu 500
Videre ifconfig kan endre grensesnittets "flagg", for eksempel å aktivere promiskuøs modus for å fange opp all trafikk, deaktivere ARP, eller til og med endre MAC-adressen hvis enheten støtter det:
# Activar modo promiscuo
ifconfig eth0 promisc
# Desactivar ARP
ifconfig eth0 -arp
# Cambiar la dirección hardware (MAC)
ifconfig eth0 hw ether 52:54:00:12:34:56
Angående IPv6, ifconfig kan også vise og håndtere protokolladresser i versjon 6Og i sin natur tillater IPv6 flere adresser på samme grensesnitt uten behov for Triks av aliaser, noe som net-tools støtter perfekt.
IP-aliaser og andre relaterte verktøy
Et klassisk trekk i gamle omgivelser er IP-aliasingsom tillater tildeling flere IPv4-adresser til samme kort ved bruk av identifikatorer av typen dispositivo:número:
# Primera IP en la interfaz
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
# Alias con otra red en la misma tarjeta
ifconfig eth0:0 192.168.10.1 netmask 255.255.255.0 up
route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0
Sammen med ifconfig inkluderer net-tools-økosystemet andre verktøy for operasjoner på nivå 2 og 3, som for eksempel ifup/ifdown for å aktivere eller deaktivere grensesnitt ved å bruke distribusjonens konfigurasjonsfiler, eller iwconfig for WiFi-nettverk:
# Desactivar una interfaz según configuración del sistema
ifdown eth0
# Configurar parámetros WiFi
iwconfig eth1 essid "Mi Red"
I moderne miljøer har alt dette blitt erstattet av verktøy på høyere nivå som NetworkManager, Wicked, netplan, ConnMan eller WicdMange av dem har et grafisk grensesnitt og er designet for brukere som er mindre vant til terminal.
rutekommando: klassisk administrasjon av rutingstabeller
Den andre søylen i nettverktøy er kommandoen rute, ansvarlig for vise og manipulere kjernens IPv4-rutingstabellMed den kan du liste opp ruter, legge til eller fjerne statiske ruter og definere standard gateway.
For å vise rutingstabellen i et lesbart format, er vanlig praksis å bruke route -n, som viser uløste numeriske vertsnavnadresser (veldig nyttig i nettverksadministrasjon):
/sbin/route -n -ee
Flaggene i hver rad angir rutetypen: U (aktivt grensesnitt), H (vertsdestinasjon), G (bruk gatewayen), D (dynamisk opprettet), M (dynamisk modifisert), R (rehabilitert) eller ! (rute avvist).
Til legge til eller slette statiske ruter, ruten bruker syntaksen:
route [add|del] [default] [-net|-host] target \
[netmask Nm] [gw Gw] [opciones] [[dev] If]
For eksempel for nå nettverket 192.168.0.0/24 gjennom eth1:
route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
Og for å definere standard gateway (som alt som ikke går til kjente nettverk vil gå ut gjennom), gjøres det slik:
route add default gw 10.0.2.2
Hvis du vil at et eksternt nettverk skal være tilgjengelig ved hjelp av en mellomliggende gangveiDu definerer det også med `rute`. For eksempel nettverket 172.16.0.0/24 gjennom verten 192.168.0.1:
route add -net 172.16.0.0 netmask 255.255.255.0 gw 192.168.0.1
For at dette siste utstyret faktisk skal kunne rute trafikk mellom grensesnitt, er det nødvendig aktiver IP-videresending i kjernen:
echo 1 > /proc/sys/net/ipv4/ip_forward
Klassiske nettverksdiagnoseverktøy
I tillegg til ifconfig og route, tilbyr net-tools-pakken og tilhørende verktøy vanlige diagnostiske kommandoer som fortsatt er i kraft, slik som netstat, arp, ping, traceroute eller mii-tool.
Kommandoen netstat tillater Vis aktive tilkoblinger, rutingstabeller, grensesnittstatistikk og bruk etter protokoll. For eksempel, netstat -i tilbyr et sammendrag som ligner på ifconfig -s, Og netstat -r viser rutingstabellen (tilsvarer route med alternativer).
Kommandoen arp manipulere systemets ARP-cache: Viser oppføringer, sletter eller legger til statiske oppføringerEn typisk liste ville være:
arp
arp -a hostname
arp -i eth0
arp -d hostname
arp -s hostname hw_addr
For å sjekke tilkobling på IP-nivå, ping sender ICMP-pakker ECHO_REQUEST og måler tur-retur-tiden. Det er viktig å huske på at Mange brannmurer blokkerer ICMPSå fraværet av et svar betyr ikke alltid at verten er nede.
Når du vil se hvor en pakke «reiser» til den når destinasjonen, vises det traceroutesom er avhengig av TTL-feltet i IP-headeren og ICMP-svar av typen TIME_EXCEEDED. Det finnes varianter som tcptraceroute eller traceproto, som bruker andre protokoller for å omgå visse restriksjoner.
Til slutt, for detaljer om det fysiske laget og lenkeforhandling, mii-verktøy o ettool De lar deg se og justere hastighet, dupleksmodus og andre elektriske parametere for Ethernet-grensesnittet.
Spranget til iproute2: ip-kommando og grunnleggende objekter
Alt det ovennevnte eksisterer fortsatt, men i moderne systemer anbefales det å bruke iproute2Dens hovedkommando, ip, tilbyr en sammenhengende syntaks basert på objekt + handling:
ip [OPCIONES] OBJETO COMANDO [parámetros]
De vanligste objektene er lenke, adresse (addr), rute, regel, nabo (neigh), tunnel, maddr, mroute, monitor, ntable, tuntap, xfrm, netns, l2tp, tcp_metrics, tokenblant andre. Hver av dem fokuserer på et spesifikt aspekt av nettverksstakken.
- link: administrerer fysiske eller logiske grensesnitt (tilstand, MTU, flagg, MAC).
- adresse / adressehåndterer IPv4- og IPv6-adresser knyttet til grensesnitt.
- rute: oppretter, sletter og viser ruter i rutingtabeller.
- naboviser og manipulerer ARP-tabellen (eller IPv6-nabolaget).
- herskedefinerer rutingsregler for flere tabeller.
Videre kommandoen ip Den inkluderer svært nyttige globale alternativer: -4 y -6 for å filtrere etter adressefamilie, -s for statistikk, -br for forkortet tabellutgang, -o for en enkelt linje (ideell for grep o wc), -c å fargelegge utgangen eller -f for å velge protokollfamilien (inet, inet6, bridge, mpls, osv.).
Grunnleggende ekvivalenser: ifconfig vs. ip
Der den ble brukt tidligere ifconfig For å se grensesnittene og IP-konfigurasjonen deres, anbefales nå to iproute2-kommandoer:
# Ver direcciones IP y configuración
ip addr show
# Ver información de capa 2 (MAC, MTU, flags)
ip link show
Til heve eller senke et grensesnittEkvivalenten ville være:
# ifconfig ens33 up
ip link set ens33 up
# ifconfig ens33 down
ip link set ens33 down
Tilordne en IP-adresse til et grensesnitt Den har også sin egen «oversettelse». Der du pleide å gjøre:
ifconfig ens33 192.168.1.1/24
Med iproute2 gjøres det slik, og enheten spesifiseres også:
ip addr add 192.168.1.1/24 dev ens33
Til slette en spesifikk IP-adresse (noe som ifconfig ikke direkte støtter og tvinger deg til å bruke 0.0.0.0), med ip er det like intuitivt som å endre add av del:
ip addr del 192.168.1.1/24 dev ens33
Og hvis du trenger det opprett et virtuelt grensesnitt eller aliasI ifconfig ville du gjort det med ens33:1Mens det i ip alternativet spilles label for å merke den adressen:
# Alias con etiqueta personalizada
ip addr add 10.0.0.1/8 dev ens33 label ens33:redes
IP-adresse og ARP-tabellen med iproute2
ARP-administrasjon (eller naboadministrasjon i IPv6) er også integrert i iproute2 via objektet naboFor å liste opp nabotabellen (tilsvarende arp -n):
ip neigh show
Hvis du vil legg til en permanent ARP-oppføring manuelt, du angir IP, MAC (lladdr), oppgi type og enhet:
ip neigh add 192.168.0.1 lladdr 00:11:22:33:44:55 \
nud permanent dev ens33
Til slette en oppføring, igjen tyr de til del:
ip neigh del 192.168.0.1 lladdr 00:11:22:33:44:55 \
nud permanent dev ens33
Som med alle andre ting, kan du alltid Se detaljert hjelp med:
ip neigh help
ip route: moderne erstatning for rutekommandoen
Objektet rute iproute2 har ansvaret for administrere rutingstabellerBåde hoved- og sekundæroppdragene. Oppdraget deres er analogt med det til den gamle kommandoenheten. routemen med mye mer kraft og fleksibilitet.
Til Vis hovedrutingstabellenFølgende brukes:
ip route show
# o
ip route list
Hvis du vil legg til en statisk rute For å koble til et bestemt nettverk, spesifiserer du prefikset og gatewayen (eller grensesnittet):
# Añadir ruta a 10.8.0.0/24 vía 192.168.1.2
ip route add 10.8.0.0/24 via 192.168.1.2
Til slett den banen, ganske enkelt:
ip route del 10.8.0.0/24 via 192.168.1.2
Du kan også endre inngangsporten til en eksisterende rute hjelp chg (o change):
ip route chg 10.8.0.0/24 via 192.168.1.3
La standard gateway Den er definert med en standardrute:
# Añadir gateway predeterminado
ip route add default via 192.168.1.1
# Borrarlo usando otra IP de gateway
ip route del default via 192.168.1.254
Flere rutingstabeller og policyer med IP-regel
En av de store fordelene med iproute2 er evne til å jobbe med flere rutingstabeller samtidigDette er umulig med nettverktøy. Linux-kjernen tillater opptil 253 forskjellige tabeller, i tillegg til hovedtabellen (ID 254) og den lokale tabellen (ID 255, beregnet for lokale og kringkastingsadresser, som du ikke bør berøre).
Tabellene er definert i filen /etc/iproute2/rt_tableshvor du vil se noe slikt:
# reserved values
255 local
254 main
253 default
0 unspec
For å legge til en ny tabell, tildeler du den ganske enkelt et nummer og et navn. For eksempel, for å opprette tabellen omplasseringssone Med ID 66 legges det til en linje:
66 redeszone
Derfra kan du legg til spesifikke ruter i den tabellenTenk deg at enheten din har IP-adresse 10.10.2.2 på grensesnittet ens37og du vil at tabellen skal rute trafikk til 10.8.0.0/24 ved hjelp av det grensesnittet:
ip route add 10.8.0.0/24 dev ens37 src 10.10.2.2 table redeszone
Til slett den banen I den sekundære tabellen angir du de samme parameterne med del:
ip route del 10.8.0.0/24 dev ens37 src 10.10.2.2 table redeszone
Og hvis du trenger å definere en standard gateway i den tabellen, gjøres det slik:
ip route add default via 10.10.2.1 dev ens37 table redeszone
Slik at kjernen vet når man skal bruke den tabellen i stedet for hovedtabellenrutingsregler legges til ved hjelp av IP-regelEt typisk eksempel: at all trafikken fra y til 10.10.2.2 Bruk tabellen redeszone:
ip rule add from 10.10.2.2/32 table redeszone
ip rule add to 10.10.2.2/32 table redeszone
El tilstanden til den tabellen Du kan sjekke med:
ip route list table redeszone
Og sett med aktive regler Det sees med:
ip rule show
QoS, lastbalansering, IP-tunneler og mer med iproute2
Utover å bare erstatte ifconfig og route, tilbyr iproute2 en rekke avanserte funksjoner som gjør det til en komplett plattform for nettverksadministrasjon på Linux. Noen av de mest interessante er trafikkontroll og QoS, lastbalansering på tvers av grensesnitt, opprettelse av IP-tunneler og administrasjon av flere gatewayer.
Bruk av verktøyet tc (trafikkontroll), inkludert i iproute2, er mulig implementere QoS (tjenestekvalitet)ved å klassifisere pakker i køer, tildele prioriteter, begrense båndbredden til visse strømmer eller garantere ressurser til kritisk trafikk (tale, bedriftsapplikasjoner osv.).
Selve kommandoen ip tillater lage IP-tunneler som innkapsler IPv4-pakker over eksisterende IP-infrastruktur, en teknikk som er mye brukt i VPN-er, sammenkobling av nettsteder eller utrulling av virtuelle nettverk.
Som til lastbalansering, iproute2 kan tilordne vekter til forskjellige grensesnitt og fordele utgående trafikk i henhold til ulike kriterier (kilde-IP, destinasjons-IP, porter osv.). Dette passer veldig godt med programvareruterscenarier der Linux-serveren selv fungerer som en lastfordeler på tvers av flere lenker.
Videre, ved å kombinere flere rutingstabeller og IP-regelkonfigurasjoner, er det mulig å designe avanserte rutescenarier der trafikk som ankommer gjennom et grensesnitt nødvendigvis må gå ut gjennom det samme grensesnittet, eller gjennom forskjellige ruter avhengig av opprinnelse, trafikktype eller destinasjonsnettverk.
Persistens av IP-adresser, ruter og regler etter omstart
Et viktig aspekt når man jobber med ip er at Alt du konfigurerer fra kommandolinjen er flyktigNår maskinen starter på nytt, forsvinner endringer i IP-adresser, ruter og regler. Derfor er dette viktig på live-servere. kopier disse innstillingene til systemfilene.
I Debian og derivater som bruker det klassiske systemet med / etc / network / grensesnittIP-adressene og de statiske rutene deklareres i den filen, eventuelt ved hjelp av direktiver. post-up å starte kommandoer ip ytterligere når grensesnittet løftes.
Un veldig komplett eksempel Den blander flere grensesnitt, sekundære adresser og flere rutingstabeller. For ett grensesnitt eth1 med IP 10.10.1.114/29 og tabell tabla2Det kan se omtrent slik ut:
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 10.10.1.114
netmask 255.255.255.248
post-up ip route add 10.10.1.112/29 dev eth1 src 10.10.1.114 table tabla2
post-up ip route add default via 10.10.1.113 dev eth1 table tabla2
post-up ip rule add from 10.10.1.114/32 table tabla2
post-up ip rule add to 10.10.1.114/32 table tabla2
Andre grensesnitt på samme vert kan gjenta skjemaet med forskjellige tabeller (for eksempel tabla3) for å oppnå flere internettilgangspunkter eller logisk segmentering bruker én Linux-server som router avanserte.
I distribusjoner som bruker NetworkManager, netplan, systemd-networkd eller tilsvarende verktøyFilosofien er den samme: adresser, ruter, regler og parametere må legges inn i de tilhørende konfigurasjonsfilene, slik at systemet automatisk kan bruke dem i hver enkelt instans. boot.
Fordeler og ulemper med iproute2 kontra nettverktøy
Fortsettelsen iproute2 gir en klar enhetlig og moderne tilnærming til nettverksadministrasjon i Linux. I stedet for å spre funksjonalitet blant ifconfig, route, arp, netstat og andre, konsentrerer alt til en sammenhengende samling, med homogen syntaks og innebygd støtte for IPv4 og IPv6.
Tilstedeværelsen av en enkelt sentral kommando (ip) som dekker grensesnittkonfigurasjon, adresser, ruter, tunneler, QoS, multicast, IPsec-policyer, nettverksnavnerom Videre forenkler det både spesifikke oppgaver og automatisert skripting.
I tillegg inneholder iproute2 avanserte rutefunksjoner som ikke finnes i nettverktøy: flere tabeller, policybasert ruting med ip ruleLastbalansering mellom gatewayer, integrasjon med innkapslingsmekanismer, båndbreddehåndtering, osv. Dette gjør Linux til en høyytelsesruter uten behov for spesifikk maskinvare.
Som en ekstra bonus tillater iproute2 teste konfigurasjoner midlertidig fra kommandolinjen, og bare når de fungerer, flytt dem til permanente filer, noe som reduserer risikoen for at serveren din blir utilgjengelig på grunn av en forglemmelse.
På den mindre hyggelige siden er den største ulempen endring av tankesett og læringskurvenAlle som har brukt det i årevis ifconfig y route Den bruker en annen syntaks og mange flere konsepter (tabeller, regler, objekter osv.). Dette krever at man investerer litt tid i opplæring.
Det er også et problem med bakoverkompatibilitet med eldre skriptMange automatiserte prosesser skrevet med net-tools slutter å virke hvis ifconfig eller route forsvinner på et system, noe som tvinger koden til å bli migrert til iproute2.
Til slutt er realiteten fortsatt den at Alt gjøres via terminalen.For de som utelukkende kommer fra grafiske miljøer, kan dette virke skremmende i starten, selv om kraften som oppnås mer enn kompenserer for innsatsen hvis du jobber med nettverk profesjonelt.
Å mestre begge deler ifconfig og route som det komplette iproute2-økosystemet Det setter deg i en svært komfortabel posisjon til å bevege deg mellom eldre servere, klassisk dokumentasjon, moderne distribusjoner, akademiske øvelser og selvfølgelig hacking- og cybersikkerhetsmiljøer, hvor en grundig forståelse av hvordan man konfigurerer grensesnitt, rutingstabeller, ARP, QoS, tunneler og flere gatewayer er et klart konkurransefortrinn.
Lidenskapelig forfatter om verden av bytes og teknologi generelt. Jeg elsker å dele kunnskapen min gjennom å skrive, og det er det jeg skal gjøre i denne bloggen, vise deg alle de mest interessante tingene om dingser, programvare, maskinvare, teknologiske trender og mer. Målet mitt er å hjelpe deg med å navigere i den digitale verden på en enkel og underholdende måte.
