在日常網(wǎng)絡(luò)運(yùn)維過(guò)程中,當(dāng)遇到丟包或者轉(zhuǎn)發(fā)不通時(shí),往往需要判斷報(bào)文丟在什么地方,除了用traceroute路徑跟蹤到數(shù)據(jù)包終止在具體設(shè)備(如路由器)時(shí),那就需要進(jìn)一步判斷路由器針對(duì)該報(bào)文的轉(zhuǎn)發(fā)情況,是丟棄了?還是發(fā)錯(cuò)接口了?那么針對(duì)銳捷路由器,就可以使用流表這項(xiàng)技術(shù)進(jìn)行判斷。
銳捷捷路由器當(dāng)配置了 NAT、 QOS、 PBR、 ACL 等業(yè)務(wù)時(shí),那么就默認(rèn)開啟了 X-flow 流表功能。即當(dāng)每個(gè)數(shù)據(jù)包到達(dá)或者穿過(guò)路由器,路由器根據(jù)這個(gè)報(bào)文的 6 元組就生產(chǎn)了一條流會(huì)話記錄。通過(guò)流表技術(shù),我們就可以用來(lái)查看路由器針對(duì)該報(bào)文的收發(fā)情況(比如路由器有沒(méi)收到?有沒(méi)發(fā)出?收到多少?發(fā)出多少?)。因此可以作為通信異常時(shí)的定位神器。可通過(guò) show ip fpm flow 來(lái)查看當(dāng)前的流表。通過(guò) clear ip fpm flows 來(lái)清除當(dāng)下的流(高峰期慎用,會(huì)造成業(yè)務(wù)閃斷)
下面我們以192.168.33.39這個(gè)源IP為例,來(lái)看看路由器針對(duì)該數(shù)據(jù)流的收發(fā)情況吧。
每個(gè)流會(huì)話都包含如下 9 個(gè)字段,字段解析:
Pr:IP 協(xié)議號(hào),常見(jiàn)的有 ICMP 為 1;TCP 是 6;UDP 是 17
SrcAddr:該數(shù)據(jù)報(bào)文的源 IP 地址
DstAddr:該數(shù)據(jù)報(bào)文的目的 IP 地址
SrcPort:該數(shù)據(jù)報(bào)文的源端口號(hào)(TCP/UDP 以外的協(xié)議是沒(méi)有端口號(hào)的,那么設(shè)備使用該協(xié)議的其它字段,作為端口號(hào)識(shí)別。如 ICMP 使用標(biāo)識(shí)位。)
DstPort:該數(shù)據(jù)報(bào)文的目的端口號(hào)
Vrf:該數(shù)據(jù)報(bào)文所在的 vrf, 默認(rèn)全局 vrf 為 0
SendBytes:發(fā)送字節(jié)數(shù),源 IP 發(fā)送給目的 IP 的字節(jié)數(shù)
RecvBytes:接收字節(jié)數(shù), 目的 IP 回復(fù)給源 IP 的字節(jié)數(shù)
St:協(xié)議狀態(tài)
通過(guò)以上可知道,這條流代表的是,源192.168.33.49向目標(biāo)172.18.10.13發(fā)起了telnet(目標(biāo)端口是23),且源向目的發(fā)送了1437個(gè)字節(jié),目的回包了1923個(gè)字節(jié)。
2、轉(zhuǎn)發(fā)面轉(zhuǎn)發(fā): 數(shù)據(jù)報(bào)文流量是穿越路由器的,一般指的是客戶的業(yè)務(wù)報(bào)文等。設(shè)備對(duì)于這類報(bào)文產(chǎn)生的流表稱之為轉(zhuǎn)發(fā)面流表。對(duì)于集中式設(shè)備直接在路由器主控(ruijie#)上查看對(duì)應(yīng)的流表;對(duì)于分布式設(shè)備,比如RSR77或77X要通過(guò)進(jìn)入數(shù)據(jù)包流入、流出的線卡來(lái)進(jìn)行查看。
分布式設(shè)備對(duì)轉(zhuǎn)發(fā)面的流表查看均要登錄線卡進(jìn)行查看, 以 RSR77-X 為例:
步驟 1:首先確定對(duì)應(yīng)線卡的槽位號(hào)(一般是接口編號(hào)的前 2 位,比如接口是gi1/0/2,那么槽位號(hào)就是1/0)
命令1:show ip fpm statistics
Slot-1/0 : RSR7708-SRCMI-X-RSR77-SIP5-X —>SIP5-X 線卡的流表統(tǒng)計(jì)
Flow table capacity: 2097152 -→該線卡的流表數(shù)目總?cè)萘俊娟P(guān)注】
FRQ capacity: 4096 →分片隊(duì)列長(zhǎng)度
Flow number: 36 →當(dāng)前活躍的流表總量【注意不要超過(guò)總量】
Nat-flow number: 7 →當(dāng)前活躍的 NAT 流總量【注意不要超過(guò)總量】
User number: 3 →當(dāng)前用戶數(shù)【關(guān)注】
Defragment context number: 0
命令2:show ip fpm users
使用技巧:
1)可通過(guò)管道符 | 對(duì)用戶ip進(jìn)行過(guò)濾,查看特定的用戶情況。
2)在分布式設(shè)備,比如RSR77-X系列,需要在線卡里面查看
[LC1/0]#sh ip fpm users
IP-address Active-time(s) Active-Conns Max-Config-Conns
192.13.64.2 147 11 100000
192.168.30.1 1227 3 100000
172.19.1.1 1685 1 100000
172.18.157.32 700747 17 100000
Ip-address :數(shù)據(jù)流的源 ip 地址, 通常情況下為用戶的內(nèi)網(wǎng)地址
Active-timie:該用戶存在數(shù)據(jù)流的時(shí)間
Active-conns:該用戶 存在多少條活躍的流,如果過(guò)大,可能存在異常攻擊
Max-config-conns:配置的該用戶最大會(huì)話限制, 默認(rèn)是 100000, 可通過(guò) ip session filter 進(jìn)行調(diào)整
命令3:show ip fpm users

命令4:show ip fpm users x.x.x.x
含義:顯示特定源IP所有的數(shù)據(jù)流的轉(zhuǎn)發(fā)信息
使用場(chǎng)景:當(dāng)需要查看當(dāng)前某個(gè)特定流表轉(zhuǎn)發(fā)情況時(shí),使用該命令。
使用限制:該命令在極簡(jiǎn)出口版本才有支持, 一般在對(duì)應(yīng)線卡進(jìn)行查看。
[LC1/0]#sh ip fpm flows user 192.168.30.1
Pr SrcAddr DstAddr SrcPort DstPort Vrf SendBytes RecvBytes St
17 192.168.30.1 172.18.157.32 64834 1813 0 366618 90096 3
17 192.168.30.1 172.18.157.32 64838 1812 0 387548 95520 3
解析:192.168.30.1與認(rèn)證服務(wù)器的認(rèn)證(端口1812)和計(jì)費(fèi)(端口1813)的數(shù)據(jù)流交互過(guò)程。
命令5: show ip fpm flow filter pr 源ip 掩碼 目的ip 掩碼
含義:查看針對(duì)特定源,特定目標(biāo)的數(shù)據(jù)流的轉(zhuǎn)發(fā)信息
使用場(chǎng)景:當(dāng)需要查看當(dāng)前某個(gè)特定流表轉(zhuǎn)發(fā)情況時(shí),使用該命令。

上圖代表,源172.18.1.128 經(jīng)過(guò)NAT地址轉(zhuǎn)換后源IP地址變成110.1.1.12,該tcp源端口是36064,目的端口是23,發(fā)送了5467字節(jié),接收9301個(gè)字節(jié)。
其中0.0.0.0 代表任意
含義:顯示當(dāng)前用戶特定的數(shù)據(jù)轉(zhuǎn)發(fā)的詳細(xì)信息,并顯示對(duì)應(yīng)的來(lái)源接口和發(fā)送出口。
使用場(chǎng)景:在做故障排查或者業(yè)務(wù)測(cè)試的時(shí)候,當(dāng)需要查看當(dāng)前某個(gè)特定流表轉(zhuǎn)發(fā)從哪個(gè)接口進(jìn)出時(shí),使 用該命令。
使用技巧:針對(duì)分布式設(shè)備,一般在對(duì)應(yīng)線卡進(jìn)行查看數(shù)據(jù)流的轉(zhuǎn)發(fā)。
舉例:
如果要查看10.20.255.34 訪問(wèn)223.5.5.5這個(gè)流的進(jìn)出接口。
通過(guò)上述可以看到,該報(bào)文是從ag2口進(jìn)入,ag4口發(fā)出。
如有疑問(wèn)或相關(guān)售后問(wèn)題咨詢,可點(diǎn)擊進(jìn)入閃電兔咨詢