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

交换机

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

无线

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

云桌面

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

安全

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

流表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口发出。

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

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式