Juniper EX4200 如何从中继接口读取特定 VLAN id 的 SNMP 流量计数器?

网络工程 VLAN 杜松 snmp 瞻博网络 琴琴
2021-07-24 08:51:00

我有多个 q-in-q S-VLAN 分配给中继端口 ge-0/0/0。如何读取该中继端口上特定 VLAN id (S-VLAN) 的 SNMP 流量计数器?

硬件是瞻博网络 EX4200-24F。

作为参考,VLAN 配置如下所示。例如,对于在端口 ge-0/0/0 上接收/发送的数据包,我需要通过 SNMP 读取 S-VLAN id=4 的流量计数器。

set interfaces ge-0/0/0 unit 0 family ethernet-switching port-mode access
set interfaces ge-0/0/0 unit 0 family ethernet-switching vlan members SVID4
set interfaces ge-0/0/0 unit 0 family ethernet-switching vlan members SVID5
set vlans SVID4 vlan-id 4
set vlans SVID4 dot1q-tunneling customer-vlans 41-42
set vlans SVID4 dot1q-tunneling layer2-protocol-tunneling all
set vlans SVID5 vlan-id 5
set vlans SVID5 dot1q-tunneling customer-vlans 51-52
set vlans SVID5 dot1q-tunneling layer2-protocol-tunneling all

EX4200 能否通过 SNMP 为中继端口上的特定 VLAN id 提供流量计数器?如果是这样,请指出方向。

1个回答

遗憾的是 EX4200(或任何 EX)无法做到这一点。您需要一个单独的 VLAN 逻辑单元,该单元具有自己的 VLAN 计数器。例如,这适用于瞻博网络 MX 路由器,但不适用于 EX。

但是,您可以做的是使用防火墙过滤器计算数据包和字节数。

我在这里有一个工作示例,用于 VLAN 14、571、572。您当然可以使用任何 VLAN ID。

这是过滤器:

防火墙{
    家庭以太网交换{
        过滤VLAN计数器{
            特定于接口;
            术语 vlan-14 {
                从 {
                    dot1q-标签 14;
                }
                然后 {
                    接受;
                    计数 vlan-14;
                }
            }
            术语 vlan-571 {
                从 {
                    dot1q-tag 571;
                }
                然后 {
                    接受;
                    计数 vlan-571;
                }
            }
            术语 vlan-572 {
                从 {
                    dot1q-tag 572;
                }
                然后 {
                    接受;
                    计数 vlan-572;
                }
            }
            期限默认{
                然后接受;
            }
        }
    }
}

如您所见,我们为要计算的每个 VLAN 都有一个单独的术语,并default在末尾有一个术语。这很重要,因为如果没有最后一项,其他 VLAN 的流量将被丢弃。interface-specific关键字告诉以生成针对每个接口独立的计数器的开关。

您可以将此过滤器应用于您的接口:

设置接口 ae0.0 系列以太网交换过滤器输入 vlan-counters 
设置接口 ae0.0 系列以太网交换过滤器输出 vlan-counters 

之后,您可以在show firewall输出中看到计数器请注意,它们具有特定于接口的扩展:

过滤器:vlan-counters-ae1.0-i                                  
计数器:
名称字节数据包
vlan-14-ae1.0-i 7474383 8504
vlan-571-ae1.0-i 0 0
vlan-572-ae1.0-i 0 0

过滤器:vlan-counters-ae1.0-o                                  
计数器:
名称字节数据包
vlan-14-ae1.0-o 2651051 4919
vlan-571-ae1.0-o 2057853 14731
vlan-572-ae1.0-o 644 10

最后但并非最不重要的 SNMP 部分。

上面显示的数据包和字节计数器在 SNMPJUNIPER-FIREWALL-MIB::jnxFWCounterPacketCountJUNIPER-FIREWALL-MIB::jnxFWCounterByteCount树下可见

例如:

$ snmpget -v2c -cpublic 10.1.2.3 'JUNIPER-FIREWALL-MIB::jnxFWCounterByteCount."vlan-counters-ae1.0-o"."vlan-571-ae1.0-o".counter
瞻博网络防火墙 MIB::jnxFWCounterByteCount."vlan-counters-ae1.0-o"."vlan-571-ae1.0-o".counter = Counter64: 298848

如果您的程序不理解 OID 的编码形式,您可以使用 snmptranslate 实用程序将其转换为数字形式:

$ snmptranslate -On 'JUNIPER-FIREWALL-MIB::jnxFWCounterByteCount."vlan-counters-ae1.0-o"."vlan-571-ae1.0-o".counter'
.1.3.6.1.4.1.2636.3.5.2.1.5.21.118.108.97.110.45.99.111.117.110.116.101.114.115.45.97.101.49.46.48.45.111.16.118.108.97.110.45.53.55.49.45.97.101.49.46.48.45 .111.2