| .TH IP 8 "17 January 2002" "iproute2" "Linux" |
| .SH NAME |
| ip \- show / manipulate routing, devices, policy routing and tunnels |
| .SH SYNOPSIS |
| |
| .ad l |
| .in +8 |
| .ti -8 |
| .B ip |
| .RI "[ " OPTIONS " ] " OBJECT " { " COMMAND " | " |
| .BR help " }" |
| .sp |
| |
| .ti -8 |
| .IR OBJECT " := { " |
| .BR link " | " addr " | " addrlabel " | " route " | " rule " | " neigh " | "\ |
| tunnel " | " maddr " | " mroute " | " monitor " }" |
| .sp |
| |
| .ti -8 |
| .IR OPTIONS " := { " |
| \fB\-V\fR[\fIersion\fR] | |
| \fB\-s\fR[\fItatistics\fR] | |
| \fB\-r\fR[\fIesolve\fR] | |
| \fB\-f\fR[\fIamily\fR] { |
| .BR inet " | " inet6 " | " ipx " | " dnet " | " link " } | " |
| \fB\-o\fR[\fIneline\fR] } |
| |
| .ti -8 |
| .BI "ip link set " DEVICE |
| .RB "{ " up " | " down " | " arp " { " on " | " off " } |" |
| .br |
| .BR promisc " { " on " | " off " } |" |
| .br |
| .BR allmulticast " { " on " | " off " } |" |
| .br |
| .BR dynamic " { " on " | " off " } |" |
| .br |
| .BR multicast " { " on " | " off " } |" |
| .br |
| .B txqueuelen |
| .IR PACKETS " |" |
| .br |
| .B name |
| .IR NEWNAME " |" |
| .br |
| .B address |
| .IR LLADDR " |" |
| .B broadcast |
| .IR LLADDR " |" |
| .br |
| .B mtu |
| .IR MTU " |" |
| .br |
| .B netns |
| .IR PID " }" |
| |
| .ti -8 |
| .B ip link show |
| .RI "[ " DEVICE " ]" |
| |
| .ti -8 |
| .BR "ip addr" " { " add " | " del " } " |
| .IB IFADDR " dev " STRING |
| |
| .ti -8 |
| .BR "ip addr" " { " show " | " flush " } [ " dev |
| .IR STRING " ] [ " |
| .B scope |
| .IR SCOPE-ID " ] [ " |
| .B to |
| .IR PREFIX " ] [ " FLAG-LIST " ] [ " |
| .B label |
| .IR PATTERN " ]" |
| |
| .ti -8 |
| .IR IFADDR " := " PREFIX " | " ADDR |
| .B peer |
| .IR PREFIX " [ " |
| .B broadcast |
| .IR ADDR " ] [ " |
| .B anycast |
| .IR ADDR " ] [ " |
| .B label |
| .IR STRING " ] [ " |
| .B scope |
| .IR SCOPE-ID " ]" |
| |
| .ti -8 |
| .IR SCOPE-ID " := " |
| .RB "[ " host " | " link " | " global " | " |
| .IR NUMBER " ]" |
| |
| .ti -8 |
| .IR FLAG-LIST " := [ " FLAG-LIST " ] " FLAG |
| |
| .ti -8 |
| .IR FLAG " := " |
| .RB "[ " permanent " | " dynamic " | " secondary " | " primary " | "\ |
| tentative " | " deprecated " ]" |
| |
| .ti -8 |
| .BR "ip addrlabel" " { " add " | " del " } " prefix |
| .BR PREFIX " [ " |
| .B dev |
| .IR DEV " ] [ " |
| .B label |
| .IR NUMBER " ]" |
| |
| .ti -8 |
| .BR "ip addrlabel" " { " list " | " flush " }" |
| |
| .ti -8 |
| .BR "ip route" " { " |
| .BR list " | " flush " } " |
| .I SELECTOR |
| |
| .ti -8 |
| .B ip route get |
| .IR ADDRESS " [ " |
| .BI from " ADDRESS " iif " STRING" |
| .RB " ] [ " oif |
| .IR STRING " ] [ " |
| .B tos |
| .IR TOS " ]" |
| |
| .ti -8 |
| .BR "ip route" " { " add " | " del " | " change " | " append " | "\ |
| replace " | " monitor " } " |
| .I ROUTE |
| |
| .ti -8 |
| .IR SELECTOR " := " |
| .RB "[ " root |
| .IR PREFIX " ] [ " |
| .B match |
| .IR PREFIX " ] [ " |
| .B exact |
| .IR PREFIX " ] [ " |
| .B table |
| .IR TABLE_ID " ] [ " |
| .B proto |
| .IR RTPROTO " ] [ " |
| .B type |
| .IR TYPE " ] [ " |
| .B scope |
| .IR SCOPE " ]" |
| |
| .ti -8 |
| .IR ROUTE " := " NODE_SPEC " [ " INFO_SPEC " ]" |
| |
| .ti -8 |
| .IR NODE_SPEC " := [ " TYPE " ] " PREFIX " [" |
| .B tos |
| .IR TOS " ] [ " |
| .B table |
| .IR TABLE_ID " ] [ " |
| .B proto |
| .IR RTPROTO " ] [ " |
| .B scope |
| .IR SCOPE " ] [ " |
| .B metric |
| .IR METRIC " ]" |
| |
| .ti -8 |
| .IR INFO_SPEC " := " "NH OPTIONS FLAGS" " [" |
| .B nexthop |
| .IR NH " ] ..." |
| |
| .ti -8 |
| .IR NH " := [ " |
| .B via |
| .IR ADDRESS " ] [ " |
| .B dev |
| .IR STRING " ] [ " |
| .B weight |
| .IR NUMBER " ] " NHFLAGS |
| |
| .ti -8 |
| .IR OPTIONS " := " FLAGS " [ " |
| .B mtu |
| .IR NUMBER " ] [ " |
| .B advmss |
| .IR NUMBER " ] [ " |
| .B rtt |
| .IR TIME " ] [ " |
| .B rttvar |
| .IR TIME " ] [ " |
| .B window |
| .IR NUMBER " ] [ " |
| .B cwnd |
| .IR NUMBER " ] [ " |
| .B ssthresh |
| .IR REALM " ] [ " |
| .B realms |
| .IR REALM " ] [ " |
| .B rto_min |
| .IR TIME " ]" |
| |
| .ti -8 |
| .IR TYPE " := [ " |
| .BR unicast " | " local " | " broadcast " | " multicast " | "\ |
| throw " | " unreachable " | " prohibit " | " blackhole " | " nat " ]" |
| |
| .ti -8 |
| .IR TABLE_ID " := [ " |
| .BR local "| " main " | " default " | " all " |" |
| .IR NUMBER " ]" |
| |
| .ti -8 |
| .IR SCOPE " := [ " |
| .BR host " | " link " | " global " |" |
| .IR NUMBER " ]" |
| |
| .ti -8 |
| .IR FLAGS " := [ " |
| .BR equalize " ]" |
| |
| .ti -8 |
| .IR NHFLAGS " := [ " |
| .BR onlink " | " pervasive " ]" |
| |
| .ti -8 |
| .IR RTPROTO " := [ " |
| .BR kernel " | " boot " | " static " |" |
| .IR NUMBER " ]" |
| |
| .ti -8 |
| .B ip rule |
| .RB " [ " list " | " add " | " del " | " flush " ]" |
| .I SELECTOR ACTION |
| |
| .ti -8 |
| .IR SELECTOR " := [ " |
| .B from |
| .IR PREFIX " ] [ " |
| .B to |
| .IR PREFIX " ] [ " |
| .B tos |
| .IR TOS " ] [ " |
| .B fwmark |
| .IR FWMARK[/MASK] " ] [ " |
| .B dev |
| .IR STRING " ] [ " |
| .B pref |
| .IR NUMBER " ]" |
| |
| .ti -8 |
| .IR ACTION " := [ " |
| .B table |
| .IR TABLE_ID " ] [ " |
| .B nat |
| .IR ADDRESS " ] [ " |
| .BR prohibit " | " reject " | " unreachable " ] [ " realms |
| .RI "[" SRCREALM "/]" DSTREALM " ]" |
| |
| .ti -8 |
| .IR TABLE_ID " := [ " |
| .BR local " | " main " | " default " |" |
| .IR NUMBER " ]" |
| |
| .ti -8 |
| .BR "ip neigh" " { " add " | " del " | " change " | " replace " } { " |
| .IR ADDR " [ " |
| .B lladdr |
| .IR LLADDR " ] [ " |
| .BR nud " { " permanent " | " noarp " | " stale " | " reachable " } ] | " proxy |
| .IR ADDR " } [ " |
| .B dev |
| .IR DEV " ]" |
| |
| .ti -8 |
| .BR "ip neigh" " { " show " | " flush " } [ " to |
| .IR PREFIX " ] [ " |
| .B dev |
| .IR DEV " ] [ " |
| .B nud |
| .IR STATE " ]" |
| |
| .ti -8 |
| .BR "ip tunnel" " { " add " | " change " | " del " | " show " | " prl " }" |
| .RI "[ " NAME " ]" |
| .br |
| .RB "[ " mode |
| .IR MODE " ] [ " |
| .B remote |
| .IR ADDR " ] [ " |
| .B local |
| .IR ADDR " ]" |
| .br |
| .RB "[ [" i "|" o "]" seq " ] [ [" i "|" o "]" key |
| .IR KEY " ] [ " |
| .RB "[" i "|" o "]" csum " ] ]" |
| .br |
| .RB "[ " encaplimit |
| .IR ELIM " ]" |
| .RB "[ " ttl |
| .IR TTL " ]" |
| .br |
| .RB "[ " tos |
| .IR TOS " ] [ " |
| .B flowlabel |
| .IR FLOWLABEL " ]" |
| .br |
| .RB "[ " prl-default |
| .IR ADDR " ] [ " |
| .B prl-nodefault |
| .IR ADDR " ] [ " |
| .B prl-delete |
| .IR ADDR " ]" |
| .br |
| .RB "[ [" no "]" pmtudisc " ]" |
| .RB "[ " dev |
| .IR PHYS_DEV " ]" |
| .RB "[ " "dscp inherit" " ]" |
| |
| .ti -8 |
| .IR MODE " := " |
| .RB " { " ipip " | " gre " | " sit " | " isatap " | " ip6ip6 " | " ipip6 " | " any " }" |
| |
| .ti -8 |
| .IR ADDR " := { " IP_ADDRESS " |" |
| .BR any " }" |
| |
| .ti -8 |
| .IR TOS " := { " NUMBER " |" |
| .BR inherit " }" |
| |
| .ti -8 |
| .IR ELIM " := { |
| .BR none " | " |
| .IR 0 ".." 255 " }" |
| |
| .ti -8 |
| .ti -8 |
| .IR TTL " := { " 1 ".." 255 " | " |
| .BR inherit " }" |
| |
| .ti -8 |
| .IR KEY " := { " DOTTED_QUAD " | " NUMBER " }" |
| |
| .ti -8 |
| .IR TIME " := " NUMBER "[s|ms|us|ns|j]" |
| |
| .ti -8 |
| .BR "ip maddr" " [ " add " | " del " ]" |
| .IB MULTIADDR " dev " STRING |
| |
| .ti -8 |
| .BR "ip maddr show" " [ " dev |
| .IR STRING " ]" |
| |
| .ti -8 |
| .BR "ip mroute show" " [" |
| .IR PREFIX " ] [ " |
| .B from |
| .IR PREFIX " ] [ " |
| .B iif |
| .IR DEVICE " ]" |
| |
| .ti -8 |
| .BR "ip monitor" " [ " all " |" |
| .IR LISTofOBJECTS " ]" |
| |
| .ti -8 |
| .BR "ip xfrm" |
| .IR XFRM_OBJECT " { " COMMAND " }" |
| |
| .ti -8 |
| .IR XFRM_OBJECT " := { " state " | " policy " | " monitor " } " |
| |
| .ti -8 |
| .BR "ip xfrm state " { " add " | " update " } " |
| .IR ID " [ " |
| .IR XFRM_OPT " ] " |
| .RB " [ " mode |
| .IR MODE " ] " |
| .br |
| .RB " [ " reqid |
| .IR REQID " ] " |
| .RB " [ " seq |
| .IR SEQ " ] " |
| .RB " [ " replay-window |
| .IR SIZE " ] " |
| .br |
| .RB " [ " flag |
| .IR FLAG-LIST " ] " |
| .RB " [ " encap |
| .IR ENCAP " ] " |
| .RB " [ " sel |
| .IR SELECTOR " ] " |
| .br |
| .RB " [ " |
| .IR LIMIT-LIST " ] " |
| |
| .ti -8 |
| .BR "ip xfrm state allocspi " |
| .IR ID |
| .RB " [ " mode |
| .IR MODE " ] " |
| .RB " [ " reqid |
| .IR REQID " ] " |
| .RB " [ " seq |
| .IR SEQ " ] " |
| .RB " [ " min |
| .IR SPI |
| .B max |
| .IR SPI " ] " |
| |
| .ti -8 |
| .BR "ip xfrm state" " { " delete " | " get " } " |
| .IR ID |
| |
| .ti -8 |
| .BR "ip xfrm state" " { " deleteall " | " list " } [ " |
| .IR ID " ] " |
| .RB " [ " mode |
| .IR MODE " ] " |
| .br |
| .RB " [ " reqid |
| .IR REQID " ] " |
| .RB " [ " flag |
| .IR FLAG_LIST " ] " |
| |
| .ti -8 |
| .BR "ip xfrm state flush" " [ " proto |
| .IR XFRM_PROTO " ] " |
| |
| .ti -8 |
| .BR "ip xfrm state count" |
| |
| .ti -8 |
| .IR ID " := " |
| .RB " [ " src |
| .IR ADDR " ] " |
| .RB " [ " dst |
| .IR ADDR " ] " |
| .RB " [ " proto |
| .IR XFRM_PROTO " ] " |
| .RB " [ " spi |
| .IR SPI " ] " |
| |
| .ti -8 |
| .IR XFRM_PROTO " := " |
| .RB " [ " esp " | " ah " | " comp " | " route2 " | " hao " ] " |
| |
| .ti -8 |
| .IR MODE " := " |
| .RB " [ " transport " | " tunnel " | " ro " | " beet " ] " |
| .B (default=transport) |
| |
| .ti -8 |
| .IR FLAG-LIST " := " |
| .RI " [ " FLAG-LIST " ] " FLAG |
| |
| .ti -8 |
| .IR FLAG " := " |
| .RB " [ " noecn " | " decap-dscp " | " wildrecv " ] " |
| |
| .ti -8 |
| .IR ENCAP " := " ENCAP-TYPE " " SPORT " " DPORT " " OADDR |
| |
| .ti -8 |
| .IR ENCAP-TYPE " := " |
| .B espinudp |
| .RB " | " |
| .B espinudp-nonike |
| |
| .ti -8 |
| .IR ALGO-LIST " := [ " |
| .IR ALGO-LIST " ] | [ " |
| .IR ALGO " ] " |
| |
| .ti -8 |
| .IR ALGO " := " |
| .IR ALGO_TYPE |
| .IR ALGO_NAME |
| .IR ALGO_KEY |
| |
| .ti -8 |
| .IR ALGO_TYPE " := " |
| .RB " [ " enc " | " auth " | " comp " ] " |
| |
| .ti -8 |
| .IR SELECTOR " := " |
| .B src |
| .IR ADDR "[/" PLEN "]" |
| .B dst |
| .IR ADDR "[/" PLEN "]" |
| .RI " [ " UPSPEC " ] " |
| .RB " [ " dev |
| .IR DEV " ] " |
| |
| .ti -8 |
| .IR UPSPEC " := " |
| .B proto |
| .IR PROTO " [[ " |
| .B sport |
| .IR PORT " ] " |
| .RB " [ " dport |
| .IR PORT " ] | " |
| .br |
| .RB " [ " type |
| .IR NUMBER " ] " |
| .RB " [ " code |
| .IR NUMBER " ]] " |
| |
| .ti -8 |
| .IR LIMIT-LIST " := [ " LIMIT-LIST " ] |" |
| .RB " [ "limit |
| .IR LIMIT " ] " |
| |
| .ti -8 |
| .IR LIMIT " := " |
| .RB " [ [" time-soft "|" time-hard "|" time-use-soft "|" time-use-hard "]" |
| .IR SECONDS " ] | " |
| .RB "[ ["byte-soft "|" byte-hard "]" |
| .IR SIZE " ] | " |
| .br |
| .RB " [ ["packet-soft "|" packet-hard "]" |
| .IR COUNT " ] " |
| |
| .ti -8 |
| .BR "ip xfrm policy" " { " add " | " update " } " " dir " |
| .IR DIR |
| .IR SELECTOR " [ " |
| .BR index |
| .IR INDEX " ] " |
| .br |
| .RB " [ " ptype |
| .IR PTYPE " ] " |
| .RB " [ " action |
| .IR ACTION " ] " |
| .RB " [ " priority |
| .IR PRIORITY " ] " |
| .br |
| .RI " [ " LIMIT-LIST " ] [ " |
| .IR TMPL-LIST " ] " |
| |
| .ti -8 |
| .BR "ip xfrm policy" " { " delete " | " get " } " " dir " |
| .IR DIR " [ " SELECTOR " | " |
| .BR index |
| .IR INDEX |
| .RB " ] " |
| .br |
| .RB " [ " ptype |
| .IR PTYPE " ] " |
| |
| .ti -8 |
| .BR "ip xfrm policy" " { " deleteall " | " list " } " |
| .RB " [ " dir |
| .IR DIR " ] [ " |
| .IR SELECTOR " ] " |
| .br |
| .RB " [ " index |
| .IR INDEX " ] " |
| .RB " [ " action |
| .IR ACTION " ] " |
| .RB " [ " priority |
| .IR PRIORITY " ] " |
| |
| .ti -8 |
| .B "ip xfrm policy flush" |
| .RB " [ " ptype |
| .IR PTYPE " ] " |
| |
| .ti -8 |
| .B "ip xfrm count" |
| |
| .ti -8 |
| .IR PTYPE " := " |
| .RB " [ " main " | " sub " ] " |
| .B (default=main) |
| |
| .ti -8 |
| .IR DIR " := " |
| .RB " [ " in " | " out " | " fwd " ] " |
| |
| .ti -8 |
| .IR SELECTOR " := " |
| .B src |
| .IR ADDR "[/" PLEN "]" |
| .B dst |
| .IR ADDR "[/" PLEN] " [ " UPSPEC |
| .RB " ] [ " dev |
| .IR DEV " ] " |
| |
| .ti -8 |
| .IR UPSPEC " := " |
| .B proto |
| .IR PROTO " [ " |
| .RB " [ " sport |
| .IR PORT " ] " |
| .RB " [ " dport |
| .IR PORT " ] | " |
| .br |
| .RB " [ " type |
| .IR NUMBER " ] " |
| .RB " [ " code |
| .IR NUMBER " ] ] " |
| |
| .ti -8 |
| .IR ACTION " := " |
| .RB " [ " allow " | " block " ]" |
| .B (default=allow) |
| |
| .ti -8 |
| .IR LIMIT-LIST " := " |
| .RB " [ " |
| .IR LIMIT-LIST " ] | " |
| .RB " [ " limit |
| .IR LIMIT " ] " |
| |
| .ti -8 |
| .IR LIMIT " := " |
| .RB " [ [" time-soft "|" time-hard "|" time-use-soft "|" time-use-hard "]" |
| .IR SECONDS " ] | " |
| .RB " [ [" byte-soft "|" byte-hard "]" |
| .IR SIZE " ] | " |
| .br [ " |
| .RB "[" packet-soft "|" packet-hard "]" |
| .IR NUMBER " ] " |
| |
| .ti -8 |
| .IR TMPL-LIST " := " |
| .B " [ " |
| .IR TMPL-LIST " ] | " |
| .RB " [ " tmpl |
| .IR TMPL " ] " |
| |
| .ti -8 |
| .IR TMPL " := " |
| .IR ID " [ " |
| .B mode |
| .IR MODE " ] " |
| .RB " [ " reqid |
| .IR REQID " ] " |
| .RB " [ " level |
| .IR LEVEL " ] " |
| |
| .ti -8 |
| .IR ID " := " |
| .RB " [ " src |
| .IR ADDR " ] " |
| .RB " [ " dst |
| .IR ADDR " ] " |
| .RB " [ " proto |
| .IR XFRM_PROTO " ] " |
| .RB " [ " spi |
| .IR SPI " ] " |
| |
| .ti -8 |
| .IR XFRM_PROTO " := " |
| .RB " [ " esp " | " ah " | " comp " | " route2 " | " hao " ] " |
| |
| .ti -8 |
| .IR MODE " := " |
| .RB " [ " transport " | " tunnel " | " beet " ] " |
| .B (default=transport) |
| |
| .ti -8 |
| .IR LEVEL " := " |
| .RB " [ " required " | " use " ] " |
| .B (default=required) |
| |
| .ti -8 |
| .BR "ip xfrm monitor" " [ " all " | " |
| .IR LISTofOBJECTS " ] " |
| |
| .in -8 |
| .ad b |
| |
| .SH OPTIONS |
| |
| .TP |
| .BR "\-V" , " -Version" |
| print the version of the |
| .B ip |
| utility and exit. |
| |
| .TP |
| .BR "\-s" , " \-stats", " \-statistics" |
| output more information. If the option |
| appears twice or more, the amount of information increases. |
| As a rule, the information is statistics or some time values. |
| |
| .TP |
| .BR "\-f" , " \-family" |
| followed by protocol family identifier: |
| .BR "inet" , " inet6" |
| or |
| .B link |
| ,enforce the protocol family to use. If the option is not present, |
| the protocol family is guessed from other arguments. If the rest |
| of the command line does not give enough information to guess the |
| family, |
| .B ip |
| falls back to the default one, usually |
| .B inet |
| or |
| .BR "any" . |
| .B link |
| is a special family identifier meaning that no networking protocol |
| is involved. |
| |
| .TP |
| .B \-4 |
| shortcut for |
| .BR "-family inet" . |
| |
| .TP |
| .B \-6 |
| shortcut for |
| .BR "\-family inet6" . |
| |
| .TP |
| .B \-0 |
| shortcut for |
| .BR "\-family link" . |
| |
| .TP |
| .BR "\-o" , " \-oneline" |
| output each record on a single line, replacing line feeds |
| with the |
| .B '\e\' |
| character. This is convenient when you want to count records |
| with |
| .BR wc (1) |
| or to |
| .BR grep (1) |
| the output. |
| |
| .TP |
| .BR "\-r" , " \-resolve" |
| use the system's name resolver to print DNS names instead of |
| host addresses. |
| |
| .SH IP - COMMAND SYNTAX |
| |
| .SS |
| .I OBJECT |
| |
| .TP |
| .B link |
| - network device. |
| |
| .TP |
| .B address |
| - protocol (IP or IPv6) address on a device. |
| |
| .TP |
| .B addrlabel |
| - label configuration for protocol address selection. |
| |
| .TP |
| .B neighbour |
| - ARP or NDISC cache entry. |
| |
| .TP |
| .B route |
| - routing table entry. |
| |
| .TP |
| .B rule |
| - rule in routing policy database. |
| |
| .TP |
| .B maddress |
| - multicast address. |
| |
| .TP |
| .B mroute |
| - multicast routing cache entry. |
| |
| .TP |
| .B tunnel |
| - tunnel over IP. |
| |
| .TP |
| .B xfrm |
| - framework for IPsec protocol. |
| |
| .PP |
| The names of all objects may be written in full or |
| abbreviated form, f.e. |
| .B address |
| is abbreviated as |
| .B addr |
| or just |
| .B a. |
| |
| .SS |
| .I COMMAND |
| |
| Specifies the action to perform on the object. |
| The set of possible actions depends on the object type. |
| As a rule, it is possible to |
| .BR "add" , " delete" |
| and |
| .B show |
| (or |
| .B list |
| ) objects, but some objects do not allow all of these operations |
| or have some additional commands. The |
| .B help |
| command is available for all objects. It prints |
| out a list of available commands and argument syntax conventions. |
| .sp |
| If no command is given, some default command is assumed. |
| Usually it is |
| .B list |
| or, if the objects of this class cannot be listed, |
| .BR "help" . |
| |
| .SH ip link - network device configuration |
| |
| .B link |
| is a network device and the corresponding commands |
| display and change the state of devices. |
| |
| .SS ip link set - change device attributes |
| |
| .TP |
| .BI dev " NAME " (default) |
| .I NAME |
| specifies network device to operate on. |
| |
| .TP |
| .BR up " and " down |
| change the state of the device to |
| .B UP |
| or |
| .BR "DOWN" . |
| |
| .TP |
| .BR "arp on " or " arp off" |
| change the |
| .B NOARP |
| flag on the device. |
| |
| .TP |
| .BR "multicast on " or " multicast off" |
| change the |
| .B MULTICAST |
| flag on the device. |
| |
| .TP |
| .BR "dynamic on " or " dynamic off" |
| change the |
| .B DYNAMIC |
| flag on the device. |
| |
| .TP |
| .BI name " NAME" |
| change the name of the device. This operation is not |
| recommended if the device is running or has some addresses |
| already configured. |
| |
| .TP |
| .BI txqueuelen " NUMBER" |
| .TP |
| .BI txqlen " NUMBER" |
| change the transmit queue length of the device. |
| |
| .TP |
| .BI mtu " NUMBER" |
| change the |
| .I MTU |
| of the device. |
| |
| .TP |
| .BI address " LLADDRESS" |
| change the station address of the interface. |
| |
| .TP |
| .BI broadcast " LLADDRESS" |
| .TP |
| .BI brd " LLADDRESS" |
| .TP |
| .BI peer " LLADDRESS" |
| change the link layer broadcast address or the peer address when |
| the interface is |
| .IR "POINTOPOINT" . |
| |
| .TP |
| .BI netns " PID" |
| move the device to the network namespace associated with the process |
| .IR "PID" . |
| |
| .PP |
| .B Warning: |
| If multiple parameter changes are requested, |
| .B ip |
| aborts immediately after any of the changes have failed. |
| This is the only case when |
| .B ip |
| can move the system to an unpredictable state. The solution |
| is to avoid changing several parameters with one |
| .B ip link set |
| call. |
| |
| .SS ip link show - display device attributes |
| |
| .TP |
| .BI dev " NAME " (default) |
| .I NAME |
| specifies the network device to show. |
| If this argument is omitted all devices are listed. |
| |
| .TP |
| .B up |
| only display running interfaces. |
| |
| .SH ip address - protocol address management. |
| |
| The |
| .B address |
| is a protocol (IP or IPv6) address attached |
| to a network device. Each device must have at least one address |
| to use the corresponding protocol. It is possible to have several |
| different addresses attached to one device. These addresses are not |
| discriminated, so that the term |
| .B alias |
| is not quite appropriate for them and we do not use it in this document. |
| .sp |
| The |
| .B ip addr |
| command displays addresses and their properties, adds new addresses |
| and deletes old ones. |
| |
| .SS ip address add - add new protocol address. |
| |
| .TP |
| .BI dev " NAME" |
| the name of the device to add the address to. |
| |
| .TP |
| .BI local " ADDRESS " (default) |
| the address of the interface. The format of the address depends |
| on the protocol. It is a dotted quad for IP and a sequence of |
| hexadecimal halfwords separated by colons for IPv6. The |
| .I ADDRESS |
| may be followed by a slash and a decimal number which encodes |
| the network prefix length. |
| |
| .TP |
| .BI peer " ADDRESS" |
| the address of the remote endpoint for pointopoint interfaces. |
| Again, the |
| .I ADDRESS |
| may be followed by a slash and a decimal number, encoding the network |
| prefix length. If a peer address is specified, the local address |
| cannot have a prefix length. The network prefix is associated |
| with the peer rather than with the local address. |
| |
| .TP |
| .BI broadcast " ADDRESS" |
| the broadcast address on the interface. |
| .sp |
| It is possible to use the special symbols |
| .B '+' |
| and |
| .B '-' |
| instead of the broadcast address. In this case, the broadcast address |
| is derived by setting/resetting the host bits of the interface prefix. |
| |
| .TP |
| .BI label " NAME" |
| Each address may be tagged with a label string. |
| In order to preserve compatibility with Linux-2.0 net aliases, |
| this string must coincide with the name of the device or must be prefixed |
| with the device name followed by colon. |
| |
| .TP |
| .BI scope " SCOPE_VALUE" |
| the scope of the area where this address is valid. |
| The available scopes are listed in file |
| .BR "/etc/iproute2/rt_scopes" . |
| Predefined scope values are: |
| |
| .in +8 |
| .B global |
| - the address is globally valid. |
| .sp |
| .B site |
| - (IPv6 only) the address is site local, i.e. it is |
| valid inside this site. |
| .sp |
| .B link |
| - the address is link local, i.e. it is valid only on this device. |
| .sp |
| .B host |
| - the address is valid only inside this host. |
| .in -8 |
| |
| .SS ip address delete - delete protocol address |
| .B Arguments: |
| coincide with the arguments of |
| .B ip addr add. |
| The device name is a required argument. The rest are optional. |
| If no arguments are given, the first address is deleted. |
| |
| .SS ip address show - look at protocol addresses |
| |
| .TP |
| .BI dev " NAME " (default) |
| name of device. |
| |
| .TP |
| .BI scope " SCOPE_VAL" |
| only list addresses with this scope. |
| |
| .TP |
| .BI to " PREFIX" |
| only list addresses matching this prefix. |
| |
| .TP |
| .BI label " PATTERN" |
| only list addresses with labels matching the |
| .IR "PATTERN" . |
| .I PATTERN |
| is a usual shell style pattern. |
| |
| .TP |
| .BR dynamic " and " permanent |
| (IPv6 only) only list addresses installed due to stateless |
| address configuration or only list permanent (not dynamic) |
| addresses. |
| |
| .TP |
| .B tentative |
| (IPv6 only) only list addresses which did not pass duplicate |
| address detection. |
| |
| .TP |
| .B deprecated |
| (IPv6 only) only list deprecated addresses. |
| |
| .TP |
| .BR primary " and " secondary |
| only list primary (or secondary) addresses. |
| |
| .SS ip address flush - flush protocol addresses |
| This command flushes the protocol addresses selected by some criteria. |
| |
| .PP |
| This command has the same arguments as |
| .B show. |
| The difference is that it does not run when no arguments are given. |
| |
| .PP |
| .B Warning: |
| This command (and other |
| .B flush |
| commands described below) is pretty dangerous. If you make a mistake, |
| it will not forgive it, but will cruelly purge all the addresses. |
| |
| .PP |
| With the |
| .B -statistics |
| option, the command becomes verbose. It prints out the number of deleted |
| addresses and the number of rounds made to flush the address list. If |
| this option is given twice, |
| .B ip addr flush |
| also dumps all the deleted addresses in the format described in the |
| previous subsection. |
| |
| .SH ip addrlabel - protocol address label management. |
| |
| IPv6 address label is used for address selection |
| described in RFC 3484. Precedence is managed by userspace, |
| and only label is stored in kernel. |
| |
| .SS ip addrlabel add - add an address label |
| the command adds an address label entry to the kernel. |
| .TP |
| .BI prefix " PREFIX" |
| .TP |
| .BI dev " DEV" |
| the outgoing interface. |
| .TP |
| .BI label " NUMBER" |
| the label for the prefix. |
| 0xffffffff is reserved. |
| .SS ip addrlabel del - delete an address label |
| the command deletes an address label entry in the kernel. |
| .B Arguments: |
| coincide with the arguments of |
| .B ip addrlabel add |
| but label is not required. |
| .SS ip addrlabel list - list address labels |
| the command show contents of address labels. |
| .SS ip addrlabel flush - flush address labels |
| the command flushes the contents of address labels and it does not restore default settings. |
| .SH ip neighbour - neighbour/arp tables management. |
| |
| .B neighbour |
| objects establish bindings between protocol addresses and |
| link layer addresses for hosts sharing the same link. |
| Neighbour entries are organized into tables. The IPv4 neighbour table |
| is known by another name - the ARP table. |
| |
| .P |
| The corresponding commands display neighbour bindings |
| and their properties, add new neighbour entries and delete old ones. |
| |
| .SS ip neighbour add - add a new neighbour entry |
| .SS ip neighbour change - change an existing entry |
| .SS ip neighbour replace - add a new entry or change an existing one |
| |
| These commands create new neighbour records or update existing ones. |
| |
| .TP |
| .BI to " ADDRESS " (default) |
| the protocol address of the neighbour. It is either an IPv4 or IPv6 address. |
| |
| .TP |
| .BI dev " NAME" |
| the interface to which this neighbour is attached. |
| |
| .TP |
| .BI lladdr " LLADDRESS" |
| the link layer address of the neighbour. |
| .I LLADDRESS |
| can also be |
| .BR "null" . |
| |
| .TP |
| .BI nud " NUD_STATE" |
| the state of the neighbour entry. |
| .B nud |
| is an abbreviation for 'Neigh bour Unreachability Detection'. |
| The state can take one of the following values: |
| |
| .in +8 |
| .B permanent |
| - the neighbour entry is valid forever and can be only |
| be removed administratively. |
| .sp |
| |
| .B noarp |
| - the neighbour entry is valid. No attempts to validate |
| this entry will be made but it can be removed when its lifetime expires. |
| .sp |
| |
| .B reachable |
| - the neighbour entry is valid until the reachability |
| timeout expires. |
| .sp |
| |
| .B stale |
| - the neighbour entry is valid but suspicious. |
| This option to |
| .B ip neigh |
| does not change the neighbour state if it was valid and the address |
| is not changed by this command. |
| .in -8 |
| |
| .SS ip neighbour delete - delete a neighbour entry |
| This command invalidates a neighbour entry. |
| |
| .PP |
| The arguments are the same as with |
| .BR "ip neigh add" , |
| except that |
| .B lladdr |
| and |
| .B nud |
| are ignored. |
| |
| .PP |
| .B Warning: |
| Attempts to delete or manually change a |
| .B noarp |
| entry created by the kernel may result in unpredictable behaviour. |
| Particularly, the kernel may try to resolve this address even |
| on a |
| .B NOARP |
| interface or if the address is multicast or broadcast. |
| |
| .SS ip neighbour show - list neighbour entries |
| |
| This commands displays neighbour tables. |
| |
| .TP |
| .BI to " ADDRESS " (default) |
| the prefix selecting the neighbours to list. |
| |
| .TP |
| .BI dev " NAME" |
| only list the neighbours attached to this device. |
| |
| .TP |
| .B unused |
| only list neighbours which are not currently in use. |
| |
| .TP |
| .BI nud " NUD_STATE" |
| only list neighbour entries in this state. |
| .I NUD_STATE |
| takes values listed below or the special value |
| .B all |
| which means all states. This option may occur more than once. |
| If this option is absent, |
| .B ip |
| lists all entries except for |
| .B none |
| and |
| .BR "noarp" . |
| |
| .SS ip neighbour flush - flush neighbour entries |
| This command flushes neighbour tables, selecting |
| entries to flush by some criteria. |
| |
| .PP |
| This command has the same arguments as |
| .B show. |
| The differences are that it does not run when no arguments are given, |
| and that the default neighbour states to be flushed do not include |
| .B permanent |
| and |
| .BR "noarp" . |
| |
| .PP |
| With the |
| .B -statistics |
| option, the command becomes verbose. It prints out the number of |
| deleted neighbours and the number of rounds made to flush the |
| neighbour table. If the option is given |
| twice, |
| .B ip neigh flush |
| also dumps all the deleted neighbours. |
| |
| .SH ip route - routing table management |
| Manipulate route entries in the kernel routing tables keep |
| information about paths to other networked nodes. |
| .sp |
| .B Route types: |
| |
| .in +8 |
| .B unicast |
| - the route entry describes real paths to the destinations covered |
| by the route prefix. |
| |
| .sp |
| .B unreachable |
| - these destinations are unreachable. Packets are discarded and the |
| ICMP message |
| .I host unreachable |
| is generated. |
| The local senders get an |
| .I EHOSTUNREACH |
| error. |
| |
| .sp |
| .B blackhole |
| - these destinations are unreachable. Packets are discarded silently. |
| The local senders get an |
| .I EINVAL |
| error. |
| |
| .sp |
| .B prohibit |
| - these destinations are unreachable. Packets are discarded and the |
| ICMP message |
| .I communication administratively prohibited |
| is generated. The local senders get an |
| .I EACCES |
| error. |
| |
| .sp |
| .B local |
| - the destinations are assigned to this host. The packets are looped |
| back and delivered locally. |
| |
| .sp |
| .B broadcast |
| - the destinations are broadcast addresses. The packets are sent as |
| link broadcasts. |
| |
| .sp |
| .B throw |
| - a special control route used together with policy rules. If such a |
| route is selected, lookup in this table is terminated pretending that |
| no route was found. Without policy routing it is equivalent to the |
| absence of the route in the routing table. The packets are dropped |
| and the ICMP message |
| .I net unreachable |
| is generated. The local senders get an |
| .I ENETUNREACH |
| error. |
| |
| .sp |
| .B nat |
| - a special NAT route. Destinations covered by the prefix |
| are considered to be dummy (or external) addresses which require translation |
| to real (or internal) ones before forwarding. The addresses to translate to |
| are selected with the attribute |
| .B Warning: |
| Route NAT is no longer supported in Linux 2.6. |
| |
| |
| .BR "via" . |
| .sp |
| .B anycast |
| .RI "- " "not implemented" |
| the destinations are |
| .I anycast |
| addresses assigned to this host. They are mainly equivalent |
| to |
| .B local |
| with one difference: such addresses are invalid when used |
| as the source address of any packet. |
| |
| .sp |
| .B multicast |
| - a special type used for multicast routing. It is not present in |
| normal routing tables. |
| .in -8 |
| |
| .P |
| .B Route tables: |
| Linux-2.x can pack routes into several routing |
| tables identified by a number in the range from 1 to 255 or by |
| name from the file |
| .B /etc/iproute2/rt_tables |
| By default all normal routes are inserted into the |
| .B main |
| table (ID 254) and the kernel only uses this table when calculating routes. |
| |
| .sp |
| Actually, one other table always exists, which is invisible but |
| even more important. It is the |
| .B local |
| table (ID 255). This table |
| consists of routes for local and broadcast addresses. The kernel maintains |
| this table automatically and the administrator usually need not modify it |
| or even look at it. |
| |
| The multiple routing tables enter the game when |
| .I policy routing |
| is used. |
| |
| .SS ip route add - add new route |
| .SS ip route change - change route |
| .SS ip route replace - change or add new one |
| |
| .TP |
| .BI to " TYPE PREFIX " (default) |
| the destination prefix of the route. If |
| .I TYPE |
| is omitted, |
| .B ip |
| assumes type |
| .BR "unicast" . |
| Other values of |
| .I TYPE |
| are listed above. |
| .I PREFIX |
| is an IP or IPv6 address optionally followed by a slash and the |
| prefix length. If the length of the prefix is missing, |
| .B ip |
| assumes a full-length host route. There is also a special |
| .I PREFIX |
| .B default |
| - which is equivalent to IP |
| .B 0/0 |
| or to IPv6 |
| .BR "::/0" . |
| |
| .TP |
| .BI tos " TOS" |
| .TP |
| .BI dsfield " TOS" |
| the Type Of Service (TOS) key. This key has no associated mask and |
| the longest match is understood as: First, compare the TOS |
| of the route and of the packet. If they are not equal, then the packet |
| may still match a route with a zero TOS. |
| .I TOS |
| is either an 8 bit hexadecimal number or an identifier |
| from |
| .BR "/etc/iproute2/rt_dsfield" . |
| |
| .TP |
| .BI metric " NUMBER" |
| .TP |
| .BI preference " NUMBER" |
| the preference value of the route. |
| .I NUMBER |
| is an arbitrary 32bit number. |
| |
| .TP |
| .BI table " TABLEID" |
| the table to add this route to. |
| .I TABLEID |
| may be a number or a string from the file |
| .BR "/etc/iproute2/rt_tables" . |
| If this parameter is omitted, |
| .B ip |
| assumes the |
| .B main |
| table, with the exception of |
| .BR local " , " broadcast " and " nat |
| routes, which are put into the |
| .B local |
| table by default. |
| |
| .TP |
| .BI dev " NAME" |
| the output device name. |
| |
| .TP |
| .BI via " ADDRESS" |
| the address of the nexthop router. Actually, the sense of this field |
| depends on the route type. For normal |
| .B unicast |
| routes it is either the true next hop router or, if it is a direct |
| route installed in BSD compatibility mode, it can be a local address |
| of the interface. For NAT routes it is the first address of the block |
| of translated IP destinations. |
| |
| .TP |
| .BI src " ADDRESS" |
| the source address to prefer when sending to the destinations |
| covered by the route prefix. |
| |
| .TP |
| .BI realm " REALMID" |
| the realm to which this route is assigned. |
| .I REALMID |
| may be a number or a string from the file |
| .BR "/etc/iproute2/rt_realms" . |
| |
| .TP |
| .BI mtu " MTU" |
| .TP |
| .BI "mtu lock" " MTU" |
| the MTU along the path to the destination. If the modifier |
| .B lock |
| is not used, the MTU may be updated by the kernel due to |
| Path MTU Discovery. If the modifier |
| .B lock |
| is used, no path MTU discovery will be tried, all packets |
| will be sent without the DF bit in IPv4 case or fragmented |
| to MTU for IPv6. |
| |
| .TP |
| .BI window " NUMBER" |
| the maximal window for TCP to advertise to these destinations, |
| measured in bytes. It limits maximal data bursts that our TCP |
| peers are allowed to send to us. |
| |
| .TP |
| .BI rtt " TIME" |
| the initial RTT ('Round Trip Time') estimate. If no suffix is |
| specified the units are raw values passed directly to the |
| routing code to maintain compatability with previous releases. |
| Otherwise if a suffix of s, sec or secs is used to specify |
| seconds; ms, msec or msecs to specify milliseconds; us, usec |
| or usecs to specify microseconds; ns, nsec or nsecs to specify |
| nanoseconds; j, hz or jiffies to specify jiffies, the value is |
| converted to what the routing code expects. |
| |
| |
| .TP |
| .BI rttvar " TIME " "(2.3.15+ only)" |
| the initial RTT variance estimate. Values are specified as with |
| .BI rtt |
| above. |
| |
| .TP |
| .BI rto_min " TIME " "(2.6.23+ only)" |
| the minimum TCP Retransmission TimeOut to use when communicating with this |
| destination. Values are specified as with |
| .BI rtt |
| above. |
| |
| .TP |
| .BI ssthresh " NUMBER " "(2.3.15+ only)" |
| an estimate for the initial slow start threshold. |
| |
| .TP |
| .BI cwnd " NUMBER " "(2.3.15+ only)" |
| the clamp for congestion window. It is ignored if the |
| .B lock |
| flag is not used. |
| |
| .TP |
| .BI advmss " NUMBER " "(2.3.15+ only)" |
| the MSS ('Maximal Segment Size') to advertise to these |
| destinations when establishing TCP connections. If it is not given, |
| Linux uses a default value calculated from the first hop device MTU. |
| (If the path to these destination is asymmetric, this guess may be wrong.) |
| |
| .TP |
| .BI reordering " NUMBER " "(2.3.15+ only)" |
| Maximal reordering on the path to this destination. |
| If it is not given, Linux uses the value selected with |
| .B sysctl |
| variable |
| .BR "net/ipv4/tcp_reordering" . |
| |
| .TP |
| .BI nexthop " NEXTHOP" |
| the nexthop of a multipath route. |
| .I NEXTHOP |
| is a complex value with its own syntax similar to the top level |
| argument lists: |
| |
| .in +8 |
| .BI via " ADDRESS" |
| - is the nexthop router. |
| .sp |
| |
| .BI dev " NAME" |
| - is the output device. |
| .sp |
| |
| .BI weight " NUMBER" |
| - is a weight for this element of a multipath |
| route reflecting its relative bandwidth or quality. |
| .in -8 |
| |
| .TP |
| .BI scope " SCOPE_VAL" |
| the scope of the destinations covered by the route prefix. |
| .I SCOPE_VAL |
| may be a number or a string from the file |
| .BR "/etc/iproute2/rt_scopes" . |
| If this parameter is omitted, |
| .B ip |
| assumes scope |
| .B global |
| for all gatewayed |
| .B unicast |
| routes, scope |
| .B link |
| for direct |
| .BR unicast " and " broadcast |
| routes and scope |
| .BR host " for " local |
| routes. |
| |
| .TP |
| .BI protocol " RTPROTO" |
| the routing protocol identifier of this route. |
| .I RTPROTO |
| may be a number or a string from the file |
| .BR "/etc/iproute2/rt_protos" . |
| If the routing protocol ID is not given, |
| .B ip assumes protocol |
| .B boot |
| (i.e. it assumes the route was added by someone who doesn't |
| understand what they are doing). Several protocol values have |
| a fixed interpretation. |
| Namely: |
| |
| .in +8 |
| .B redirect |
| - the route was installed due to an ICMP redirect. |
| .sp |
| |
| .B kernel |
| - the route was installed by the kernel during autoconfiguration. |
| .sp |
| |
| .B boot |
| - the route was installed during the bootup sequence. |
| If a routing daemon starts, it will purge all of them. |
| .sp |
| |
| .B static |
| - the route was installed by the administrator |
| to override dynamic routing. Routing daemon will respect them |
| and, probably, even advertise them to its peers. |
| .sp |
| |
| .B ra |
| - the route was installed by Router Discovery protocol. |
| .in -8 |
| |
| .sp |
| The rest of the values are not reserved and the administrator is free |
| to assign (or not to assign) protocol tags. |
| |
| .TP |
| .B onlink |
| pretend that the nexthop is directly attached to this link, |
| even if it does not match any interface prefix. |
| |
| .TP |
| .B equalize |
| allow packet by packet randomization on multipath routes. |
| Without this modifier, the route will be frozen to one selected |
| nexthop, so that load splitting will only occur on per-flow base. |
| .B equalize |
| only works if the kernel is patched. |
| |
| .SS ip route delete - delete route |
| |
| .B ip route del |
| has the same arguments as |
| .BR "ip route add" , |
| but their semantics are a bit different. |
| |
| Key values |
| .RB "(" to ", " tos ", " preference " and " table ")" |
| select the route to delete. If optional attributes are present, |
| .B ip |
| verifies that they coincide with the attributes of the route to delete. |
| If no route with the given key and attributes was found, |
| .B ip route del |
| fails. |
| |
| .SS ip route show - list routes |
| the command displays the contents of the routing tables or the route(s) |
| selected by some criteria. |
| |
| .TP |
| .BI to " SELECTOR " (default) |
| only select routes from the given range of destinations. |
| .I SELECTOR |
| consists of an optional modifier |
| .RB "(" root ", " match " or " exact ")" |
| and a prefix. |
| .BI root " PREFIX" |
| selects routes with prefixes not shorter than |
| .IR PREFIX "." |
| F.e. |
| .BI root " 0/0" |
| selects the entire routing table. |
| .BI match " PREFIX" |
| selects routes with prefixes not longer than |
| .IR PREFIX "." |
| F.e. |
| .BI match " 10.0/16" |
| selects |
| .IR 10.0/16 "," |
| .IR 10/8 " and " 0/0 , |
| but it does not select |
| .IR 10.1/16 " and " 10.0.0/24 . |
| And |
| .BI exact " PREFIX" |
| (or just |
| .IR PREFIX ")" |
| selects routes with this exact prefix. If neither of these options |
| are present, |
| .B ip |
| assumes |
| .BI root " 0/0" |
| i.e. it lists the entire table. |
| |
| .TP |
| .BI tos " TOS" |
| .BI dsfield " TOS" |
| only select routes with the given TOS. |
| |
| .TP |
| .BI table " TABLEID" |
| show the routes from this table(s). The default setting is to show |
| .BR table main "." |
| .I TABLEID |
| may either be the ID of a real table or one of the special values: |
| .sp |
| .in +8 |
| .B all |
| - list all of the tables. |
| .sp |
| .B cache |
| - dump the routing cache. |
| .in -8 |
| |
| .TP |
| .B cloned |
| .TP |
| .B cached |
| list cloned routes i.e. routes which were dynamically forked from |
| other routes because some route attribute (f.e. MTU) was updated. |
| Actually, it is equivalent to |
| .BR "table cache" "." |
| |
| .TP |
| .BI from " SELECTOR" |
| the same syntax as for |
| .BR to "," |
| but it binds the source address range rather than destinations. |
| Note that the |
| .B from |
| option only works with cloned routes. |
| |
| .TP |
| .BI protocol " RTPROTO" |
| only list routes of this protocol. |
| |
| .TP |
| .BI scope " SCOPE_VAL" |
| only list routes with this scope. |
| |
| .TP |
| .BI type " TYPE" |
| only list routes of this type. |
| |
| .TP |
| .BI dev " NAME" |
| only list routes going via this device. |
| |
| .TP |
| .BI via " PREFIX" |
| only list routes going via the nexthop routers selected by |
| .IR PREFIX "." |
| |
| .TP |
| .BI src " PREFIX" |
| only list routes with preferred source addresses selected |
| by |
| .IR PREFIX "." |
| |
| .TP |
| .BI realm " REALMID" |
| .TP |
| .BI realms " FROMREALM/TOREALM" |
| only list routes with these realms. |
| |
| .SS ip route flush - flush routing tables |
| this command flushes routes selected by some criteria. |
| |
| .sp |
| The arguments have the same syntax and semantics as the arguments of |
| .BR "ip route show" , |
| but routing tables are not listed but purged. The only difference is |
| the default action: |
| .B show |
| dumps all the IP main routing table but |
| .B flush |
| prints the helper page. |
| |
| .sp |
| With the |
| .B -statistics |
| option, the command becomes verbose. It prints out the number of |
| deleted routes and the number of rounds made to flush the routing |
| table. If the option is given |
| twice, |
| .B ip route flush |
| also dumps all the deleted routes in the format described in the |
| previous subsection. |
| |
| .SS ip route get - get a single route |
| this command gets a single route to a destination and prints its |
| contents exactly as the kernel sees it. |
| |
| .TP |
| .BI to " ADDRESS " (default) |
| the destination address. |
| |
| .TP |
| .BI from " ADDRESS" |
| the source address. |
| |
| .TP |
| .BI tos " TOS" |
| .TP |
| .BI dsfield " TOS" |
| the Type Of Service. |
| |
| .TP |
| .BI iif " NAME" |
| the device from which this packet is expected to arrive. |
| |
| .TP |
| .BI oif " NAME" |
| force the output device on which this packet will be routed. |
| |
| .TP |
| .B connected |
| if no source address |
| .RB "(option " from ")" |
| was given, relookup the route with the source set to the preferred |
| address received from the first lookup. |
| If policy routing is used, it may be a different route. |
| |
| .P |
| Note that this operation is not equivalent to |
| .BR "ip route show" . |
| .B show |
| shows existing routes. |
| .B get |
| resolves them and creates new clones if necessary. Essentially, |
| .B get |
| is equivalent to sending a packet along this path. |
| If the |
| .B iif |
| argument is not given, the kernel creates a route |
| to output packets towards the requested destination. |
| This is equivalent to pinging the destination |
| with a subsequent |
| .BR "ip route ls cache" , |
| however, no packets are actually sent. With the |
| .B iif |
| argument, the kernel pretends that a packet arrived from this interface |
| and searches for a path to forward the packet. |
| |
| .SH ip rule - routing policy database management |
| |
| .BR "Rule" s |
| in the routing policy database control the route selection algorithm. |
| |
| .P |
| Classic routing algorithms used in the Internet make routing decisions |
| based only on the destination address of packets (and in theory, |
| but not in practice, on the TOS field). |
| |
| .P |
| In some circumstances we want to route packets differently depending not only |
| on destination addresses, but also on other packet fields: source address, |
| IP protocol, transport protocol ports or even packet payload. |
| This task is called 'policy routing'. |
| |
| .P |
| To solve this task, the conventional destination based routing table, ordered |
| according to the longest match rule, is replaced with a 'routing policy |
| database' (or RPDB), which selects routes by executing some set of rules. |
| |
| .P |
| Each policy routing rule consists of a |
| .B selector |
| and an |
| .B action predicate. |
| The RPDB is scanned in the order of increasing priority. The selector |
| of each rule is applied to {source address, destination address, incoming |
| interface, tos, fwmark} and, if the selector matches the packet, |
| the action is performed. The action predicate may return with success. |
| In this case, it will either give a route or failure indication |
| and the RPDB lookup is terminated. Otherwise, the RPDB program |
| continues on the next rule. |
| |
| .P |
| Semantically, natural action is to select the nexthop and the output device. |
| |
| .P |
| At startup time the kernel configures the default RPDB consisting of three |
| rules: |
| |
| .TP |
| 1. |
| Priority: 0, Selector: match anything, Action: lookup routing |
| table |
| .B local |
| (ID 255). |
| The |
| .B local |
| table is a special routing table containing |
| high priority control routes for local and broadcast addresses. |
| .sp |
| Rule 0 is special. It cannot be deleted or overridden. |
| |
| .TP |
| 2. |
| Priority: 32766, Selector: match anything, Action: lookup routing |
| table |
| .B main |
| (ID 254). |
| The |
| .B main |
| table is the normal routing table containing all non-policy |
| routes. This rule may be deleted and/or overridden with other |
| ones by the administrator. |
| |
| .TP |
| 3. |
| Priority: 32767, Selector: match anything, Action: lookup routing |
| table |
| .B default |
| (ID 253). |
| The |
| .B default |
| table is empty. It is reserved for some post-processing if no previous |
| default rules selected the packet. |
| This rule may also be deleted. |
| |
| .P |
| Each RPDB entry has additional |
| attributes. F.e. each rule has a pointer to some routing |
| table. NAT and masquerading rules have an attribute to select new IP |
| address to translate/masquerade. Besides that, rules have some |
| optional attributes, which routes have, namely |
| .BR "realms" . |
| These values do not override those contained in the routing tables. They |
| are only used if the route did not select any attributes. |
| |
| .sp |
| The RPDB may contain rules of the following types: |
| |
| .in +8 |
| .B unicast |
| - the rule prescribes to return the route found |
| in the routing table referenced by the rule. |
| |
| .B blackhole |
| - the rule prescribes to silently drop the packet. |
| |
| .B unreachable |
| - the rule prescribes to generate a 'Network is unreachable' error. |
| |
| .B prohibit |
| - the rule prescribes to generate 'Communication is administratively |
| prohibited' error. |
| |
| .B nat |
| - the rule prescribes to translate the source address |
| of the IP packet into some other value. |
| .in -8 |
| |
| .SS ip rule add - insert a new rule |
| .SS ip rule delete - delete a rule |
| |
| .TP |
| .BI type " TYPE " (default) |
| the type of this rule. The list of valid types was given in the previous |
| subsection. |
| |
| .TP |
| .BI from " PREFIX" |
| select the source prefix to match. |
| |
| .TP |
| .BI to " PREFIX" |
| select the destination prefix to match. |
| |
| .TP |
| .BI iif " NAME" |
| select the incoming device to match. If the interface is loopback, |
| the rule only matches packets originating from this host. This means |
| that you may create separate routing tables for forwarded and local |
| packets and, hence, completely segregate them. |
| |
| .TP |
| .BI tos " TOS" |
| .TP |
| .BI dsfield " TOS" |
| select the TOS value to match. |
| |
| .TP |
| .BI fwmark " MARK" |
| select the |
| .B fwmark |
| value to match. |
| |
| .TP |
| .BI priority " PREFERENCE" |
| the priority of this rule. Each rule should have an explicitly |
| set |
| .I unique |
| priority value. |
| The options preference and order are synonyms with priority. |
| |
| .TP |
| .BI table " TABLEID" |
| the routing table identifier to lookup if the rule selector matches. |
| It is also possible to use lookup instead of table. |
| |
| .TP |
| .BI realms " FROM/TO" |
| Realms to select if the rule matched and the routing table lookup |
| succeeded. Realm |
| .I TO |
| is only used if the route did not select any realm. |
| |
| .TP |
| .BI nat " ADDRESS" |
| The base of the IP address block to translate (for source addresses). |
| The |
| .I ADDRESS |
| may be either the start of the block of NAT addresses (selected by NAT |
| routes) or a local host address (or even zero). |
| In the last case the router does not translate the packets, but |
| masquerades them to this address. |
| Using map-to instead of nat means the same thing. |
| |
| .B Warning: |
| Changes to the RPDB made with these commands do not become active |
| immediately. It is assumed that after a script finishes a batch of |
| updates, it flushes the routing cache with |
| .BR "ip route flush cache" . |
| |
| .SS ip rule flush - also dumps all the deleted rules. |
| This command has no arguments. |
| |
| .SS ip rule show - list rules |
| This command has no arguments. |
| The options list or lst are synonyms with show. |
| |
| .SH ip maddress - multicast addresses management |
| |
| .B maddress |
| objects are multicast addresses. |
| |
| .SS ip maddress show - list multicast addresses |
| |
| .TP |
| .BI dev " NAME " (default) |
| the device name. |
| |
| .SS ip maddress add - add a multicast address |
| .SS ip maddress delete - delete a multicast address |
| these commands attach/detach a static link layer multicast address |
| to listen on the interface. |
| Note that it is impossible to join protocol multicast groups |
| statically. This command only manages link layer addresses. |
| |
| .TP |
| .BI address " LLADDRESS " (default) |
| the link layer multicast address. |
| |
| .TP |
| .BI dev " NAME" |
| the device to join/leave this multicast address. |
| |
| .SH ip mroute - multicast routing cache management |
| .B mroute |
| objects are multicast routing cache entries created by a user level |
| mrouting daemon (f.e. |
| .B pimd |
| or |
| .B mrouted |
| ). |
| |
| Due to the limitations of the current interface to the multicast routing |
| engine, it is impossible to change |
| .B mroute |
| objects administratively, so we may only display them. This limitation |
| will be removed in the future. |
| |
| .SS ip mroute show - list mroute cache entries |
| |
| .TP |
| .BI to " PREFIX " (default) |
| the prefix selecting the destination multicast addresses to list. |
| |
| .TP |
| .BI iif " NAME" |
| the interface on which multicast packets are received. |
| |
| .TP |
| .BI from " PREFIX" |
| the prefix selecting the IP source addresses of the multicast route. |
| |
| .SH ip tunnel - tunnel configuration |
| .B tunnel |
| objects are tunnels, encapsulating packets in IP packets and then |
| sending them over the IP infrastructure. |
| The encapulating (or outer) address family is specified by the |
| .B -f |
| option. The default is IPv4. |
| |
| .SS ip tunnel add - add a new tunnel |
| .SS ip tunnel change - change an existing tunnel |
| .SS ip tunnel delete - destroy a tunnel |
| |
| .TP |
| .BI name " NAME " (default) |
| select the tunnel device name. |
| |
| .TP |
| .BI mode " MODE" |
| set the tunnel mode. Available modes depend on the encapsulating address family. |
| .br |
| Modes for IPv4 encapsulation available: |
| .BR ipip ", " sit ", " isatap " and " gre "." |
| .br |
| Modes for IPv6 encapsulation available: |
| .BR ip6ip6 ", " ipip6 " and " any "." |
| |
| .TP |
| .BI remote " ADDRESS" |
| set the remote endpoint of the tunnel. |
| |
| .TP |
| .BI local " ADDRESS" |
| set the fixed local address for tunneled packets. |
| It must be an address on another interface of this host. |
| |
| .TP |
| .BI ttl " N" |
| set a fixed TTL |
| .I N |
| on tunneled packets. |
| .I N |
| is a number in the range 1--255. 0 is a special value |
| meaning that packets inherit the TTL value. |
| The default value for IPv4 tunnels is: |
| .BR "inherit" . |
| The default value for IPv6 tunnels is: |
| .BR "64" . |
| |
| |
| .TP |
| .BI tos " T" |
| .TP |
| .BI dsfield " T" |
| .TP |
| .BI tclass " T" |
| set a fixed TOS (or traffic class in IPv6) |
| .I T |
| on tunneled packets. |
| The default value is: |
| .BR "inherit" . |
| |
| .TP |
| .BI dev " NAME" |
| bind the tunnel to the device |
| .I NAME |
| so that tunneled packets will only be routed via this device and will |
| not be able to escape to another device when the route to endpoint |
| changes. |
| |
| .TP |
| .B nopmtudisc |
| disable Path MTU Discovery on this tunnel. |
| It is enabled by default. Note that a fixed ttl is incompatible |
| with this option: tunnelling with a fixed ttl always makes pmtu |
| discovery. |
| |
| .TP |
| .BI key " K" |
| .TP |
| .BI ikey " K" |
| .TP |
| .BI okey " K" |
| .RB ( " only GRE tunnels " ) |
| use keyed GRE with key |
| .IR K ". " K |
| is either a number or an IP address-like dotted quad. |
| The |
| .B key |
| parameter sets the key to use in both directions. |
| The |
| .BR ikey " and " okey |
| parameters set different keys for input and output. |
| |
| .TP |
| .BR csum ", " icsum ", " ocsum |
| .RB ( " only GRE tunnels " ) |
| generate/require checksums for tunneled packets. |
| The |
| .B ocsum |
| flag calculates checksums for outgoing packets. |
| The |
| .B icsum |
| flag requires that all input packets have the correct |
| checksum. The |
| .B csum |
| flag is equivalent to the combination |
| .BR "icsum ocsum" . |
| |
| .TP |
| .BR seq ", " iseq ", " oseq |
| .RB ( " only GRE tunnels " ) |
| serialize packets. |
| The |
| .B oseq |
| flag enables sequencing of outgoing packets. |
| The |
| .B iseq |
| flag requires that all input packets are serialized. |
| The |
| .B seq |
| flag is equivalent to the combination |
| .BR "iseq oseq" . |
| .B It isn't work. Don't use it. |
| |
| .TP |
| .BR "dscp inherit" |
| .RB ( " only IPv6 tunnels " ) |
| Inherit DS field between inner and outer header. |
| |
| .TP |
| .BI encaplim " ELIM" |
| .RB ( " only IPv6 tunnels " ) |
| set a fixed encapsulation limit. Default is 4. |
| |
| .TP |
| .BI flowlabel " FLOWLABEL" |
| .RB ( " only IPv6 tunnels " ) |
| set a fixed flowlabel. |
| |
| .SS ip tunnel prl - potential router list (ISATAP only) |
| |
| .TP |
| .BI dev " NAME" |
| mandatory device name. |
| |
| .TP |
| .BI prl-default " ADDR" |
| .TP |
| .BI prl-nodefault " ADDR" |
| .TP |
| .BI prl-delete " ADDR" |
| .RB "Add or delete " ADDR |
| as a potential router or default router. |
| |
| .SS ip tunnel show - list tunnels |
| This command has no arguments. |
| |
| .SH ip monitor and rtmon - state monitoring |
| |
| The |
| .B ip |
| utility can monitor the state of devices, addresses |
| and routes continuously. This option has a slightly different format. |
| Namely, the |
| .B monitor |
| command is the first in the command line and then the object list follows: |
| |
| .BR "ip monitor" " [ " all " |" |
| .IR LISTofOBJECTS " ]" |
| |
| .I OBJECT-LIST |
| is the list of object types that we want to monitor. |
| It may contain |
| .BR link ", " address " and " route "." |
| If no |
| .B file |
| argument is given, |
| .B ip |
| opens RTNETLINK, listens on it and dumps state changes in the format |
| described in previous sections. |
| |
| .P |
| If a file name is given, it does not listen on RTNETLINK, |
| but opens the file containing RTNETLINK messages saved in binary format |
| and dumps them. Such a history file can be generated with the |
| .B rtmon |
| utility. This utility has a command line syntax similar to |
| .BR "ip monitor" . |
| Ideally, |
| .B rtmon |
| should be started before the first network configuration command |
| is issued. F.e. if you insert: |
| .sp |
| .in +8 |
| rtmon file /var/log/rtmon.log |
| .in -8 |
| .sp |
| in a startup script, you will be able to view the full history |
| later. |
| |
| .P |
| Certainly, it is possible to start |
| .B rtmon |
| at any time. |
| It prepends the history with the state snapshot dumped at the moment |
| of starting. |
| |
| .SH ip xfrm - setting xfrm |
| xfrm is an IP framework, which can transform format of the datagrams, |
| .br |
| i.e. encrypt the packets with some algorithm. xfrm policy and xfrm state |
| are associated through templates |
| .IR TMPL_LIST "." |
| This framework is used as a part of IPsec protocol. |
| |
| .SS ip xfrm state add - add new state into xfrm |
| |
| .SS ip xfrm state update - update existing xfrm state |
| |
| .SS ip xfrm state allocspi - allocate SPI value |
| |
| .TP |
| .I MODE |
| is set as default to |
| .BR transport "," |
| but it could be set to |
| .BR tunnel "," ro " or " beet "." |
| |
| .TP |
| .I FLAG-LIST |
| contains one or more flags. |
| |
| .TP |
| .I FLAG |
| could be set to |
| .BR noecn ", " decap-dscp " or " wildrecv "." |
| |
| .TP |
| .I ENCAP |
| encapsulation is set to encapsulation type |
| .IR ENCAP-TYPE ", source port " SPORT ", destination port " DPORT " and " OADDR "." |
| |
| .TP |
| .I ENCAP-TYPE |
| could be set to |
| .BR espinudp " or " espinudp-nonike "." |
| |
| .TP |
| .I ALGO-LIST |
| contains one or more algorithms |
| .I ALGO |
| which depend on the type of algorithm set by |
| .IR ALGO_TYPE "." |
| It can be used these algoritms |
| .BR enc ", " auth " or " comp "." |
| |
| .SS ip xfrm policy add - add a new policy |
| |
| .SS ip xfrm policy update - update an existing policy |
| |
| .SS ip xfrm policy delete - delete existing policy |
| |
| .SS ip xfrm policy get - get existing policy |
| |
| .SS ip xfrm policy deleteall - delete all existing xfrm policy |
| |
| .SS ip xfrm policy list - print out the list of xfrm policy |
| |
| .SS ip xfrm policy flush - flush policies |
| It can be flush |
| .BR all |
| policies or only those specified with |
| .BR ptype "." |
| |
| .TP |
| .BI dir " DIR " |
| directory could be one of these: |
| .BR "inp", " out " or " fwd". |
| |
| .TP |
| .IR SELECTOR |
| selects for which addresses will be set up the policy. The selector |
| is defined by source and destination address. |
| |
| .TP |
| .IR UPSPEC |
| is defined by source port |
| .BR sport ", " |
| destination port |
| .BR dport ", " type |
| as number and |
| .B code |
| also number. |
| |
| .TP |
| .BI dev " DEV " |
| specify network device. |
| |
| .TP |
| .BI index " INDEX " |
| the number of indexed policy. |
| |
| .TP |
| .BI ptype " PTYPE " |
| type is set as default on |
| .BR "main" , |
| could be switch on |
| .BR "sub" . |
| |
| .TP |
| .BI action " ACTION " |
| is set as default on |
| .BR "allow". |
| It could be switch on |
| .BR "block". |
| |
| .TP |
| .BI priority " PRIORITY " |
| priority is a number. Default priority is set on zero. |
| |
| .TP |
| .IR LIMIT-LIST |
| limits are set in seconds, bytes or numbers of packets. |
| |
| .TP |
| .IR TMPL-LIST |
| template list is based on |
| .IR ID "," |
| .BR mode ", " reqid " and " level ". " |
| |
| .TP |
| .IR ID |
| is specified by source address, destination address, |
| .I proto |
| and value of |
| .IR spi "." |
| |
| .TP |
| .IR XFRM_PROTO |
| values: |
| .BR esp ", " ah ", " comp ", " route2 " or " hao "." |
| |
| .TP |
| .IR MODE |
| is set as default on |
| .BR transport "," |
| but it could be set on |
| .BR tunnel " or " beet "." |
| |
| .TP |
| .IR LEVEL |
| is set as default on |
| .BR required |
| and the other choice is |
| .BR use "." |
| |
| .TP |
| .IR UPSPEC |
| is specified by |
| .BR sport ", " |
| .BR dport ", " type |
| and |
| .B code |
| (NUMBER). |
| |
| .SS ip xfrm monitor - is used for listing all objects or defined group of them. |
| The |
| .B xfrm monitor |
| can monitor the policies for all objects or defined group of them. |
| |
| .SH HISTORY |
| .B ip |
| was written by Alexey N. Kuznetsov and added in Linux 2.2. |
| .SH SEE ALSO |
| .BR tc (8) |
| .br |
| .RB "IP Command reference " ip-cref.ps |
| .br |
| .RB "IP tunnels " ip-cref.ps |
| .br |
| .RB "User documentation at " http://lartc.org/ ", but please direct bugreports and patches to: " <netdev@vger.kernel.org> |
| |
| .SH AUTHOR |
| Original Manpage by Michail Litvak <mci@owl.openwall.com> |