ip命令手冊(一)

來源:互聯網
上載者:User
 ip命令手冊(一)

摘要
  ip是iproute2軟體包裡面的一個強大的網路設定工具,它能夠替代一些傳統的
網路管理工具。例如:ifconfig、route等。這個手冊將分章節介紹ip命令及其選
項。  
    本文的原文在
    http://defiant.coinet.com/iproute2/ip-cref/(2002-10-15 18:40:46)
------------------------------------------------------------------------
By nixe0n

作者:Alexey N.Kuznetsov

編譯:nixe0n

1.關於這篇文檔

2.ip命令的文法

3.ip的錯誤資訊

4.ip link--配置網路裝置

4.1.ip link set--改變裝置的屬性

4.2.ip link show--顯示裝置屬性

5.ip address--協議地址管理

5.1.ip address add--添加一個新的協議地址

5.2.ip address delete--刪除一個協議地址

5.3.ip address show--顯示協議地址

5.4.ip address flush--清除協議地址

6.ip neighbour--neighbour/arp表管理命令

6.1.ip neighbour add -- 添加一個新的鄰接條目
      ip neighbour change--修改一個現有的條目
      ip neighbour replace--替換一個已有的條目

6.2.ip neighbour delete--刪除一個鄰接條目

6.3.ip neighbour show--顯示近端分享的資訊

6.4.ip neighbour flush--清除鄰接條目

1.關於這篇文檔

  ip是iproute2軟體包裡面的一個強大的網路設定工具,本文將分章節介紹ip命
令及其選項。為了便於理解,作者在本文中列舉了很多樣本。但是,正如作者所說
,這不是一個教程,而是一個使用手冊。

2.ip命令的文法

  ip命令的用法如下:

ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]

 

  其中,OPTIONS是一些修改ip行為或者改變其輸出的選項。所有的選項都是以
-字元開頭,分為長、短兩種形式。目前,ip支援如下選項:

-V,-Version 列印ip的版本並退出。 
-s,-stats,-statistics 輸出更為詳盡的資訊。如果這個選項出現兩次或者多次,
輸出的資訊將更為詳盡。 
-f,-family 這個選項後面接協議種類,包括:inet、inet6或者link,強調使用的
協議種類。如果沒有足夠的資訊告訴ip使用的協議種類,ip就會使用預設值inet或
者any。link比較特殊,它表示不涉及任何網路通訊協定。 
-4 是-family inet的簡寫。 
-6 是-family inet6的簡寫。 
-0 是-family link的簡寫。 
-o,-oneline 對每行記錄都使用單行輸出,回行用字元代替。如果你需要使用wc、
grep等工具處理ip的輸出,會用到這個選項。 
-r,-resolve 查詢網域名稱解析系統,用獲得的主機名稱代替主機IP地址。 

  OBJECT是你要管理或者擷取資訊的對象。目前ip認識的對象包括:

link 網路裝置 
address 一個裝置的協議(IP或者IPV6)地址 
neighbour ARP或者NDISC緩衝區條目 
route 路由表條目 
rule 路由策略資料庫中的規則 
maddress 多播地址 
mroute 多播路由緩衝區條目 
tunnel IP上的通道 

  另外,所有的對象名都可以簡寫,例如:address可以簡寫為addr,甚至是a。

  COMMAND設定針對指定對象執行的操作,它和對象的類型有關。一般情況下,
ip支援對象的增加(add)、刪除(delete)和展示(show或者list)。有些對象不支援
所有這些操作,或者有其它的一些命令。對於所有的對象,使用者可以使用help命令
獲得協助。這個命令會列出這個對象支援的命令和參數的文法。如果沒有指定對象
的操作命令,ip會使用預設的命令。一般情況下,預設命令是list,如果對象不能
列出,就會執行help命令。

  ARGUMENTS是命令的一些參數,它們倚賴於對象和命令。ip支援兩種類型的參
數:flag和parameter。flag由一個關鍵片語成;parameter由一個關鍵詞加一個數
值組成。為了方便,每個命令都有一個可以忽略的預設參數。例如,參數dev是
ip link命令的預設參數,因此ip link ls eth0等於ip link ls dev eth0。我們
將在後面的章節詳細介紹每個命令的使用,命令的預設參數將使用default標出。

  幾乎所有的關鍵詞都可以簡寫為前幾個字母。在互動工作時,簡寫的方式非常
方便,但是我們不建議在指令碼中使用簡寫形式。另外,在講述過程中,所有的“官
方”簡寫方式都會在文章中列出。

3.ip的錯誤資訊

  由於以下原因,ip可能會操作失敗:

命令列語法錯誤:一個未知的關鍵詞(an unknown keyword);錯誤的IP地址格式
(incorrectly formated IP address)。在這種情況下,ip會列印出錯誤資訊然後
退出,在錯誤資訊中會包含失敗的原因。有時ip也會列印協助資訊。 
參數不能通過一致性校正。 
由於使用者沒有提供足夠的資訊,造成ip無法從參數中編譯出核心請求。 
核心返回某些系統調用的錯誤。ip使用perror(3)輸出錯誤資訊,因此輸出的錯誤
資訊包含一段注釋以及系統調用號。 
核心返回RTNETLINK請求錯誤。這類錯誤資訊以"RTNETLIK answers"開頭。 
 

  ip的所有操作都是原子操作。例如,如果ip執行失敗,它不會系統的任何東西
,ip link command例外,它會修改某些裝置參數。

  我們無法列出所有的錯誤資訊,尤其是語法錯誤。不過,錯誤資訊的意思都非
常明確。下面,我們列舉一些經常出現的錯誤資訊:

核心不支援netlink(netlink用於在核心模組和使用者之間傳遞資訊),會出現以下錯
誤資訊: 
Cannot open netlink socket: Invalid value  

核心不支援RTNETLINK,會出現以下錯誤資訊: 
Cannot talk to rtnetlink: Connect refused
Cannot send dump request: Connect refused  

如果在編譯核心時沒有配置CONFIG_IP_MULTIPLE_TABLES選項。在使用ip規則時會
出現和下面的資訊類似的錯誤資訊: 
kuznet@kaise $ ip rule list
RTNETLINK error: Invalid argument
dump terminated

 

4.ip link--配置網路裝置

對象 link由網路裝置,對應的命令顯示以及裝置的狀態變化組成。 
命令 set和show(或者list) 

4.1.ip link set--改變裝置的屬性

縮寫:set、s

參數:

dev NAME(default) 指定進行操作的網路裝置 
up/down 起動/關閉裝置。
例如:ip link set dev eth0 up 
arp on/off 改變網路裝置的NOARP選項。
如果裝置處於UP狀態,不允許進行這個操作。不過,核心和ip都不會對在這種情況
下的這個操作進行檢查。在裝置處於運行狀態下改變這個選項會造成無法預料的後
果。 
multicast on/off 改變網路裝置的MULTICAST選項。 
dynamic on/off 改變網路裝置的DYNAMIC選項。 
name NAME 把裝置的名字改為NAME(例如:eth0)。如果裝置處於運行狀態或者已經
配置了地址,建議不要進行這個操作。 
txqueuelen NUMBER或者txqlen NUMBER 改變裝置傳輸隊列的長度。
例如:ip link set dev eth0 txqueuelen 100 
mtu NUMBER 改變網路裝置MTU(傳輸單元最大值)的值。
例如:ip link set dev eth0 mtu 1500 
address LLADDRESS 修改網路裝置的MAC地址。
例如:ip link set dev eth0 address 00:01:4f:00:15:f1 
broadcat LLADDRESS或者brd LLADDRESS 修改資料連結層廣播位址。
注意:對於大多數的網路裝置(例如:乙太網路),修改鏈路層廣播位址會對網路造成
破壞。因此,如果對此沒有很深的理解,最好不要使用這個操作。 
peer LLADDRESS 當使用點對點連接時,使用這個操作可以修改對端的資料連結層
地址。 

  注意:ip不能修改PROMISC或者ALLMULTI選項。這兩個選項已經比較陳舊,而
且也不應該隨便修改。

  注意:如果同時修改多個參數,任何一個修改失敗,ip都會立即取消操作。這
種情況可能使系統進入無法預料的狀態。為了避免出現這種情況,盡量不要使用ip
 link set同時修改多個參數,例如:ip link set dev eth0 mtu 1500 
txqueuelen 100。

4.2.ip link show--顯示裝置屬性

縮寫:show、list、lst、sh、ls、l

參數

dev NAME(default) NAME指定網路裝置名稱,例如:eth0。如果省略了這個參數,
所有的裝置屬性就都會被列出。 
up 只顯示處於活動狀態網路介面的資訊。 

輸出格式

kuznet@alisa:~ $ ip link ls eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc cbq qlen 100
    link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff:

kuznet@alisa:~ $ ip link ls sit0
5: sit0@NOME: <NOARP,UP> mtu 1480 qdisc noqueue
    link/sit 0.0.0.0 brd 0.0.0.0

kuznet@alisa:~ $ ip link ls dummy
2: dummy: <BROADCAST,NOARP> mtu 1500 qdisc noop
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
kuznet@alisa:~ $ 

 

  在顯示的資訊中,每個引號之前的數字是一個介面索引,用於識別網路介面。
這個數字後面是網路介面的名字(例如:eth0、dummy等),它也和網路介面一一對
應。不過,在某些情況下,例如:驅動模組被卸載,對應的介面名就會從列表中消
失,而其它新建立的介面就會使用相同的名字。系統管理員可以ip link set 
name修改介面的名字。

  介面名可以是別的,或者是@NONE。這意味著這個裝置被綁定到其它的裝置,例
如資料包被發送到這個裝置,由這個裝置封裝,並從master裝置發出。如果裝置名稱
字是NONE,就表示master裝置是未知的。

  接著,我們看到的是mtu(Maximal Transfer Unit,傳輸單元最大值)。它決定這
個介面單個資料包能夠傳輸多少資料。

  qdisc(queuing discipline)顯示這個網路介面使用的排隊演算法。noqueue表示
不對資料包進行排隊;noop表示這個網路介面出於黑洞模式,也就是所有進入本網
絡裝置的資料會直接被丟棄。qlen是網路介面傳輸隊列的預設長度。

  網路介面可以有如下標誌:

UP 這個裝置處於運行狀態,可以接收、發送資料包。 
LOOPBACK 這個介面不能用於和其它的主機通訊,所有發送到這個介面的資料包都
會返回,而且這種介面只能接收反彈回來的資料包。 
BROADCAST 這個裝置具有把資料包發送到所有主機的能力。乙太網路串連是一個很典
型的例子。 
POINTTOPOINT 兩個節點之間是直接連接的。某個接點發出的所有資料包都會發到
對端節點,接收到的所有資料包也都是從對端節點發過來的。 
MULTICAST 這個標誌表示裝置具有多播能力,能夠把資料包發送到某些相鄰的網路
節點。實際上,廣播是多播的一個特例,它的多播組包括串連上的所有節點。
從定義上,POINTTOPOINT和BROADCAST串連都屬於多播。 

  *如果網路介面的標誌不屬於LOOPBACK、BROADCAST和POINTTOPOINT的任何一個
,就假定是NMBA(Non-Broadcast Multi-Access)類型。這是最為普遍的一個標誌。

PROMISC 裝置處於混雜模式,接收串連上的所有資料,不管目的地址是否是自己。
通常,這種模式主要用於橋接器和網路監視。 
ALLMULTI 裝置接收串連上的所有多播資料包,多播路由器(muliticast router)使
用這種模式。 
NOARP 這個標誌和其它的標誌不同,它的含義和涉及的網路通訊協定有關。它一般表示
這個裝置無需位址解析,軟體或者硬體不必藉助於系統協議棧的協助就知道如何把
資料包投遞到目的地。 
DYNAMIC 這個標誌表示這個網路介面是動態建立和撤消的。 
SLAVE 表示這個介面被綁定到其它的網路介面。 

  *除此之外,還有其它一些標誌。這些標誌或者已經過時(例如:NOTRAILERS)
,或者還沒有實現(如:DEBUG),或者只是特定於某些裝置(例如:MASTER、
AUTOMEDIA、PORTSEL)。因此,在此我們不作討論。

  *對於PROMISC和ALLMULTI標誌,ifconfig和ip顯示的值是不同的。ip link 
ls命令顯示的是裝置的真正狀態,而ifconfig顯示的是自己設定的虛擬設備狀態。

  顯示資訊的第二行包含和鏈路層地址(MAC地址)相關的資訊。其中,第一個詞
(ether、sit)定義介面的硬體類型。而介面的硬體類型又決定MAC地址的格式和語
法。預設的格式是硬體的MAC地址和廣播位址(如果是點對點連接方式,就是對端的
地址),地址是用冒號隔開的16進位數字。不過,默寫類型的串連有其特定的地址
格式,例如:IP通道的地址格式是用點分開的IP地址。

  NBMA(Non-Broadcast Multi-Access)串連沒有明確定義的廣播位址和對端地址
。不過,這個域包含一些有用的資訊,例如:倚賴於ARP伺服器的廣播位址。

  使用這個命令不會顯示多播地址,需要使用ip maddr ls命令。詳情請參考第
9節ip maddr ls。

統計資訊

  使用-statistics選項,ip命令會列印出網路介面的統計資訊,例如:

kuznet@alisa:~ $ ip -s link ls eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc cbq qlen 100
    link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    2449949362 2786187  0   0   0   0
    TX: bytes  packets  errors  dropped carrier collsns
    178558497  1783946  332 0   332 35172
kuznet@alisa:~ $

 

  RX:和TX:分別是接收和發送統計資訊的開頭。得到的統計資訊包括:

bytes 網路介面發送或者收到的位元組數。如果位元組數超過資料類型能夠表示的最大
數值,就會造成回卷。因此,你如果想連續監視這個指標,需要一個使用者空間的監
控進程周期性地儲存這個資料。 
packets 網路介面收到或者發送的資料包個數。 
errors 發生錯誤的次數。 
dropped 由於系統資源限制,而丟棄資料包的數量。 
overrun 由於發生堵塞,收到的資料包被丟棄的數量。如果介面發生堵塞,就意味
著核心或者你的機器太慢,無法處理收到的資料。 
mcast 收到的多播資料包數量,只有很少的裝置支援這個選項。 
carrier 串連介質出現故障的次數,例如:網線接觸不好。 
collsns 乙太網路類型介質發生衝突的事件次數。 
compressed 壓縮資料包的總數。這個指標只適用於使用VJ頭壓縮的網路介面。 

  如果-s選項出現兩次或者更多次,ip會輸出更為詳細的錯誤資訊統計。

kuznet@alisa:~ $ ip -s -s link ls eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc cbq qlen 100
    link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    2449949362 2786187  0   0   0   0
    RX errors: length   crc frame   fifo    missed
           0    0   0   0   0
    TX: bytes  packets  errors  dropped carrier collsns
    178558497  1783946  332 0   332 35172
    TX errors: aborted  fifo    window  heartbeat
           0    0   0   332
kuznet@alisa:~ $

 

  這些錯誤的名字是純以太化的,對於其它種類的裝置,這些域可能有不同的解
釋。

5.ip address--協議地址管理

縮寫 address、addr、a 
對象 這裡的地址是綁定到網路裝置上的協議(IP或者IPv6)地址。每個網路裝置至
少應該有一個協議地址。而且,一個網路裝置可以綁定多個協議地址。
ip addr命令能夠顯示網路裝置的協議地址及其性質,添加新的地址,刪除舊的地
址。 
命令 add、delete、flush和show(或者list) 

5.1.ip address add--添加一個新的協議地址

縮寫:add、a

參數

dev NAME 被操作的裝置名稱 
local ADDRESS(default) 介面的地址,地址格式和協議有關。IPv4地址使用.進行
分隔,而IPv6地址使用冒號分隔。ADDRESS可以跟著一個斜杠和表示掩碼位元的十
進位數字。 
peer ADDRESS 點對點介面對端的地址。ADDRESS也可以跟著一個斜杠和表示掩碼位
數的十進位數字。 
broadcast ADDRESS 介面的廣播位址。為了方便,可以使用+和-(注1)代替廣播地
址。例如:
ip addr add local 192.168.1.1/24 brd + dev eth0
ip addr add local 192.168.1.1/28 brd - dev eth0 
label NAME 為每個地址設定一個字串作為標籤。為了和Linux-2.0的網路別名兼
容,這個字串必須以裝置名稱開頭,接著一個冒號,例如:
#ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0 
scope SCOPE_VALUE(注2) 設定地址的有效範圍,它用於核心為資料包設定源地址
。有效範圍在/etc/iproute2/tr_scopes檔案列出,系統預先設定了一些範圍值

global 這個地址全域有效。

site 這個地址是局部串連,也就是只有目標地址是這個裝置地址時,才有效。

site (只適用於IPv6)地址在網站內部有效。

host 地址在主機內部有效。
 

  *注1:使用-,ip addr ls顯示的是網路地址;使用+,ip addr ls顯示的是廣
播地址。

  *注2:有關scope,在附錄A中有更為詳細的解釋。

樣本

在迴環裝置上添加一個迴環地址: 
#ip addr add 127.0.0.1/8 dev lo brd + scope host

在乙太網路介面eth0上增加一個地址10.0.0.1,掩碼長度為24位(155.155.155.0),
標準廣播位址,標籤為eth0:Alias: 
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias

 

5.2.ip address delete--刪除一個協議地址

縮寫:delete、del、d

參數

  這個命令的參數和ip addr add命令的參數一致。其中,只有裝置名稱是必需的
參數,其它都是可選的。如果沒有給定除裝置名稱之外的其它參數,ip就會刪除這個
裝置的第一個地址。

樣本

刪除迴環裝置的一個迴環地址。不過,最好不要作這種嘗試。 
#ip addr del 127.0.0.1/8 dev lo

以下shell代碼可以取消裝置上的所有IP地址。 
while ip -f inet add del dev eth0;do
   :nothing
done

另外,可以使用ip addr flush命令取消IP地址 
 

5.3.ip address show--顯示協議地址

縮寫:show、list、lst、sh、ls、l

參數

dev NAME(default) 裝置的名字 
scope SCOPE_VAL 只列出這個範圍的地址 
to PREFIX 只列出和PREFIX匹配的地址,例如:
ip addr ls to 192.168.1.1 
label PATTERN 只列出標籤匹配PATTERN的地址,PATTERN是一個shell風格的正則
運算式。 
dynamic和permanent 這兩個參數只適用於IPv6。使用dynamic,ip就只列出動態地
址;使用permanent,ip就只列出固定地址。 
tentative 這個參數只適用於IPv6,只列出沒有通過重複地址檢測[參考2]的地址
。 
deprecated 這個參數只適用於IPv6,只列出deprecated[參考2]地址。 
primary和secondary 只列出主(primary)或從(secondary)地址。 

輸出格式

duznet@alisa:~ $ ip addr ls eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc cbq qlen 100
    link/ether 00:a0:cc:66:18:78 brd ff:ff:ff:ff:ff:ff
    inet 193.233.7.90/24 brd 193.233.7.255 scope global eth0
    inet6 3ffe:2400:0:1:2a0:ccff:fe66:1878/64 scope global dynamic
       valid_lft forever preferred_lft 604746sec
    inet6 fe80::2a0:ccff:fe66:1878/10 scope link
duznet@alisa:~ $

 

  輸出的頭兩行和ip link ls的輸出是相同的。

  接著是IP和IPv6地址、廣播位址以及其它的地址屬性:範圍(scope)、標誌
(flag)和標籤(label)。地址標誌由核心設定,系統管理員不能修改。目前,核心
定義了以下標誌:

secondary 為輸出的資料包選擇預設源地址時,核心不使用這個地址。如果一個設
備已經有了一個地址,又給它設定了同一網段的不同地址,第二個地址就成為從
(secondary)地址。例如:eth0已經有一個地址192.168.1.108/24,如果又給它一
個地址192.168.1.3/24,192.168.1.3/24的就會被核心標記為從地址。 
dynamic 這個地址是通過無狀態的自動設定建立的(stateless 
autoconfiguration)[參考2]。如果地址仍然有效,在輸出中,還包括兩個時間信
息。preferred_lft期滿後,地址就會變成deprecated狀態;valiid_lft期滿後,
地址將失效。 
deprecated 這個地址是不允許的,也就是說,地址雖然有效,但是不能使用它建
立新的串連。 
tentative 由於重複地址監測[參考2]還沒有完成或者監測失敗,這個地址不能使
用。 

  

5.4.ip address flush--清除協議地址

縮寫:flush、f

簡介

  這個命令可以清除按照某種條件選擇的協議地址。

參數

  這個命令的參數和ip address show相同。唯一的區別是,如果不給定參數它
什麼都不會做。

警告

  這個命令(和後面討論的所有flush命令)非常危險。如果出現錯誤,將無法恢
複,它會清除被操作的地址。

statistics選項

  如果在ip addr flush命令中使用了-statistics選項,命令將輸出更為詳盡的
資訊。輸出的資訊包括刪除地址的數目和清理地址清單的圈數。如果使用了兩次
-s選項,ip addr flush會按照上節敘述的格式輸出所有被刪除的地址。

樣本

刪除屬於私網10.0.0.0/8的所有地址: 
netadm@amber:~ # ip -s -s a f to 10/8
2: dummy   inet 10.7.7.7/16 brd 10.7.255.255 scope global dummy
3: eth0   inet 10.10.7.7/16 brd 10.10.255.255 scope global eth0
4: eth1   inet 10.8.7.7/16 brd 10.8.255.255 scope global eth1

*** Round 1,deleting 3 addresses ***
*** Flush is complete after 1 round ***
netadm@amber:~ #

取消所有乙太網路卡的IP地址 
netadm@amber:~ # ip -4 addr flush label "eth0"

最後一個例子是對IPv6地址的操作。在啟動了轉寄或者關閉了自動設定之後,你需
要取消通過無狀態地址自動設定獲得的主機地址: 
netadm@amber:~ # ip -6 addr flush dynamic

 

6.ip neighbour--neighbour/arp表管理命令

縮寫 neighbour、neighbor、neigh、n 
對象 鄰接(neighbour)對象實現同一網段協議地址和鏈路層地址的綁定。在核心中
,這些條目被組織到表中。IPv4的相鄰表也被叫做ARP表。
ip neighbour命令支援對條目及其屬性的顯示、添加和刪除。 
命令 add、change、replace、delete、fulsh、show(或者list) 

  附錄B將詳細描述如何使用ip管理代理程式ARP/NDISC。

6.1.ip neighbour add -- 添加一個新的鄰接條目
      ip neighbour change--修改一個現有的條目
      ip neighbour replace--替換一個已有的條目

縮寫:add、a;change、chg;replace、repl

簡介:這三個命令用來建立一個鄰接表的條目或者更新現有的鄰接表條目。

參數

to ADDRESS(default) 相鄰的協議地址。可以是IPv4或者IPv6。 
dev NAME 和相鄰節點串連的裝置。 
lladdr LLADDRESS 鄰居的鏈路層地址。LLADDRESS可以為空白。 
nud NUD_STATE 鄰接條目的狀態。nud是Neighbour Unreachability Detection的
縮寫。可能的狀態包括:
permanent--鄰接條目永遠有效並且只能由管理員刪除。
noarp--鄰接條目有效,不必對其有效性進行確認。在其生命期期滿時會被刪除。

reachable--在逾時時間之內,這個鄰接條目是有效。
stale--這個鄰接條目是有效,但是比較可疑。如果條目是有效,ip neigh不
會改變鄰接狀態,也不會修改其地址。
 

樣本

在裝置eth0上,為地址10.0.0.3添加一個permanent ARP條目: 
ip neigh add 10.0.0.3 lladdr 0:0:0:0:0:1 dev eth0 nud perm

把狀態改為reachable 
ip neigh chg 10.0.0.3 dev eth0 nud reachable

 

6.2.ip neighbour delete--刪除一個鄰接條目

縮寫:delete、del、d

簡介

  這個命令用來刪除一個鄰接條目

參數

  這個命令的參數和ip neigh add命令的相同,只不過lladdr和nud將被忽略。

樣本

刪除裝置eth0上的一個ARP條目10.0.0.3 
ip neigh del 10.0.0.3 dev eth0

 

  執行了刪除命令之後,被刪除的條目不會馬上消失,它會在系統的下次垃圾收
集時被刪除。如果被操作的條目正在使用,將不能被刪除。

警告

  如果試圖刪除或者手工修改一個由核心建立的noarp條目,會導致一些不可預
知的行為。

6.3.ip neighbour show--顯示近端分享的資訊

縮寫:show、list、sh、ls

簡介

  這個命令用於顯示近端分享資訊。

參數

to ADDRESS(default) 指定要顯示的地址 
dev NAME 只顯示裝置NAME的鄰居 
unused 只顯示當前沒有使用的鄰居 
nud NUD_STATE 只列出處於NUD_STATE狀態的鄰接條目。NUD_STATE的值下面將會介
紹。nud all表示所有的狀態。這個選項可以使用多次。如果缺少這個選項,ip會
列出除none和noarp狀態的所有條目。 

輸出格式

duznet@alisa:~ $ ip neigh ls
:: dev lo lladdr 00:00:00:00:00:00 nud noarp
fe80::200:cff:fe76:3f85 dev eth0 lladdr 00:00:0c:76:3f:86 router 
    nud stale
0.0.0.0 dev lo lladdr 00:00:00:00:00:00 nud noarp
193.233.7.254 dev eth0 lladdr 00:00:0c:76:3f:85 nud reachable
193.233.7.85 dev eth0 lladdr 00:e0:1e:63:39:00 nud stale
kuznet@alisa:~ $

 

  每行的第一部分是近端分享的協議地址。第二部分是裝置名稱。省下的部分是這
個鄰接條目的資訊。

  lladdr是這個裝置的鏈路層地址。

  nud是條目代表串連的狀態。下面是狀態的完整列表和簡單描述:

none 近端分享的狀態為空白。 
incomplete 這個鄰居正在被解析。 
reachable 近端分享有效並且可達。 
stale 鄰居有效,但是可能不可達。因此,核心將在首次傳輸時進行檢查。 
delay 一個資料包已經發到處於stale的近端分享,核心在等待應答資訊。 
probe delay計時器到期,還沒有收到確認資訊。核心開始使用ARP/NDISC訊息包探
測這個近端分享。 
failed 解析失敗。 
noarp 近端分享有效,不必檢查。 
permanent 這是一個noarp條目,只有系統管理員可以從鄰接表中把它刪除。 

  在這些狀態中,除了none、faliled和incomplete.

  IPVv6近端分享可以有一個叫做router的標誌,它表示這個節點是一個IPv6路
由器。

-statistics

  -statistics選項可以顯示很多有用的資訊。例如:

kuznet@alisa:~ $ ip -s n ls 193.233.7.254
193.233.7.254. dev eth0 lladdr 00:00:0c:76:3f:85 ref 5 
    used 12/13/20 nud reachable
kuznet@alisa:~ $

 

  輸出資訊裡面多了ref和用斜缸分開的三個時間。ref表示有多少使用者使用這個
條目;三個時間分別是使用時間、確認時間和重新整理時間。因此,上面輸出中的時間
表示:

條目12秒之前剛剛使用過; 
13秒之前被確認; 
20秒之前被更新。 
 

6.4.ip neighbour flush--清除鄰接條目

縮寫:flush、f

簡介

  這個命令用來清除符合某個條件的鄰接表條目。

參數

  這個命令的參數和ip neigh sh相同。不同之處是,如果沒有參數,它什麼也
不會做。而且,預設情況下,被刪除的條目不包括處於permanent和noarp狀態的條
目。

-statistics

  使用了-statistics選項,這個命令的輸出將更為詳盡。它會輸出刪除的條目
數和清除鄰接表遍曆的次數。如果使用了兩個-s選項,命令的輸出將包括被刪除條
目的資訊。

樣本

netadm@alisa:~ # ip -s -s n f 193.233.7.254
193.233.7.254 dev eth0 lladdr 00:00:0c:76:3f:85 ref 5 
    used 12/13/20 nud reachable

*** Round 1,deleting 1 entries ***
*** Flush is complete after 1 round ***
netadm@alisa:~ #

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.