Iproute2: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 16: Zeile 16:
Der Originalautor ist Alexey Kuznetsov (bekannt für seine [[Quality of Service|QoS]]-Implementierung im Linux-Kernel), der aktuelle Maintainer ist Stephen Hemminger.<ref>[https://github.com/shemminger/iproute2/blob/master/README iproute2] auf GitHub.</ref> iproute2 nutzt Linux’ Netlink-Schnittstelle, um direkt mit dem Kernel zu kommunizieren.
Der Originalautor ist Alexey Kuznetsov (bekannt für seine [[Quality of Service|QoS]]-Implementierung im Linux-Kernel), der aktuelle Maintainer ist Stephen Hemminger.<ref>[https://github.com/shemminger/iproute2/blob/master/README iproute2] auf GitHub.</ref> iproute2 nutzt Linux’ Netlink-Schnittstelle, um direkt mit dem Kernel zu kommunizieren.


=== iproute ===
iproute2 wurde als Ersatz für die „klassischen“ Netzwerktools wie [[ifconfig]], ''route'' etc. entwickelt. Es fasst alle Konfigurationsoptionen, die bisher von diesen getrennten Programmen erledigt wurden, im Befehl ''ip'' zusammen. Die klassischen Befehle werden durch iproute2 immer weiter verdrängt.
iproute2 wurde als Ersatz für die „klassischen“ Netzwerktools wie [[ifconfig]], ''route'' etc. entwickelt. Es fasst alle Konfigurationsoptionen, die bisher von diesen getrennten Programmen erledigt wurden, im Befehl ''ip'' zusammen. Die klassischen Befehle werden durch iproute2 immer weiter verdrängt.


Zeile 40: Zeile 41:


== Installation ==
== Installation ==
  # apt install iproute2
  # '''apt install iproute2'''


== Befehle ==
== Befehle ==
Zeile 86: Zeile 87:
|}
|}


== Syntax ==
== Aufruf ==
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:
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'']
  ip addr [''befehl''] [''argumente'']
Zeile 152: Zeile 153:
| xfrm || zu wenig Quellen
| xfrm || zu wenig Quellen
|}
|}
== 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
; Ändern der [[MAC-Adresse]]
ip link set dev eth0 address aa:bb:cc:dd:ee:ff


== Konfiguration ==
== Konfiguration ==
Zeile 197: Zeile 178:
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/ip}}
==== Dokumentation ====
==== Dokumentation ====
  /usr/share/doc/iproute2/README.Debian
  /usr/share/doc/iproute2/README.Debian
Zeile 203: Zeile 185:
  /usr/share/lintian/overrides/iproute2
  /usr/share/lintian/overrides/iproute2


===== Man-Pages =====
===== Man-Page =====
  /usr/share/man/man3/libnetlink.3.gz
  /usr/share/man/man3/libnetlink.3.gz
  /usr/share/man/man7/tc-hfsc.7.gz
  /usr/share/man/man7/tc-hfsc.7.gz
Zeile 339: Zeile 321:
  /usr/share/man/man8/vdpa-mgmtdev.8.gz
  /usr/share/man/man8/vdpa-mgmtdev.8.gz
  /usr/share/man/man8/vdpa.8.gz
  /usr/share/man/man8/vdpa.8.gz
===== Info-Pages =====


==== Links ====
==== Links ====
Zeile 352: Zeile 332:
# [http://is.muni.cz/th/207915/fi_b/iproute.pdf iproute2-Dokumentation]
# [http://is.muni.cz/th/207915/fi_b/iproute.pdf iproute2-Dokumentation]


[[Kategorie:Iproute2]]
[[Kategorie:iproute2]]


</noinclude>
</noinclude>

Aktuelle Version vom 12. November 2024, 18:39 Uhr

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.

iproute2 ist eine unter einem Befehl zusammengefasste Sammlung an Werkzeugen, die dazu benutzt werden, die IP-Netzwerkkonfiguration (IPv4 und IPv6) eines Linux-Systems zu manipulieren.

Der Originalautor ist Alexey Kuznetsov (bekannt für seine QoS-Implementierung im Linux-Kernel), der aktuelle Maintainer ist Stephen Hemminger.[1] iproute2 nutzt Linux’ Netlink-Schnittstelle, um direkt mit dem Kernel zu kommunizieren.

iproute

iproute2 wurde als Ersatz für die „klassischen“ Netzwerktools wie ifconfig, route etc. entwickelt. Es fasst alle Konfigurationsoptionen, die bisher von diesen getrennten Programmen erledigt wurden, im Befehl ip zusammen. Die klassischen Befehle werden durch iproute2 immer weiter verdrängt.

Außerdem gehört zum Paket der Befehl tc, der dazu genutzt wird, Netzwerktraffic zu kontrollieren (traffic control).

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.

Enthalten sind des Weiteren die folgenden Werkzeuge:

  • ss (socket status, netstat-Ersatz)
  • lnstat (link state, auch ctstat)
  • nstat (network statistics tool)
  • routef (flush routes)
  • routel (list routes)
  • rtstat (route state monitoring)
Nur mit Root-Rechten zugänglich sind
  • arpd (userspace arp daemon)
  • rtacct (routing table realms and policy propagation)
  • rtmon (routing table monitor) und tc (traffic control)
  • Im WLAN-Bereich ist der Befehl iw der Ersatz für das bisherige iwconfig

Installation

# apt install iproute2

Befehle

Befehl Pfad Beschreibung
ip /bin/
ss /bin/
bridge /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/

Aufruf

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

Option Beschreibung
address manipuliert die IP-Adressen der Interfaces (Netzwerkschnittstellen) und andere Parameter, wie Broadcast-Adressen, Multicast...
addrlabel
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
xfrm zu wenig Quellen

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

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-Page
/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

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
  3. Introduction to iproute2
  4. iproute2-Dokumentation


  1. iproute2 auf GitHub.