iproute2

Aus Foxwiki

iproute2 - Werkzeuge für Netzwerk(verkehrs)kontrolle

Beschreibung

Mit der Programmsammlung iproute2 rund um den zentralen Befehl ip lassen sich Netzwerkschnittstellen auf der Kommandozeile abfragen oder konfigurieren.

  • Damit bietet sich diese Sammlung als vollwertiger Ersatz zu klassischen Befehlen wie ifconfig, route und netstat (sämtlich im Paket net-tools) an.
  • Sie ist vollständig IPv6-kompatibel.
Werkzeuge für Netzwerk(verkehrs)kontrolle
  • Die iproute2-Suite ist eine Sammlung von Werkzeugen für die Netzwerk- und Verkehrskontrolle.
  • Diese Programme kommunizieren mit dem Linux-Kernel über die (rt)netlink-Schnittstelle.
  • Sie bieten gegenüber den in den veralteten net-tools enthaltenen Programmen »ifconfig« und »route« erweiterte Möglichkeiten.

Installation

# apt install iproute2

Befehle

Befehl Pfad Beschreibung
ip /bin/
ss /bin/
bridge (Befehl) /sbin/
dcb /sbin/
devlink /sbin/
ip /sbin/ /sbin/ip -> /bin/ip
rtacct /sbin/
rtmon /sbin/
tc /sbin/
tipc /sbin/
vdpa /sbin/
ctstat /usr/bin/
lnstat /usr/bin/
nstat /usr/bin/
rdma /usr/bin/
routel /usr/bin/
rtstat /usr/bin/
arpd /usr/sbin/
genl /usr/sbin/

Konfiguration

Dateien

/etc/iproute2/bpf_pinning
/etc/iproute2/ematch_map
/etc/iproute2/group
/etc/iproute2/nl_protos
/etc/iproute2/rt_dsfield
/etc/iproute2/rt_protos
/etc/iproute2/rt_protos.d/README
/etc/iproute2/rt_realms
/etc/iproute2/rt_scopes
/etc/iproute2/rt_tables
/etc/iproute2/rt_tables.d/README

bash-completion

/usr/share/bash-completion/completions/devlink
/usr/share/bash-completion/completions/tc



Anhang

Siehe auch

Sicherheit

Dokumentation

/usr/share/doc/iproute2/README.Debian
/usr/share/doc/iproute2/changelog.Debian.gz
/usr/share/doc/iproute2/copyright
/usr/share/lintian/overrides/iproute2
Man-Pages
/usr/share/man/man3/libnetlink.3.gz
/usr/share/man/man7/tc-hfsc.7.gz
/usr/share/man/man8/arpd.8.gz
/usr/share/man/man8/bridge.8.gz
/usr/share/man/man8/ctstat.8.gz
/usr/share/man/man8/dcb-app.8.gz
/usr/share/man/man8/dcb-buffer.8.gz
/usr/share/man/man8/dcb-dcbx.8.gz
/usr/share/man/man8/dcb-ets.8.gz
/usr/share/man/man8/dcb-maxrate.8.gz
/usr/share/man/man8/dcb-pfc.8.gz
/usr/share/man/man8/dcb.8.gz
/usr/share/man/man8/devlink-dev.8.gz
/usr/share/man/man8/devlink-dpipe.8.gz
/usr/share/man/man8/devlink-health.8.gz
/usr/share/man/man8/devlink-lc.8.gz
/usr/share/man/man8/devlink-monitor.8.gz
/usr/share/man/man8/devlink-port.8.gz
/usr/share/man/man8/devlink-rate.8.gz
/usr/share/man/man8/devlink-region.8.gz
/usr/share/man/man8/devlink-resource.8.gz
/usr/share/man/man8/devlink-sb.8.gz
/usr/share/man/man8/devlink-trap.8.gz
/usr/share/man/man8/devlink.8.gz
/usr/share/man/man8/genl.8.gz
/usr/share/man/man8/ip-address.8.gz
/usr/share/man/man8/ip-addrlabel.8.gz
/usr/share/man/man8/ip-fou.8.gz
/usr/share/man/man8/ip-gue.8.gz
/usr/share/man/man8/ip-ioam.8.gz
/usr/share/man/man8/ip-l2tp.8.gz
/usr/share/man/man8/ip-link.8.gz
/usr/share/man/man8/ip-macsec.8.gz
/usr/share/man/man8/ip-maddress.8.gz
/usr/share/man/man8/ip-monitor.8.gz
/usr/share/man/man8/ip-mptcp.8.gz
/usr/share/man/man8/ip-mroute.8.gz
/usr/share/man/man8/ip-neighbour.8.gz
/usr/share/man/man8/ip-netconf.8.gz
/usr/share/man/man8/ip-netns.8.gz
/usr/share/man/man8/ip-nexthop.8.gz
/usr/share/man/man8/ip-ntable.8.gz
/usr/share/man/man8/ip-route.8.gz
/usr/share/man/man8/ip-rule.8.gz
/usr/share/man/man8/ip-sr.8.gz
/usr/share/man/man8/ip-stats.8.gz
/usr/share/man/man8/ip-tcp_metrics.8.gz
/usr/share/man/man8/ip-token.8.gz
/usr/share/man/man8/ip-tunnel.8.gz
/usr/share/man/man8/ip-vrf.8.gz
/usr/share/man/man8/ip-xfrm.8.gz
/usr/share/man/man8/ip.8.gz
/usr/share/man/man8/lnstat.8.gz
/usr/share/man/man8/nstat.8.gz
/usr/share/man/man8/rdma-dev.8.gz
/usr/share/man/man8/rdma-link.8.gz
/usr/share/man/man8/rdma-resource.8.gz
/usr/share/man/man8/rdma-statistic.8.gz
/usr/share/man/man8/rdma-system.8.gz
/usr/share/man/man8/rdma.8.gz
/usr/share/man/man8/routel.8.gz
/usr/share/man/man8/rtacct.8.gz
/usr/share/man/man8/rtmon.8.gz
/usr/share/man/man8/rtstat.8.gz
/usr/share/man/man8/ss.8.gz
/usr/share/man/man8/tc-actions.8.gz
/usr/share/man/man8/tc-basic.8.gz
/usr/share/man/man8/tc-bfifo.8.gz
/usr/share/man/man8/tc-bpf.8.gz
/usr/share/man/man8/tc-cake.8.gz
/usr/share/man/man8/tc-cbq-details.8.gz
/usr/share/man/man8/tc-cbq.8.gz
/usr/share/man/man8/tc-cbs.8.gz
/usr/share/man/man8/tc-cgroup.8.gz
/usr/share/man/man8/tc-choke.8.gz
/usr/share/man/man8/tc-codel.8.gz
/usr/share/man/man8/tc-connmark.8.gz
/usr/share/man/man8/tc-csum.8.gz
/usr/share/man/man8/tc-ct.8.gz
/usr/share/man/man8/tc-ctinfo.8.gz
/usr/share/man/man8/tc-drr.8.gz
/usr/share/man/man8/tc-ematch.8.gz
/usr/share/man/man8/tc-etf.8.gz
/usr/share/man/man8/tc-ets.8.gz
/usr/share/man/man8/tc-flow.8.gz
/usr/share/man/man8/tc-flower.8.gz
/usr/share/man/man8/tc-fq.8.gz
/usr/share/man/man8/tc-fq_codel.8.gz
/usr/share/man/man8/tc-fq_pie.8.gz
/usr/share/man/man8/tc-fw.8.gz
/usr/share/man/man8/tc-gate.8.gz
/usr/share/man/man8/tc-hfsc.8.gz
/usr/share/man/man8/tc-htb.8.gz
/usr/share/man/man8/tc-ife.8.gz
/usr/share/man/man8/tc-matchall.8.gz
/usr/share/man/man8/tc-mirred.8.gz
/usr/share/man/man8/tc-mpls.8.gz
/usr/share/man/man8/tc-mqprio.8.gz
/usr/share/man/man8/tc-nat.8.gz
/usr/share/man/man8/tc-netem.8.gz
/usr/share/man/man8/tc-pedit.8.gz
/usr/share/man/man8/tc-pfifo.8.gz
/usr/share/man/man8/tc-pfifo_fast.8.gz
/usr/share/man/man8/tc-pie.8.gz
/usr/share/man/man8/tc-police.8.gz
/usr/share/man/man8/tc-prio.8.gz
/usr/share/man/man8/tc-red.8.gz
/usr/share/man/man8/tc-route.8.gz
/usr/share/man/man8/tc-sample.8.gz
/usr/share/man/man8/tc-sfb.8.gz
/usr/share/man/man8/tc-sfq.8.gz
/usr/share/man/man8/tc-simple.8.gz
/usr/share/man/man8/tc-skbedit.8.gz
/usr/share/man/man8/tc-skbmod.8.gz
/usr/share/man/man8/tc-skbprio.8.gz
/usr/share/man/man8/tc-stab.8.gz
/usr/share/man/man8/tc-taprio.8.gz
/usr/share/man/man8/tc-tbf.8.gz
/usr/share/man/man8/tc-tcindex.8.gz
/usr/share/man/man8/tc-tunnel_key.8.gz
/usr/share/man/man8/tc-u32.8.gz
/usr/share/man/man8/tc-vlan.8.gz
/usr/share/man/man8/tc-xt.8.gz
/usr/share/man/man8/tc.8.gz
/usr/share/man/man8/tipc-bearer.8.gz
/usr/share/man/man8/tipc-link.8.gz
/usr/share/man/man8/tipc-media.8.gz
/usr/share/man/man8/tipc-nametable.8.gz
/usr/share/man/man8/tipc-node.8.gz
/usr/share/man/man8/tipc-peer.8.gz
/usr/share/man/man8/tipc-socket.8.gz
/usr/share/man/man8/tipc.8.gz
/usr/share/man/man8/vdpa-dev.8.gz
/usr/share/man/man8/vdpa-mgmtdev.8.gz
/usr/share/man/man8/vdpa.8.gz
Info-Pages

Links

Projekt
  1. https://wiki.linuxfoundation.org/networking/iproute2
Weblinks
  1. https://de.wikipedia.org/wiki/Iproute2
  2. IP Command Reference, Alexey N. Kuznetsov Institute for Nuclear Research, Moscow; April 14, 1999 (englisch)
  3. Introduction to iproute2
  4. iproute2-Dokumentation (PDF; 513 kB)

TMP

Syntax

Die einzelnen Teile von iproute2 werden auf folgende Weise angesprochen, hier am Beispiel von address. Der Name kann soweit gekürzt werden, solange er eindeutig ist:

ip addr [befehl] [argumente]

Um mit IPv6 zu arbeiten ruft man ip folgendermaßen auf:

ip -6 addr [befehl] [argumente]

befehl ist ein weiterer Unterbefehl mit argumenten. help gibt dabei immer eine Art Syntaxhilfe aus, hier ip addr help:

Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
                                                     [ CONFFLAG-LIST ]
      ip addr del IFADDR dev STRING
      ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]
                           [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]
IFADDR := PREFIX | ADDR peer PREFIX
         [ broadcast ADDR ] [ anycast ADDR ]
         [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
          tentative | deprecated | dadfailed | temporary |
          CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS

Wie daraus ersichtlich wird, sind Argumente zumeist Paare wie

dev INTERFACE

Für ganze Beispielbefehle siehe Abschnitt #Beispiele.

Teile

address
manipuliert die IP-Adressen der Interfaces (Netzwerkschnittstellen) und andere Parameter, wie Broadcast-Adressen, Multicast...
link
manipuliert die Netzwerkschnittstellen auf Ethernet-Ebene. Erlaubt Einstellungen wie Promiscuous Mode ein/aus, ARP ein/aus, oder die MAC-Adresse zu verändern.
maddr
ändert, entfernt, zeigt oder setzt Multicast-Adressen auf Ethernet- und IP-Ebene.
monitor
zeigt Änderungen der Netzwerkinterfaces an (zum Beispiel NDP-Router-Advertisements oder ARP-Nachrichten, die über Adressen und Routen informieren)
mroute
Informationen über Multicast-Routing-Tabellen
neighbour
manipuliert und zeigt ARP- und NDP-Tabellen.
netns
verwaltet Netzwerknamensräume
ntable
informiert über NDP- und ARP-Tabellen
route
manipuliert, zeigt und setzt IP-Routen (Ersatz für route)
rule
manipuliert Regeln in der Routing Policy Database RPDB, die festlegt, für welche Subnetze welche Routing-Tabellen genutzt werden
tunnel
erzeugt, verändert und löscht IP-Tunnel (z. B. Tunnelbroker-p41-Tunnel)
tuntap
manipuliert TUN/TAP-Schnittstellen

Beispiele

Hier zum besseren Verständnis einige Beispiele, die im alltäglichen Gebrauch vorkommen könnten:

Zuweisen einer festen IP-Adresse und Konfiguration der Routing-Tabelle

ip addr add 10.10.1.1/16 broadcast 10.10.255.255 dev eth0
ip route add default via 10.10.0.0

Erstellen eines SIT-Tunnels (IPv6 over IPv4), siehe Tunnelbroker

ip tunnel add sit0 mode sit remote 192.0.2.32 local 10.10.4.2 ttl 255
ip link set sit0 up
ip -6 route add ::/0 dev sit0

Anzeige der Routing- und Neighbortabellen

ip route show
ip neigh show

Fälschen der MAC-Adresse

ip link set dev eth0 address aa:bb:cc:dd:ee:ff