概要
このドキュメントでは、Nexus 7000/9000スイッチで特定のマルチキャストトラフィックをブロックまたはフィルタする可能性のある方法を設定するさまざまな方法について説明します。また、マルチキャストリソースを節約するためにも使用できます。 一般的な例の1つは、Microsoftのユニバーサルプラグアンドプレイ操作の実装です。この操作は、SSDPを使用してサーバ間で通信します。
前提条件
要件
PIMスパースモードを使用したAny-Source Multicast(ASM)がNexusプラットフォームでどのように動作するかについて知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- NXOS 7.3(4)D1(1)を実行するF3/M3 LCを搭載したNexus 7K
- Nexus N9K-C93180YC-EX/FX(7.0(3)I7(9)または9.3(5)を搭載)
注:ソフトウェアとハードウェアが異なると、結果が異なる可能性があります。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
使用される略語のリストを次に示します。
RP – ランデブーポイント
FHR:First Hop Router(ファーストホップルータ)
LHR:Last Hop Router(ラストホップルータ)
SRC:Multicast Source(マルチキャストソース)
REC:Multicast Receiver(マルチキャスト受信側)
PACL – ポートアクセスリスト
RACL – ルーテッドアクセスリスト
SVI:Switched Virtual Interface(相手先選択接続)
ACL:Access Control List(アクセスコントロールリスト)
設定
一般的なトポロジ
設定例
次のように仮定します。
RPのIPアドレスは192.168.10.1です。
送信元の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) joinが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にjoin-pruneポリシーを適用します。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によってブロックされていることを示します。
マルチキャスト用のHWエントリの節約の設定
セクションA、B、またはCで説明したすべてのオプションによって、FHR、LHR、またはFHR/LHRがRPにストリームを登録できなくなるか、PIM Join(*、G)がRPに送信できなくなりますが、mrouteまたはスヌーピングエントリが作成され、マルチキャストハードウェアエントリが消費される可能性があります。
注:VPCが設定されている場合、入力SVIまたはレイヤ2インターフェイス/ポートチャネル/VPCポートチャネルでRACLまたはPACLを使用できます。SRC/RECが異なるVLANまたはL2インターフェイスにスプレーされる場合、これらすべてにRACLまたはPACLを適用する必要があります。ただし、ハードウェアやソフトウェア(主にハードウェアの制限に起因)によって、結果は異なる可能性があります。
PACL
入力レイヤ2ポート、ポートチャネル、またはVPCポートチャネルでPACLを設定し、FHRでSSDPトラフィックをブロックするか、(S、G)エントリを作成します。
注:使用するハードウェア(Nexus N9000など)によっては、PACLを適用するためにTCAMを先に切り分ける(リロードが必要)必要があります。
例:
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)以降では、Global Boundary Multicast(GSM)設定がサポートされています。
{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