瞻博网络 MX80 丢弃生成的 (TCP?) 数据包

网络工程 杜松 杜松-朱诺斯 瞻博网络
2022-02-10 00:05:20

在我的实验室网络中,我将 Juniper MX 80 配置为 MPLS 路由器。在一个站点上连接了一个客户(由一台 PC 模拟),而在另一侧是一个 MPLS 网络。

我使用tcpreplay来生成流量负载。我使用的PCAP文件准备如下:

  • 源 IP 是“客户”PC 的 IP
  • Source MAC是客户PC的接口MAC地址
  • 目标 IP 分布在测试网络中,但都存在且有有效路由
  • Destination MAC 是 MX80 的“客户”接口的 MAC 地址

数据包确实到达了路由器。我正在发送 ~140Mbit/s 流量流,并且 SMTP 计数器显示以下内容(使用 SNMP 读取):

1.3.6.1.4.1.2636.3.3.1.1.1.517: 0 Mb/s
1.3.6.1.4.1.2636.3.3.1.1.5.517: 17 Mb/s
----
1.3.6.1.4.1.2636.3.3.1.1.1.527: 138 Mb/s
1.3.6.1.4.1.2636.3.3.1.1.5.527: 0 Mb/s

前两行是面向网络的接口进/出,第三+第四行是面向客户的接口。没有其他接口,所有流量都应该通过第一个接口到达路由器。正确的路由已到位,OSPF 和 LDP 已启动。

不幸的是,我是一个“思科人”,我现在不太喜欢瞻博网络设备。但是,据我所知,路由器应该转发所有流量。

不过,我有一个怀疑:PCAP 文件中大约 19,278% 的数据包是 UDP,其余的是 TCP,约占总流量的 10,979%。这相当于大约 15,15Mbps 的 UDP 流量,几乎与未丢弃的数据包量相匹配。

由于流量被记录并稍后重放,因此数据包不会构成正确的 TCP 会话。路由器是否执行某种 TCP SYN 检查?如果是这种情况,这也会破坏异步通信。

我找到了这篇文章,但我的设备不理解“set security flow *”命令。

此外,我已经找到并尝试了本文中的步骤,但流量仍然下降。

这是设备的配置。那么为什么流量会下降呢?

version 14.2R2.8;
groups {
    ffm {
        system {
            host-name F-Rtr;
            root-authentication {
                encrypted-password "******";
            }
        }
    }
}
apply-groups ffm;
system {
    services {
        ssh;
    }
    syslog {
        user * {
            any emergency;
        }
        file messages {
            any notice;                 
            authorization info;
        }
        file interactive-commands {
            interactive-commands any;
        }
    }
    ddos-protection {
        global {
            disable-routing-engine;
            disable-fpc;
            disable-logging;
        }
        protocols {
            tcp-flags {
                initial {
                    disable-routing-engine;
                    disable-fpc;
                }
            }
        }
    }
}
interfaces {                            
    ge-1/0/0 {
        unit 0 {
            description "Link to F-Core";
            family inet {
                address 10.0.1.30/30;
            }
            family mpls;
        }
    }
    ge-1/1/0 {
        unit 0 {
            family inet {
                address 10.0.0.57/29;
            }
        }
    }
    lo0 {
        unit 0 {
            family inet {
                address 10.0.4.117/32;
            }
        }
    }
}
routing-options {
    router-id 10.0.4.117;
}
protocols {
    mpls {
        interface ge-1/0/0.0;
    }
    ospf {
        area 0.0.0.0 {
            interface ge-1/0/0.0 {
                interface-type p2p;
            }
            interface lo0.0 {
                passive;
            }
            interface ge-1/1/0.0 {
                passive;
            }
        }
    }                                   
    ldp {
        transport-address router-id;
        interface ge-1/0/0.0;
    }
}
1个回答

最后我发现了这个问题,这是一个非常愚蠢的时刻......问题是链接的 MTU 与 PCAP 中的许多 1514 字节数据包相结合,并设置了 DF 位。

PCAP 文件是在正常的以太网连接中记录的。在这个特定的时间范围内,有几个大数据包,每个数据包有 1514 字节,并且设置了不分片 (DF) 位。在故障排除过程中,我将 MX80 替换为 Cisco ASR10002-f 路由器,并使用show ip cef switching statistics它反过来显示RP LES Fragmentation failed, DF.

在知道这一点后,我修改了 PCAP 并截断了 1500 以下的数据包,问题就消失了。