简介
本文档介绍在Nexus 7000/9000交换机上配置阻止或过滤特定组播流量的可能方法的不同方法。它还可以用于节约组播资源。 一个常见的例子是Microsoft实现的通用即插即用操作,它使用SSDP在服务器之间通信。
先决条件
要求
Cisco建议您了解使用PIM稀疏模式的任何源组播(ASM)在Nexus平台上的工作方式。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 运行NXOS 7.3(4)D1(1)的Nexus 7K与F3/M3 LC
- Nexus N9K-C93180YC-EX/FX,带7.0(3)I7(9)或9.3(5)
注意:如果软件/硬件不同,结果可能会有所不同。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
以下是所用的缩写词列表:
RP — 交汇点
FHR — 第一跳路由器
LHR — 最后一跳路由器
SRC — 组播源
REC — 组播接收器
PACL — 端口访问列表
RACL — 路由访问列表
SVI — 交换虚拟接口
ACL — 访问控制列表
配置
通用拓扑
配置示例
我们假设一下:
RP的IP地址是192.168.10.1
SRC的IP地址是172.16.10.100/32
SSDP组:239.255.255.250/239.255.255.253
现在,让我们讨论基于设备角色的配置。例如FHR、LHR、RP等。
FHR — 通常在此直接连接组播SRC
1.过滤对现有RP的注册。
ip pim rp-address 192.168.10.1 route-map filter-registration
!
Route-map filter-registration deny 5
match ip multicast source 172.16.10.100/32 group 239.255.255.250/32
// Above line is specific to SRC/GROUP pair
Route-map filter-registration deny 7
match ip multicast group 239.255.255.250/32
// Above line is for any SRC and specific group
!
Route-map filter-registration permit 100
Match ip multicast group 224.0.0.0/4
|
2.通过为SSDP组定义假的RP(不存在(例如1.1.1.1))来过滤RP的注册;在这种情况下,FHR承担RP的角色。
ip route 1.1.1.1/32 Null0
!
ip pim rp-address 1.1.1.1 route-map SSDP_groups
!
Route-map SSDP_groups permit 5
match ip multicast group 239.255.255.250/32
Route-map SSDP_groups permit 10
match ip multicast group 239.255.255.253/32
Route-map SSDP_groups deny 20
match ip multicast group 224.0.0.0/4
!
ip pim rp-address 192.168.10.1 route-map all_other_groups
!
Route-map all_other_groups deny 5
match ip multicast group 239.255.255.250/32
Route-map all_other_groups deny 10
match ip multicast group 239.255.255.253/32
Route-map all_other_groups permit 20
match ip multicast group 224.0.0.0/4
|
验证:
Nexus9K_OR_N7K# show ip pim rp
PIM RP Status Information for VRF "default"
BSR disabled
Auto-RP disabled
BSR RP Candidate policy: None
BSR RP policy: None
Auto-RP Announce policy: None
Auto-RP Discovery policy: None
RP: 192.168.10.1, (0),
uptime: 00:00:27 priority: 0,
RP-source: (local), group-map: Filter-registration,
group rangs:
224.0.0.0/4
239.255.255.253/32 (deny)
239.255.255.250/32 (deny)
Nexus9K_OR_N7K# show ip mroute
IP Multicast Routing Table for VRF "default"
(172.16.10.100/32, 239.255.255.250/32), uptime: 00:04:12, ip pim
Incoming interface: Vlan10, RPF nbr: 172.16.10.100
Outgoing interface list: (count: 0)
Nexus9K_OR_N7K# show system internal mfwd event-history pkt
pkt events for MCASTFWD process
2021 Jan 1 11:11:41.792316 mcastfwd [21914]: [21933]: Create state for (172.16.10.100, 239.255.255.250)
Nexus9K_OR_N7K # show ip pim internal event-history null-register
2021 Jan 01 11:15:19.095711: E_DEBUG pim [21935]: Null Register not sent for (172.16.10.100/32, 239.255.255.250/32) yes
|
此输出确认FHR未向RP注册流。
LHR — 通常多播REC在此直接连接
3.在入口SVI(REC所在的位置)上应用IGMP策略。此处的想法是从REC过滤SSDP组的IGMP成员身份报告。
ip pim rp-address 192.168.10.1 group-list 224.0.0.0/4
!
route-map filter-SSDP-joins deny 5
match ip multicast group 239.255.255.250/32
route-map filter-SSDP-joins deny 6
match ip multicast group 239.255.255.253/32
route-map filter-SSDP-joins permit 100
match ip multicast group 224.0.0.0/4
!
Interface VlanXX
ip igmp report-policy filter-SSDP-joins
|
验证:
Nexus9K_OR_N7K (config)# show ip mroute 239.255.255.250
IP Multicast Routing Table for VRF "default"
Group not found
!
Nexus9K_OR_N7K (config)# show ip igmp snooping groups vlan 44
Type: S - Static, D - Dynamic, R - Router port, F - Fabricpath core port
Vlan Group Address Ver Type Port list
44 */* - R Vlan44
44 239.255.255.250 v2 D Eth1/5
!
Nexus9K_OR_N7K (config)# show ip igmp internal event-history debugs
debugs events for IGMP process
2021 Jan 1 11:52:21.277915 igmp [1125]: : Filtered group 239.255.255.250
2021 Jan 1 11:52:21.277903 igmp [1125]: : Received v2 Report for 239.255.255.250 from 172.16.44.100 (Vlan44)
|
此输出确认IGMP成员身份报告已过滤且(*,G)加入未发送到RP。
PIM — 启用路由器充当FHR/LHR
根据您的要求,您可以使用选项1、2和3的组合。
例如:
4.筛选现有RP(FHR职责)的注册:
ip pim rp-address 192.168.10.1 route-map filter-registration
!
Route-map filter-registration deny 5
match ip multicast source 172.16.10.100/32 group 239.255.255.250/32
Route-map filter-registration deny 7
match ip multicast group 239.255.255.250/32
!
Route-map filter-registration permit 100
Match ip multicast group 224.0.0.0/4
|
5.从REC(LHR角色)过滤IGMP成员身份报告的IGMP策略。
ip pim rp-address 192.168.10.1 group-list 224.0.0.0/4
!
route-map filter-SSDP-joins deny 5
match ip multicast group 239.255.255.250/32
route-map filter-SSDP-joins deny 6
match ip multicast group 239.255.255.253/32
route-map filter-SSDP-joins permit 100
match ip multicast group 224.0.0.0/4
!
Interface VlanXX
ip igmp report-policy filter-igmp-joins
|
验证:
与前文提到的C点和D点进行的核查几乎相同。
Show ip mroute
Show ip pim rp
Show ip pim internal event-history join-prune
Show ip igmp internal event-history debugs
|
RP — 这是交汇点
6.用于阻止从FHR注册SSDP组的注册策略。
ip pim rp-address 192.168.10.1 group-list 224.0.0.0/4
ip pim register-policy all_groups
!
Route-map all_groups deny 5
match ip multicast group 239.255.255.250/32
Route-map all_groups deny 10
match ip multicast group 239.255.255.253/32
Route-map all_groups permit 20
match ip multicast group 224.0.0.0/4
|
验证:
Nexus9K_OR_N7K (config)# show ip mroute 239.255.255.250
IP Multicast Routing Table for VRF "default"
Group not found
!
Nexus9K_OR_N7K (config)# show ip pim internal event-history data-register-receive
2021 Jan 08 03:33:06.353951: E_DEBUG pim [1359]: Register disallowed by policy
2021 Jan 08 03:33:06.353935: E_DEBUG pim [1359]: Received DATA Register from 172.16.10.1 for (172.16.10.100/32, 239.255.255.250/32) (pktlen 1028)
2021 Jan 08 03:29:42.602744: E_DEBUG pim [1359]: Add new route (172.16.10.100/32, 239.1.1.1/32) to MRIB, multi-route TRUE
F241.01.13-C93180YC-EX-1(config)# show ip pim internal event-history null-register
2021 Jan 08 03:35:40.966617: E_DEBUG pim [1359]: Send Register-Stop to 172.16.10.1 for (172.16.10.100/32, 239.255.255.250/32)
2021 Jan 08 03:35:40.966613: E_DEBUG pim [1359]: Register disallowed by policy
2021 Jan 08 03:35:40.966597: E_DEBUG pim [1359]: Received NULL Register from 172.16.10.1 for (172.16.10.100/32, 239.255.255.250/32) (pktlen 20)
|
此输出确认RP正在阻止组239.255.255.250的注册。
7.在RP上应用加入修剪策略 — 仅SSDP组的pim(*,G)加入和(S,G)加入。
ip pim rp-address 192.168.10.1 group-list 224.0.0.0/4
ip pim register-policy all_groups
!
Route-map all_groups deny 5
match ip multicast group 239.255.255.250/32
Route-map all_groups deny 10
match ip multicast group 239.255.255.253/32
Route-map all_groups permit 20
match ip multicast group 224.0.0.0/4
!
Interface Ethernet/Y
ip pim sparse-mode
ip pim jp-policy all_groups
|
验证:
Nexus9K_OR_N7K # show ip mroute 239.255.255.253
IP Multicast Routing Table for VRF "default"
Group not found
!
F241.01.13-C93180YC-EX-1# show ip pim internal event-history join-prune
2021 Jan 08 03:53:41.643419: E_DEBUG pim [1359]: Join disallowed by inbound JP policy
|
此输出确认(*,G)PIM加入被RP阻止。
配置组播的节省硬件条目
尽管A、B或C部分中讨论的所有选项;阻止FHR、LHR或FHR/LHR在RP处注册流或阻止分别向RP发送PIM加入(*,G);仍可以创建路由或监听条目,并且该条目会使用组播HW条目。
注意:如果配置了VPC,您可以在入口SVI或第2层接口/端口通道/VPC端口通道上使用RACL或PACL。如果SRC/REC喷出到不同的VLAN或L2接口,则也意味着需要将RACL或PACL应用到所有接口上。但是,根据硬件/软件(主要由于硬件限制),结果可能会有所不同。
PACL
在入口第2层端口、端口通道或VPC端口通道上配置PACL以阻止SSDP流量或在FHR上创建(S, G)条目。
注:根据使用的硬件(例如,Nexus N9000),TCAM需要先雕刻(需要重新加载)才能应用PACL。
例如:
ip access-list BlockAllSSDP
Statistics per-entry
10 deny ip any 239.255.255.250/32
20 deny ip any 239.255.255.253/32
30 permit ip any any
!
Interface Ethernet X/Y
Or
Interface port-channel XX
ip port-access group BlockAllSSDP in
|
验证:
F241.01.13-C93180YC-EX-1# sh ip mroute 239.255.255.250
IP Multicast Routing Table for VRF "default"
Group not found
!
show ip access-lists BlockAllSSDP
IP access list BlockAllSSDP
statistics per-entry
10 deny ip any 239.255.255.250/32 [match=3] -> Drop counters
20 deny ip any 239.255.255.253/32 [match=0]
30 permit ip any any [match=0]
|
由于两个组播流量/IGMP成员端口都通过PACL被阻止,您看不到任何监听、mroute条目。实质上,PACL会同时丢弃这两者。
RACL
您可以在SRC存在的入口SVI上配置RACL,但取决于使用的软件/硬件;(S, G)条目仍然可以创建,或者可以将流量转发到其他本地VLAN。
ip access-list BlockAllSSDP
Statistics per-entry
10 deny ip any 239.255.255.250/32
20 deny ip any 239.255.255.253/32
30 permit ip any any
!
Interface VlanXX
ip port-access group BlockAllSSDP in
|
验证:
它几乎与PACL相同,但RACL选项不能提供与PACL相同的结果;大多数硬件限制也提前。
COPP
也可以在COPP处阻止SSDP。以下是一个配置示例:
class-map type control-plane match-any nossdp
match access-group name nossdp
policy-map type control-plane nossdp
class nossdp
police cir 0 bps bc 0 bytes conform transmit violate drop control-plane dynamic
service-policy-dyn input nossdp
!
ip access-list nossdp
statistics per-entry
10 permit ip any 239.255.255.250/32
20 permit igmp any 239.255.255.250/32
30 permit pim any 239.255.255.250/32
|
全局组播边界
从Cisco NX-OS版本10.2(1)开始,支持全局边界组播配置。
您需要配置{ip | ipv6} multicast group-range prefix-list <prefix-list-name>命令定义全局组播边界允许或拒绝的IP组播组和信道的全局范围。此命令用于禁用路由器上所有接口的未授权组或通道的组播协议操作和流量转发。前缀列表配置边界。下面提供了配置示例:
vrf context enterprise
ip multicast group-range prefix-list test
|
https://www.cisco.com/c/en/us/td/docs/dcn/nx-os/nexus9000/102x/configuration/multicast-routing/cisco-nexus-9000-series-nx-os-multicast-routing-configuration-guide-release-102x/m-overview.html#concept_29A33F30E7F84F7AA20C8D7D1A22ED98