ip命令手冊(四)

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

10.ip mroute -- 多播路由緩衝管理

10.1.縮寫

  mroute、mr

10.2.對象

  這個命令的操作對象是多播路由緩衝條目,這個緩衝是由一個使用者空間的多播
路由監控進程(例如pimd或者mrouted)建立的。

  目前,由於受和多播路由引擎介面的限制,還不能通過ip命令修改多播路由對
象,因此我們只能查看。

10.3.命令

  show或者list

10.4.ip mroute show -- 列出多播路由緩衝條目

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

參數

to PREFIX(default) 選擇到目的多播地址是PREFIX
iif NAME 接收多播資料包的網路介面
from PREFIX PREFIX選擇多播路由的IP源地址

輸出格式

kuznet@amber:~ $ ip mroute ls
(193.232.127.6, 224.0.1.39)      Iif: unresolved
(193.232.244.34, 224.0.1.40)     Iif: unresolved
(193.233.7.65, 224.66.66.66)     Iif: eth0       Oifs: pimreg
kuznet@amber:~ $

  多播路由緩衝條目是(S,G)形式的,S是源地址,G是多播組。iif是接收多播數
據包的網路介面,如果裝置名稱是關鍵詞unresolved,就表示路由監控進程不能解析
這個條目;接下來的關鍵詞是oif,它後面跟著一些輸出網路介面,介面之間用空
格分開。

統計資訊

  使用-statistics選項,我們可以得到更為詳細的輸出資訊,包括:資料包的
數量,通過這條路由轉寄的位元組數以及到達錯誤介面的資料包數量(如果有)。

kuznet@amber:~ $ ip -s mr ls 224.66/16
(193.233.7.65, 224.66.66.66)     Iif: eth0       Oifs: pimreg
 9383 packets, 300256 bytes
kuznet@amber:~ $

11.ip tunnel -- 通道配置

11.1.縮寫

  tunnel、tunl

11.2.對象

  ip tunnel命令的操作對象是網路通道(tunnel)。所謂通道(tunnel)是指把數
據包封裝到IPv4資料包中,使用IP協議發出。有關通道的更多資訊,請參考
iproute的文檔Tunnels over IP in Linux-2.2。

11.3.命令

  add、delete、change、show或者list

11.4.ip tunnel add -- 添加新的通道
ip tunnel change -- 修改現有的通道
ip tunnel delete -- 刪除一個通道

縮寫:add、a;change、chg;delete、del、d

參數

name NAME(default) 選擇通道裝置名稱
mode MODE 設定通道模式。有效模式包括:ipip、sit和gre。
remote ADDRESS 設定通道遠端地址
local ADDRESS 設定進入通道資料包的固定本地地址,必須是在本機另外一個介面
上的地址。
ttl N 設定進入通道資料包的TTL為N。N是一個1—255之間的數字。0是一個特殊的
值,表示這個資料包的TTL值是繼承(inherit)的。ttl參數的預設值是:inherit。

tos T或者dsfield T 設定進入通道資料包的TOS域,預設是inherit。
dev NAME 把通道綁定到裝置NAME,以便進入通道的資料包只能通過NAME裝置路由
,並且當對端發生變化時,不能夠在另外的裝置解開封裝。
nopmtudisc 在這個通道上禁止路徑傳輸單元最大值發現( Path MTU Discovery)。默
認情況下,這個功能是開啟的。注意:這個選項和固定的ttl是不相容的,如果使
用了固定的ttl參數,系統會開啟路徑傳輸單元最大值發現( Path MTU Discovery)功
能。
key k,ikey k,okey k 只適用於GRE通道,設定keyed GRE通道的key。K或者是一個
數字或者是IP地址形式的數字序列。參數key在通道的雙向使用,ikey和okey為輸
入和輸出設定不同的key。
csum,icsum,ocsum 只用於GRE通道,計算進入通道資料包的校正和。ocsum表示只
計算出去的資料包的校正和;icsum表示只計算進入的資料包的校正和;而csum等
於icsum ocsum。
seq,iseq,oseq 只適用於GRE通道,順序發送/接收資料包。oseq使向外的資料包
順序發送;iseq要求所有進入的資料包都是按照順序的;而seq等於iseq oseq。

樣本

建立一個點對點通道,最大TTL是32
netadm@amber:~ # ip tunnel add Cisco mode sit remote 192.31.7.104
                                             local 192.203.80.1 ttl
32

11.4.ip tunnel show -- 列出現有的通道

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

參數

  無

輸出格式

kuznet@amber:~ $ ip tunnel ls Cisco
Cisco: ipv6/ip  remote 192.31.7.104  local 192.203.80.142  ttl 32
kuznet@amber:~ $

  輸出的第一部分是通道的裝置名稱,接著是通道模式。下面就是設定通道時的各
個參數。

統計資訊

kuznet@amber:~ $ ip -s tunl ls Cisco
Cisco: ipv6/ip  remote 192.31.7.104  local 192.203.80.142  ttl 32
RX: Packets    Bytes        Errors CsumErrs OutOfSeq Mcasts
   12566      1707516      0      0        0        0       
TX: Packets    Bytes        Errors DeadLoop NoRoute  NoBufs
   13445      1879677      0      0        0        0     
kuznet@amber:~ $

  以上輸出結果裡面的數字和使用ip -s link show的輸出是一樣的,但是每個
標誌都是特定於通道的。

CsumErrs 對於開啟校正和檢驗的GRE通道,這個數字是由於校正和錯誤而丟棄的數
據包數量。
OutOfSeg 在開啟順序功能的GRE通道內,由於順序錯誤而丟棄的資料包數量。
Mcasts 在GRE通道上接收到的多播資料包的數量。
DeadLoop 由於通道是迴環到自己而沒有傳輸的資料包數目。
NoRoute 由於到對端沒有路由而沒有被傳輸的資料包數目。
NoBufs 由於核心不能分配緩衝區而沒有被傳輸的資料包數目。

12.ip monitor和rtmon -- 狀態監視

  ip命令可以用於連續地監視裝置、地址和路由的狀態。這個命令選項的格式有
點不同,命令選項的名字叫做monitor,接著是操作對象:

ip monitor [ file FILE ] [ all | OBJECT-LIST ]

  OBJECT-LIST是一些被監控的對象,它可以包括link、address和route。如果
沒有給出file參數,ip命令就開啟RTNETLINK,在上面監聽,並把狀態的變化輸出
到標準輸出裝置。

  如果使用了file參數,ip命令就不是在RTNETLINK上監聽,而是開啟由file參
數指定的包含RTNETLINK資訊的二進位檔案,把解析的結果顯示出來。這種曆史文
件可以有工具產生。這個工具具有和ip monitor命令的文法類似的命令列。理想的
情況是,在網路設定命令起動之前運行rtmon命令(當然,你可以在任意的時間起動
rtmon,它會記錄從起動開始的狀態變化)。你可以在起動指令碼中插入以下命令列:

rtmon file /var/log/rtmon.log

  如果我們執行如下命令:

[root@nixe0n root]ip route add dev eth0 to 61.133.4.7 via 211.99.114.
65
[root@nixe0n root]ip route del dev eth0 to 61.133.4.7

  然後,我們使用ip monitor命令分析/var/log/rtmon.log會得到如下輸出結果

[root@nixe0n root]ip monitor file /var/log/rtmon.log r
Timestamp: Wed Nov  6 20:25:54 2002 733331 us
1: lo:  mtu 16436 qdisc noqueue
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast
   link/ether 00:01:4f:00:15:f1 brd ff:ff:ff:ff:ff:ff
Timestamp: Wed Nov  6 20:25:58 2002 33700 us
61.133.4.7 via 211.99.114.65 dev eth0
Timestamp: Wed Nov  6 20:25:59 2002 924124 us
Deleted 61.133.4.7 via 211.99.114.65 dev eth0
[root@nixe0n root]

13.rtacct -- 路由範圍和策略傳播

  在使用OSPF或者BGP協議的路由器上,其路由表可能會很大。如果我們需要對
其進行歸類或者計算通過每條路由的資料包,就需要保留很多資訊。更糟糕的是,
如果我們需要區別的不止是資料包的目的地址,還要包括它們的源地址,這個任務
就更為複雜了,幾乎無法解決。

  對於這個問題,Cisco IOS Release 12.0 Quality of Service Solutions
Configuration Guide: Configuring QoS Policy Propagation via Border
Gateway Protocol提出了一個解決方案,就是把策略從路由協議遷移到轉寄引擎。
基本上,通過BGP的Cisco策略遷移(Cisco Policy Propagation via BGP)就是基於
此種方式,它使路由器保留所有和轉寄引擎關係緊密的RIB(Routing
Information Base,路由資訊庫),以便策略路由規則能夠監查所有的路由屬性,
包括ASPATH的資訊和團體(community)字串。

  而Linux把這分為由使用者空間監控維護的路由資訊庫(Routing Infomation
Base,RIB),和核心層的轉寄資訊庫(Forwarding Infomation Base,FIB)。

  這是我們的幸運,因為還有另外的解決方案,而這個方案允許更為靈活的策略
和更為豐富的語義。

  換句話說,可以在使用者空間根據路由的屬性把它們歸類,例如:BGP路由的
ASPATH、團體(community);OSPF路由的標記和它們的範圍。而管理員手工添加路
由時,也知道它們的屬性。按照這個標準劃分的集合(我們把它們叫做realm)數量
就很少了,因此按照路由的源地址和目的地址進行完全的分類就可以管理了。

  因此,每個路由都可以被分配到一個範圍(realm)中。一般這是有路由監控進
程作的,不過對於靜態路由,也可以使用ip route命令手工處理。

  在某些情況下(例如路由監控進程不理解realm)為了方便,漏掉的realm可以
由路由策略規則補齊。

  核心使用如下演算法計算每個資料包的源範圍(realm)和目的範圍(realm):

If route has a realm, destination realm of the packet is set to it.
If rule has a source realm, source realm of the packet is set to it.
If destination realm was not get from route and rule has destination
realm, it is also set.
If at least one of realms is still unknown, kernel finds reversed
route to the source of the packet.
If source realm is still unknown, get it from reversed route.
If one of realms is still unknown, swap realms of reversed routes and
apply step 2 again.

  這個過程完成後,我們就知道了資料包的源範圍和目的範圍。如果某些還是未
知,它就會被設定為0(realm unknown)

  

  範圍(realm)主要還是由TC(Traffic Control)的路由類別(route
classifier)使用,我們可以使用路由類別把資料包分配到給不同的流量類
(trafffic class),為資料包計數,以及為它們制定調度策略。

  相對於TC,使用realm為進入的資料包計數就簡單多了,但這是一個非常有用
的應用。核心可以根據realm收集總結資料包統計資訊。在使用者空間,我們可以使
用工具rtacct查看這些資訊。例如:

kuznet@amber:~ $ rtacct russia
Realm      BytesTo    PktsTo     BytesFrom  PktsFrom   
russia     20576778   169176     47080168   153805     
kuznet@amber:~ $

  結果表示,這個路由器收到153805個來自russia地區的資料包,並且向
russia轉寄了169176個資料包。russia範圍由ASPATH(路徑自治系統)在俄羅斯的路
由組成。

15.參考

T. Narten, E. Nordmark, W. Simpson. ``Neighbor Discovery for IP
Version 6 (IPv6)'', RFC-2461.
S. Thomson, T. Narten. ``IPv6 Stateless Address Autoconfiguration'',
RFC-2462.
F. Baker. ``Requirements for IP Version 4 Routers'', RFC-1812.
R. T. Braden. ``Requirements for Internet hosts -- communication
layers'', RFC-1122.
``Cisco IOS Release 12.0 Network Protocols Command Reference, Part 1''
and ``Cisco IOS Release 12.0 Quality of Service Solutions
Configuration Guide: Configuring Policy-Based Routing'',
http://www.cisco.com/univercd/cc/td/doc/product/software/ios120.

A. N. Kuznetsov. ``Tunnels over IP in Linux-2.2'',
在:ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz.

A. N. Kuznetsov. ``TC Command Reference'',
在:ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz.

``Cisco IOS Release 12.0 Quality of Service Solutions Configuration
Guide: Configuring QoS Policy Propagation via Border Gateway Protocol'',

http://www.cisco.com/univercd/cc/td/doc/product/software/ios120.

R. Droms. ``Dynamic Host Configuration Protocol.'', RFC-2131

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.