产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面产品方案中心
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

流表x-flows:看清路由器数据流转发真面目

发布时间:2024-06-12
点击量:0

在日常网络运维过程中,当遇到丢包或者转发不通时,往往需要判断报文丢在什么地方,除了用traceroute路径跟踪到数据包终止在具体设备(如路由器)时,那就需要进一步判断路由器针对该报文的转发情况,是丢弃了?还是发错接口了?那么针对锐捷路由器,就可以使用流表这项技术进行判断。

一、流表简介

    锐捷捷路由器当配置了 NAT、 QOS、 PBR、 ACL 等业务时,那么就默认开启了 X-flow 流表功能。即当每个数据包到达或者穿过路由器,路由器根据这个报文的 6 元组就生产了一条流会话记录。通过流表技术,我们就可以用来查看路由器针对该报文的收发情况(比如路由器有没收到?有没发出?收到多少?发出多少?)。因此可以作为通信异常时的定位神器。可通过 show ip fpm flow 来查看当前的流表。通过 clear ip fpm flows 来清除当下的流(高峰期慎用,会造成业务闪断)

   下面我们以192.168.33.39这个源IP为例,来看看路由器针对该数据流的收发情况吧。

每个流会话都包含如下 9 个字段,字段解析:
    
Pr:IP 协议号,常见的有 ICMP 为 1;TCP 是 6;UDP 是 17
    SrcAddr:该数据报文的源 IP 地址
    DstAddr:该数据报文的目的 IP 地址
    SrcPort:该数据报文的源端口号(TCP/UDP 以外的协议是没有端口号的,那么设备使用该协议的其它字段,作为端口号识别。如 ICMP 使用标识位。)
    DstPort:该数据报文的目的端口号
    Vrf:该数据报文所在的 vrf, 默认全局 vrf 为 0
    SendBytes:发送字节数,源 IP 发送给目的 IP 的字节数
    RecvBytes:接收字节数, 目的 IP 回复给源 IP 的字节数
    St:协议状态

    通过以上可知道,这条流代表的是,源192.168.33.49向目标172.18.10.13发起了telnet(目标端口是23),且源向目的发送了1437个字节,目的回包了1923个字节。

二、控制面流和转发面流的查看方法
    根据设备对数据流的转发类型,可以分为控制面转发和转发面转发。

    1、控制面转发:数据报文始发或者终止到路由器的,一般指的协议类、 管理类报文等。设备对于这类报文产生的流表称之为控制面流表。对于集中式和分布式设备都是在路由器主控(ruijie#)上查看对应的流表,不用进入到对应线卡查看

    2、转发面转发: 数据报文流量是穿越路由器的,一般指的是客户的业务报文等。设备对于这类报文产生的流表称之为转发面流表。对于集中式设备直接在路由器主控(ruijie#)上查看对应的流表;对于分布式设备,比如RSR77或77X要通过进入数据包流入、流出的线卡来进行查看。

图片
    分布式设备对转发面的流表查看均要登录线卡进行查看, 以 RSR77-X 为例:

    步骤 1:首先确定对应线卡的槽位号(一般是接口编号的前 2 位,比如接口是gi1/0/2,那么槽位号就是1/0)
图片

    步骤 2: 进入线卡,以RSR77-X为例,各线卡进入的方式如下:
    1、 对于SIP1 载版搭配的 FNM 和 DFNM 子线卡, 统一登录该子卡所在的槽位编号,

    RSR7708X#vtty 3/1
    [LC3/1]>en
    [LC3/1]#sh ip fpm flow
    2、对于所有的 SIP2 载板上的线卡, 则统一登录到 SIP2 载板所在的槽位号:
    RSR7708X#vtty 2/0
    [LC2/0]>en
    [LC2/0]#sh ip fpm flow
    3、对于所有的 SIP5-X 载板上的线卡, 则统一登录到 SIP5-X 载板所在的槽位号:
    RSR7708X#vtty 4/0
    [LC4/0]>en
    [LC4/0]#sh ip fpm flow
    4、对 于 所有的 没 有 SIP1 载 板 的 DFNM 线 卡 ,则 直接登录该卡的 槽 位 编 号 , 比 如 1/0 的DFNM-32GT/16SFP 线卡
     RSR7708X#vtty 1/0
     [LC1/0]>en
     [LC1/0]#sh ip fpm flow
    退出线卡到主控的操作方法为:按键盘的 CTRL+X组合

三、常见流表命令的使用说明

   命令1show ip fpm statistics

    含义: 查看设备或者线卡流表总数,或者占用总数的统计
    使用场景:当需要查看当前设备或者线卡的流表占用数量情况时,使用该命令。
       RSR7708X#show ip fpm statistics
        Flow table capacity: 57344 →主控的流表数目总容量
        FRQ capacity: 1024
        Flow number: 38
        Nat-flow number: 0
        User number: 9
        Defragment context number: 0
        Defragment packet number: 0
        Event count: 0

        Slot-1/0 : RSR7708-SRCMI-X-RSR77-SIP5-X —>SIP5-X 线卡的流表统计

        Flow table capacity: 2097152 -→该线卡的流表数目总容量【关注】

        FRQ capacity: 4096 →分片队列长度

        Flow number: 36 →当前活跃的流表总量【注意不要超过总量】

        Nat-flow number: 7 →当前活跃的 NAT 流总量【注意不要超过总量

        User number: 3 →当前用户数【关注】

        Defragment context number: 0

        Defragment packet number: 0
        Event count: 3720 →流事件统计

   命令2:show ip fpm users

    含义:统计当前用户的流会话连接数和针对该ip的最大流限制数
    使用场景:当需要查看当前用户有多少条流和最大配置的流会话数量时使用   

    使用技巧:

        1)可通过管道符 | 对用户ip进行过滤,查看特定的用户情况。    

        2)在分布式设备,比如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 :数据流的源 ip 地址, 通常情况下为用户的内网地址

    Active-timie:该用户存在数据流的时间

    Active-conns:该用户 存在多少条活跃的流,如果过大,可能存在异常攻击

    Max-config-conns:配置的该用户最大会话限制, 默认是 100000, 可通过 ip session filter 进行调整

   命令3:show ip fpm users

    含义查看当前设备所有的数据流表的转发情况。
    使用场景:当需要查看全部数据流的转发情况下会使用该命令。
    使用技巧:
        1、可通过管道符 | 对单个 ip 或者端口号进行过滤,查看特定的用户情况。
        2、在分布式设备,需要在线卡里面查看, 比如 RSR77X
   
 使用限制:在极简出口解决方案版本中,对管道符操作进行了限制,使用 show ip fpm flows users .x.x.x命令进行代替
    举例:
 

   命令4:show ip fpm users x.x.x.x

    含义:显示特定源IP所有的数据流的转发信息
    使用场景:当需要查看当前某个特定流表转发情况时,使用该命令。
    使用限制:该命令在极简出口版本才有支持, 一般在对应线卡进行查看。
[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与认证服务器的认证(端口1812)和计费(端口1813)的数据流交互过程。

   命令5: show ip fpm flow filter pr 源ip 掩码 目的ip 掩码

    含义:查看针对特定源,特定目标的数据流的转发信息
    使用场景:当需要查看当前某个特定流表转发情况时,使用该命令。

    命令语法:show ip fpm flow filter ip 协议号  源地址 掩码 目的地址 掩码
        常见协议号:icmp =1;tcp=6;udp=17
   举例:
要查看源ip是172.18.1.128访问172.18.17.16的TCP数据流

上图代表,源172.18.1.128 经过NAT地址转换后源IP地址变成110.1.1.12,该tcp源端口是36064,目的端口是23,发送了5467字节,接收9301个字节。

其他常见组合巧:
1)查看任意源到某个地址比如192.168.1.1的udp流
 Show ip fpm flows filter 17 0.0.0.0 0.0.0.0 192.168.1.1 255.255.255.255

其中0.0.0.0 代表任意

    命令6: show ip fpm flow filter pr 源ip 掩码 目的ip 掩码 detail 

     含义:显示当前用户特定的数据转发的详细信息,并显示对应的来源接口和发送出口。

     使用场景:在做故障排查或者业务测试的时候,当需要查看当前某个特定流表转发从哪个接口进出时,使 用该命令。 

     使用技巧:针对分布式设备,一般在对应线卡进行查看数据流的转发。

     举例:

     如果要查看10.20.255.34 访问223.5.5.5这个流的进出接口。
图片
图片

通过上述可以看到,该报文是从ag2口进入,ag4口发出。

如有疑问或相关售后问题咨询,可点击进入闪电兔咨询

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式
是否找到您想要的内容?
您遇到了什么问题?
找不到想要的信息
筛选功能不好用
加载速度太慢
页面体验差
提交
您是否找到了与产品相关的文档
筛选功能是否帮助您更快找到所需的文档?
有帮助
一般
没有帮助
没用过
请问您遇到了什么问题?
需要填写的内容太多
有些信息不懂怎么填
页面有问题/错误
其他
确定
这些客户案例是否对您有帮助?
非常有帮助
比较有帮助
没有帮助
请您对这个客户案例进行评价
兴趣度
相关性
可信度
确定
感谢您的反馈!
感谢您的反馈!