示例:通过配置基于固定接口的分类对来自远程设备的所有流量进行分类
此示例显示基于传入接口的固定分类配置。固定分类可以基于物理接口(如 ATM 或千兆以太网接口)或逻辑接口(如以太网 VLAN、帧中继 DLCI 或 MPLS 隧道)。
要求
为了验证此过程,此示例使用流量生成器。流量生成器可以基于硬件,也可以是在服务器或主机上运行的软件。
运行 Junos OS 的设备上广泛支持此过程中的功能。此处显示的示例已在运行 Junos OS 12.1 版的 SRX 系列防火墙上进行了测试和验证。SRX 系列防火墙配置为作为路由器运行。
如果要在 SRX 系列防火墙上执行测试,则可能需要将设备配置为在测试环境中作为不安全的路由器运行。您通常不会在生产环境中执行此操作。
概述
固定接口分类器是将所有数据包从特定接口分类为转发类的最简单方法。您通常在边缘路由器上使用此方法,将来自远程路由器或服务器的所有流量分类到特定转发类和队列。固定接口分类器只是查看数据包到达的入口接口,并将该接口上接收的所有流量分配给特定的服务等级。
固定接口分类器无法设置重写规则和丢弃配置文件使用的本地有意义的数据包丢失优先级。所有固定接口分类器的隐式数据包丢失优先级都很低。
对于接口接收属于多个服务类的流量的情况,固定接口分类器是不够的。但是,当基于接口的分类与其他分类过程结合使用时,它可能很有用。基于入站接口的筛选可以提高分类的粒度,例如,与基于代码点标记的筛选结合使用时。结合接口和代码点标记分类的过程,允许单个代码点标记具有不同的含义,具体取决于接收数据包的接口。如果要将固定接口分类器与代码点分类器组合在一起,这实际上是一个多域分类器。
固定接口分类器的更精细替代方法
在 Junos OS 中,您可以使用多字段分类器组合基于接口的分类和代码点分类,如下所示:
[edit firewall family inet filter MF_CLASSIFIER term 1] from { dscp ef; interface ge-0/0/0.0; } then forwarding-class Voice;
以下瞻博网络学习字节视频更详细地介绍了分类器。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
设备 R1
set interfaces ge-0/0/0 description to-R2 set interfaces ge-0/0/0 unit 0 family inet address 10.30.0.1/30 set interfaces ge-0/0/1 description to-host set interfaces ge-0/0/1 unit 0 family inet address 172.16.50.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive set protocols ospf area 0.0.0.0 interface lo0.0 passive
设备 R2
set interfaces ge-0/0/0 unit 0 family inet address 10.30.0.2/30 set interfaces ge-0/0/1 unit 0 family inet address 10.40.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set class-of-service forwarding-classes queue 0 BE-data set class-of-service forwarding-classes queue 1 Premium-data set class-of-service forwarding-classes queue 2 Voice set class-of-service forwarding-classes queue 3 NC set class-of-service interfaces ge-0/0/0 unit 0 forwarding-class Voice
设备 R3
set interfaces ge-0/0/0 unit 0 family inet address 10.50.0.1/30 set interfaces ge-0/0/1 unit 0 family inet address 10.40.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要启用默认的 DSCP 行为聚合分类器,请执行以下操作:
-
配置设备接口。
[edit interfaces] user@R2# set ge-0/0/0 unit 0 family inet address 10.30.0.2/30 user@R2# set ge-0/0/1 unit 0 family inet address 10.40.0.1/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
-
配置内部网关协议 (IGP) 或静态路由。
[edit protocols ospf area 0.0.0.0] user@R2# set interface ge-0/0/0.0 user@R2# set interface ge-0/0/1.0 user@R2# set interface lo0.0 passive
-
配置一组转发类。
[edit class-of-service forwarding-classes] user@R2# set queue 0 BE-data user@R2# set queue 1 Premium-data user@R2# set queue 2 Voice user@R2# set queue 3 NC
-
将到达 ge-0/0/0.0 的所有流量映射到语音队列。
[edit class-of-service interfaces ge-0/0/0 unit 0] user@R2# set forwarding-class Voice
结果
在配置模式下,输入 show interfaces
和 show class-of-service
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@R2# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.30.0.2/30; } } } ge-0/0/1 { unit 0 { family inet { address 10.40.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols ospf { area 0.0.0.0 { interface ge-0/0/0.0; interface ge-0/0/1.0; interface lo0.0 { passive; } } }
user@R2# show class-of-service forwarding-classes { queue 0 BE-data; queue 1 Premium-data; queue 2 Voice; queue 3 NC; } interfaces { ge-0/0/0 { unit 0 { forwarding-class Voice; } } }
如果完成设备配置,请从配置模式输入 commit
。
验证
确认配置工作正常。
验证固定接口分类器
目的
验证设备 R2 的入口接口上是否启用了固定接口分类器。请记住,尽管分类器对传入数据包进行操作,但您可以在传出(出口)接口上查看生成的队列分配。
行动
清除设备 R2 出口接口上的接口统计信息。
user@R2> clear interface statistics ge-0/0/1
使用数据包生成器将 TCP 数据包发送到设备 R2 下游的设备。
此示例使用数据包生成器 hping。
root@host> sudo hping3 10.40.0.2 -c 25 –fast HPING 10.40.0.2 (eth0 10.40.0.2): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=10.40.0.2 ttl=62 id=8619 sport=0 flags=RA seq=0 win=0 rtt=1.9 ms len=46 ip=10.40.0.2 ttl=62 id=8620 sport=0 flags=RA seq=1 win=0 rtt=2.8 ms len=46 ip=10.40.0.2 ttl=62 id=8621 sport=0 flags=RA seq=2 win=0 rtt=1.9 ms len=46 ip=10.40.0.2 ttl=62 id=8623 sport=0 flags=RA seq=3 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8624 sport=0 flags=RA seq=4 win=0 rtt=7.1 ms len=46 ip=10.40.0.2 ttl=62 id=8625 sport=0 flags=RA seq=5 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8626 sport=0 flags=RA seq=6 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8627 sport=0 flags=RA seq=7 win=0 rtt=1.9 ms len=46 ip=10.40.0.2 ttl=62 id=8628 sport=0 flags=RA seq=8 win=0 rtt=2.0 ms len=46 ip=10.40.0.2 ttl=62 id=8634 sport=0 flags=RA seq=9 win=0 rtt=7.4 ms len=46 ip=10.40.0.2 ttl=62 id=8635 sport=0 flags=RA seq=10 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8636 sport=0 flags=RA seq=11 win=0 rtt=2.0 ms len=46 ip=10.40.0.2 ttl=62 id=8637 sport=0 flags=RA seq=12 win=0 rtt=7.8 ms len=46 ip=10.40.0.2 ttl=62 id=8639 sport=0 flags=RA seq=13 win=0 rtt=7.0 ms len=46 ip=10.40.0.2 ttl=62 id=8640 sport=0 flags=RA seq=14 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8641 sport=0 flags=RA seq=15 win=0 rtt=7.2 ms len=46 ip=10.40.0.2 ttl=62 id=8642 sport=0 flags=RA seq=16 win=0 rtt=2.1 ms len=46 ip=10.40.0.2 ttl=62 id=8643 sport=0 flags=RA seq=17 win=0 rtt=2.0 ms len=46 ip=10.40.0.2 ttl=62 id=8644 sport=0 flags=RA seq=18 win=0 rtt=7.3 ms len=46 ip=10.40.0.2 ttl=62 id=8645 sport=0 flags=RA seq=19 win=0 rtt=1.7 ms len=46 ip=10.40.0.2 ttl=62 id=8646 sport=0 flags=RA seq=20 win=0 rtt=7.1 ms len=46 ip=10.40.0.2 ttl=62 id=8647 sport=0 flags=RA seq=21 win=0 rtt=2.0 ms len=46 ip=10.40.0.2 ttl=62 id=8648 sport=0 flags=RA seq=22 win=0 rtt=1.7 ms len=46 ip=10.40.0.2 ttl=62 id=8649 sport=0 flags=RA seq=23 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8651 sport=0 flags=RA seq=24 win=0 rtt=1.8 ms
在设备 R2 上,验证语音队列是否在递增。
user@R2> show interfaces extensive ge-0/0/1 | find "queue counters" Queue counters: Queued packets Transmitted packets Dropped packets 0 BE-data 0 0 0 1 Premium-data 0 0 0 2 Voice 25 25 0 3 NC 3 3 0 Queue number: Mapped forwarding classes 0 BE-data 1 Premium-data 2 Voice 3 NC ...
意义
输出显示,通过设备 R2 上的 ge-0/0/0 接口发送 25 个数据包后,语音队列增加了 25 个数据包。