ip命令手冊(cè)
ip 命令手冊(cè)ip 命令手冊(cè)(一)摘要ip 是iproute2軟件包里面的一個(gè)強(qiáng)大的網(wǎng)絡(luò)配置工具,它能夠替代一些傳統(tǒng)的網(wǎng)絡(luò)管理工具。例如:ifconfig 、route 等。這個(gè)手冊(cè)將分章節(jié)介紹ip
ip 命令手冊(cè)
ip 命令手冊(cè)(一)
摘要
ip 是iproute2軟件包里面的一個(gè)強(qiáng)大的網(wǎng)絡(luò)配置工具,它能夠替代一些傳統(tǒng)的網(wǎng)絡(luò)管理工具。例如:ifconfig 、route 等。這個(gè)手冊(cè)將分章節(jié)介紹ip 命令及其選項(xiàng)。
18:40:46)本文的原文在http://defiant.coinet.com/iproute2/ip-cref/(2002-10-15
By nixe0n
作者:AlexeyN.Kuznetsov
編譯:nixe0n
1.關(guān)于這篇文檔
2.ip 命令的語(yǔ)法
3.ip 的錯(cuò)誤信息
4.ip link--配置網(wǎng)絡(luò)設(shè)備
4.1.ip link set--改變?cè)O(shè)備的屬性
4.2.ip link show--顯示設(shè)備屬性
5.ip address--協(xié)議地址管理
5.1.ip address add--添加一個(gè)新的協(xié)議地址
5.2.ip address delete--刪除一個(gè)協(xié)議地址
5.3.ip address show--顯示協(xié)議地址
5.4.ip address flush--清除協(xié)議地址
6.ip neighbour--neighbour/arp表管理命令
6.1.ip neighbour add --添加一個(gè)新的鄰接條目
ip neighbour change--修改一個(gè)現(xiàn)有的條目
ip neighbour replace--替換一個(gè)已有的條目
6.2.ip neighbour delete--刪除一個(gè)鄰接條目
1
,ip 命令手冊(cè)
6.3.ip neighbour show--顯示網(wǎng)絡(luò)鄰居的信息
6.4.ip neighbour flush--清除鄰接條目
1. 關(guān)于這篇文檔
ip 是iproute2軟件包里面的一個(gè)強(qiáng)大的網(wǎng)絡(luò)配置工具,本文將分章節(jié)介紹ip 命令及其選項(xiàng)。為了便于理解,作者在本文中列舉了很多示例。但是,正如作者所說,這不是一個(gè)教程,而是一個(gè)使用手冊(cè)。
2.ip 命令的語(yǔ)法
ip 命令的用法如下:
ip [OPTIONS]OBJECT [COMMAND[ARGUMENTS]]
其中,OPTIONS是一些修改ip 行為或者改變其輸出的選項(xiàng)。所有的選項(xiàng)都是以-字符開頭,分為長(zhǎng)、短兩種形式。目前,ip支持如下選項(xiàng):
OBJECT 是你要管理或者獲取信息的對(duì)象。目前ip 認(rèn)識(shí)的對(duì)象包括:
2
,ip 命令手冊(cè)
另外,所有的對(duì)象名都可以簡(jiǎn)寫,例如:address 可以簡(jiǎn)寫為addr ,甚至是a 。
COMMAND 設(shè)置針對(duì)指定對(duì)象執(zhí)行的操作,它和對(duì)象的類型有關(guān)。一般情況下,ip 支持對(duì)象的增加(add )、刪除(delete )和展示(show 或者list )。有些對(duì)象不支持所有這些操作,或者有其它的一些命令。對(duì)于所有的對(duì)象,用戶可以使用help 命令獲得幫助。這個(gè)命令會(huì)列出這個(gè)對(duì)象支持的命令和參數(shù)的語(yǔ)法。如果沒有指定對(duì)象的操作命令,ip會(huì)使用默認(rèn)的命令。一般情況下,默認(rèn)命令是list,如果對(duì)象不能列出,就會(huì)執(zhí)行help 命令。
ARGUMENTS 是命令的一些參數(shù),它們倚賴于對(duì)象和命令。ip 支持兩種類型的參數(shù):flag 和parameter 。flag由一個(gè)關(guān)鍵詞組成;parameter由一個(gè)關(guān)鍵詞加一個(gè)數(shù)值組成。為了方便,每個(gè)命令都有一個(gè)可以忽略的默認(rèn)參數(shù)。例如,參數(shù)dev 是ip link 命令的默認(rèn)參數(shù),因此ip link ls eth0等于ip link ls dev eth0。我們將在后面的章節(jié)詳細(xì)介紹每個(gè)命令的使用,命令的默認(rèn)參數(shù)將使用default 標(biāo)出。
幾乎所有的關(guān)鍵詞都可以簡(jiǎn)寫為前幾個(gè)字母。在交互工作時(shí),簡(jiǎn)寫的方式非常方便,但是我們不建議在腳本中使用簡(jiǎn)寫形式。另外,在講述過程中,所有的“官方”簡(jiǎn)寫方式都會(huì)在文章中列出。
3.ip 的錯(cuò)誤信息
由于以下原因,ip可能會(huì)操作失?。?/p>
?命令行語(yǔ)法錯(cuò)誤:一個(gè)未知的關(guān)鍵詞(anunknown keyword) ;錯(cuò)誤的IP 地址格式
(incorrectlyformated IP address) 。在這種情況下,ip 會(huì)打印出錯(cuò)誤信息然后退出,在錯(cuò)
誤信息中會(huì)包含失敗的原因。有時(shí)ip 也會(huì)打印幫助信息。
?
?
?
?參數(shù)不能通過一致性校驗(yàn)。由于用戶沒有提供足夠的信息,造成ip 無法從參數(shù)中編譯出內(nèi)核請(qǐng)求。內(nèi)核返回某些系統(tǒng)調(diào)用的錯(cuò)誤。ip 使用perror(3)輸出錯(cuò)誤信息,因此輸出的錯(cuò)誤信內(nèi)核返回RTNETLINK 請(qǐng)求錯(cuò)誤。這類錯(cuò)誤信息以"RTNETLIK answers" 開頭。息包含一段注釋以及系統(tǒng)調(diào)用號(hào)。
ip 的所有操作都是原子操作。例如,如果ip 執(zhí)行失敗,它不會(huì)系統(tǒng)的任何東西,ip link command 例外,它會(huì)修改某些設(shè)備參數(shù)。
我們無法列出所有的錯(cuò)誤信息,尤其是語(yǔ)法錯(cuò)誤。不過,錯(cuò)誤信息的意思都非常明確。下面,我們列舉一些經(jīng)常出現(xiàn)的錯(cuò)誤信息:
?內(nèi)核不支持netlink(netlink用于在內(nèi)核模塊和用戶之間傳遞信息) ,會(huì)出現(xiàn)以下錯(cuò)誤
Cannot open netlink socket:Invalid value
?內(nèi)核不支持RTNETLINK ,會(huì)出現(xiàn)以下錯(cuò)誤信息:
3信息:
,ip 命令手冊(cè)
Cannot talk to rtnetlink:Connect refused
Cannot send dump request:Connect refused
?如果在編譯內(nèi)核時(shí)沒有配置CONFIG_IP_MULTIPLE_TABLES選項(xiàng)。在使用ip 規(guī)則時(shí)會(huì)出現(xiàn)和下面的信息類似的錯(cuò)誤信息:
kuznet@kaise$ip rule list
RTNETLINK error:Invalid argument
dump terminated
4.1.ip link set--改變?cè)O(shè)備的屬性
?縮寫:set、s
?
4
ip 命令手冊(cè)
注意:ip不能修改PROMISC 或者ALLMULTI 選項(xiàng)。這兩個(gè)選項(xiàng)已經(jīng)比較陳舊,而且也不應(yīng)該隨便修改。
注意:如果同時(shí)修改多個(gè)參數(shù),任何一個(gè)修改失敗,ip都會(huì)立即取消操作。這種情況可能使系統(tǒng)進(jìn)入無法預(yù)料的狀態(tài)。為了避免出現(xiàn)這種情況,盡量不要使用ip link set 同時(shí)修改多個(gè)參數(shù),例如:iplink set dev eth0mtu 1500txqueuelen 100。
4.2.ip link show--顯示設(shè)備屬性
?縮寫:show 、list 、lst 、sh 、ls 、l
?
?kuznet@alisa:~$ip link ls eth0
3:eth0:mtu 1500qdisc cbq qlen 100
link/ether00:a0:cc:66:18:78brd ff:ff:ff:ff:ff:ff:
kuznet@alisa:~$ip link ls sit0
5:sit0@NOME:mtu 1480qdisc noqueue
link/sit0.0.0.0brd 0.0.0.0
kuznet@alisa:~$ip link ls dummy
2:dummy:mtu 1500qdisc noop
link/ether00:00:00:00:00:00brd ff:ff:ff:ff:ff:ff
kuznet@alisa:~$
在顯示的信息中,每個(gè)引號(hào)之前的數(shù)字是一個(gè)接口索引,用于識(shí)別網(wǎng)絡(luò)接口。這個(gè)數(shù)字后面是網(wǎng)絡(luò)接口的名字(例如:eth0、dummy等),它也和網(wǎng)絡(luò)接口一一對(duì)應(yīng)。不過,在某些情況下,例如:驅(qū)動(dòng)模塊被卸載,對(duì)應(yīng)的接口名就會(huì)從列表中消失,而其它新創(chuàng)建的接口就會(huì)使用相同的名字。系統(tǒng)管理員可以ip link set name 修改接口的名字。
接口名可以是別的,或者是@NONE。這意味著這個(gè)設(shè)備被綁定到其它的設(shè)備,例如數(shù)據(jù)包被發(fā)送到這個(gè)設(shè)備,由這個(gè)設(shè)備封裝,并從master 設(shè)備發(fā)出。如果設(shè)備名字是NONE ,就表示master 設(shè)備是未知的。
接著,我們看到的是mtu(MaximalTransfer Unit,最大傳輸單元)。它決定這個(gè)接口單個(gè)數(shù)據(jù)包能夠傳輸多少數(shù)據(jù)。
qdisc (queuingdiscipline)顯示這個(gè)網(wǎng)絡(luò)接口使用的排隊(duì)算法。noqueue 表示不對(duì)數(shù)據(jù)包進(jìn)行排隊(duì);noop 表示這個(gè)網(wǎng)絡(luò)接口出于黑洞模式,也就是所有進(jìn)入本網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)會(huì)直接被丟棄。qlen 是網(wǎng)絡(luò)接口傳輸隊(duì)列的默認(rèn)長(zhǎng)度。
5
,ip 命令手冊(cè)
網(wǎng)絡(luò)接口可以有如下標(biāo)志:
*如果網(wǎng)絡(luò)接口的標(biāo)志不屬于LOOPBACK、BROADCAST和POINTTOPOINT 的任何一個(gè),就假定是NMBA(Non-BroadcastMulti-Access)類型。這是最為普遍的一個(gè)標(biāo)志。
*除此之外,還有其它一些標(biāo)志。這些標(biāo)志或者已經(jīng)過時(shí)(例如:NOTRAILERS),或者還沒有實(shí)現(xiàn)(如:DEBUG),或者只是特定于某些設(shè)備(例如:MASTER、AUTOMEDIA、PORTSEL)。因此,在此我們不作討論。
*對(duì)于PROMISC 和ALLMULTI 標(biāo)志,ifconfig 和ip 顯示的值是不同的。ip link ls 命令顯示的是設(shè)備的真正狀態(tài),而ifconfig 顯示的是自己設(shè)置的虛擬設(shè)備狀態(tài)。
顯示信息的第二行包含和鏈路層地址(MAC地址)相關(guān)的信息。其中,第一個(gè)詞(ether、sit)定義接口的硬件類型。而接口的硬件類型又決定MAC 地址的格式和語(yǔ)法。默認(rèn)的格式是硬件的MAC 地址和廣播地址(如果是點(diǎn)對(duì)點(diǎn)連接方式,就是對(duì)端的地址),地址是用冒號(hào)隔開的16進(jìn)制數(shù)字。不過,默寫類型的連接有其特定的地址格式,例如:IP通道的地址格式是用點(diǎn)分開的IP 地址。
NBMA(Non-BroadcastMulti-Access)連接沒有明確定義的廣播地址和對(duì)端地址。不過,這個(gè)域包含一些有用的信息,例如:倚賴于ARP 服務(wù)器的廣播地址。
6
,ip 命令手冊(cè)
使用這個(gè)命令不會(huì)顯示多播地址,需要使用ip maddr ls 命令。詳情請(qǐng)參考第9節(jié)ip maddr ls。
統(tǒng)計(jì)信息
使用-statistics選項(xiàng),ip命令會(huì)打印出網(wǎng)絡(luò)接口的統(tǒng)計(jì)信息,例如:
kuznet@alisa:~$ip -s link ls eth0
3:eth0:mtu 1500qdisc cbq qlen 100
link/ether00:a0:cc:66:18:78brd ff:ff:ff:ff:ff:ff
RX:bytes packets errors dropped overrun mcast
244994936227861870000
TX:bytes packets errors dropped carrier collsns
1785584971783946332033235172
kuznet@alisa:~$
RX:和TX:分別是接收和發(fā)送統(tǒng)計(jì)信息的開頭。得到的統(tǒng)計(jì)信息包括:
如果-s 選項(xiàng)出現(xiàn)兩次或者更多次,ip會(huì)輸出更為詳細(xì)的錯(cuò)誤信息統(tǒng)計(jì)。
kuznet@alisa:~$ip -s -s link ls eth0
3:eth0:mtu 1500qdisc cbq qlen 100
link/ether00:a0:cc:66:18:78brd ff:ff:ff:ff:ff:ff
RX:bytes packets errors dropped overrun mcast
244994936227861870000
RX errors:length crc frame fifo missed
00000
TX:bytes packets errors dropped carrier collsns
1785584971783946332033235172
7
,ip 命令手冊(cè)
TX errors:aborted fifo window heartbeat
000332
kuznet@alisa:~$
這些錯(cuò)誤的名字是純以太化的,對(duì)于其它種類的設(shè)備,這些域可能有不同的解釋。
5.1.ip address add--添加一個(gè)新的協(xié)議地址
?縮寫:add 、a
?
8
,ip 命令手冊(cè)
*注1:使用-,ipaddr ls 顯示的是網(wǎng)絡(luò)地址;使用 ,ipaddr ls 顯示的是廣播地址。*注2:有關(guān)scope,在附錄A 中有更為詳細(xì)的解釋。
?
示例
?
?在回環(huán)設(shè)備上添加一個(gè)回環(huán)地址:#ipaddr add 127.0.0.1/8dev lo brd scope host 在以太網(wǎng)接口eth0上增加一個(gè)地址10.0.0.1,掩碼長(zhǎng)度為24位(155.155.155.0),標(biāo)準(zhǔn)
#ipaddr add 10.0.0.1/24brd dev eth0label eth0:Alias廣播地址,標(biāo)簽為eth0:Alias:
5.2.ip address delete--刪除一個(gè)協(xié)議地址
?縮寫:delete 、del 、d
?參數(shù)
這個(gè)命令的參數(shù)和ip addr add 命令的參數(shù)一致。其中,只有設(shè)備名是必需的參數(shù),其它都是可選的。如果沒有給定除設(shè)備名之外的其它參數(shù),ip就會(huì)刪除這個(gè)設(shè)備的第一個(gè)地址。
?示例
?
?刪除回環(huán)設(shè)備的一個(gè)回環(huán)地址。不過,最好不要作這種嘗試。#ipaddr del 127.0.0.1/8dev lo 以下shell 代碼可以取消設(shè)備上的所有IP 地址。
while ip -f inet add del dev eth0;do
:nothing
done
?另外,可以使用ip addr flush 命令取消IP 地址
5.3.ip address show--顯示協(xié)議地址
?縮寫:show 、list 、lst 、sh 、ls 、l
?
9
,ip 命令手冊(cè)
?
duznet@alisa:~$ip addr ls eth0
3:eth0:mtu 1500qdisc cbq qlen 100
link/ether00:a0:cc:66:18:78brd ff:ff:ff:ff:ff:ff
inet 193.233.7.90/24brd 193.233.7.255scope global eth0
inet63ffe:2400:0:1:2a0:ccff:fe66:1878/64
scope global dynamic
valid_lftforever preferred_lft604746sec
inet6fe80::2a0:ccff:fe66:1878/10scope link
duznet@alisa:~$
輸出的頭兩行和ip link ls 的輸出是相同的。
接著是IP 和IPv6地址、廣播地址以及其它的地址屬性:范圍(scope)、標(biāo)志(flag)和標(biāo)簽(label)。地址標(biāo)志由內(nèi)核設(shè)置,系統(tǒng)管理員不能修改。目前,內(nèi)核定義了以下標(biāo)志:
5.4.ip address flush--清除協(xié)議地址
?縮寫:flush 、f
?簡(jiǎn)介
這個(gè)命令可以清除按照某種條件選擇的協(xié)議地址。
?參數(shù)
10