Multicast TTL thresholdはマルチキャストドメインを限定する手法のひとつで、指定した閾値以下であるTTLのマルチキャストパケットを破棄する機能です。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Router(config-if)#ip multicast ttl-threshold <ttl>
構成図
以下の環境で動作確認を行います。PIM dense modeによるマルチキャストルーティングを有効にします。
e0/0 e0/1 e0/0 e0/1 +--------+.1 .2+--------+.2 .3+--------+ | R1 +--------+ R2 +--------+ R3 | +--------+ +--------+ +--------+ 192.168.1.0/24 192.168.23.0/24 R1 Loopback0 R2 Loopback0 R3 Loopback0 10.1.1.1/32 10.2.2.2/32 10.3.3.3/32
[R1] interface Loopback0 ip pim dense-mode ! interface Ethernet0/0 ip pim dense-mode [R2] interface Loopback0 ip pim dense-mode ! interface Ethernet0/0 ip pim dense-mode ! interface Ethernet0/1 ip pim dense-mode [R3] interface Loopback0 ip pim dense-mode ! interface Ethernet0/1 ip pim dense-mode
設定全文は下記ファイルです。ルーティングなどの詳細設定は下記を参照ください。
ttl threshold
設定
R3 Loopback 0を239.3.3.3のマルチキャストグループに参加させます。
[R3] interface Loopback0 ip address 10.3.3.3 255.255.255.255 ip pim dense-mode ip igmp join-group 239.3.3.3
R2 e0/0にTTL thresholdとして閾値15を定義します。この設定により閾値15以下のTTLであるマルチキャストが破棄されるようになります。
[R2] interface Ethernet0/0 ip multicast ttl-threshold 15
動作確認
R1からR3へのpingを送信します。TTLが16であるpingは成功するものの、TTLが15であるpingは失敗します。
[R1] R1#ping Protocol [ip]: Target IP address: 239.3.3.3 Repeat count [1]: Datagram size [100]: Timeout in seconds [2]: Extended commands [n]: y Interface [All]: Ethernet0/0 Time to live [255]: 16 Source address or interface: Type of service [0]: Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 1, 100-byte ICMP Echos to 239.3.3.3, timeout is 2 seconds: Reply to request 0 from 192.168.23.3, 84 ms R1# R1# R1#ping Protocol [ip]: Target IP address: 239.3.3.3 Repeat count [1]: Datagram size [100]: Timeout in seconds [2]: Extended commands [n]: y Interface [All]: Ethernet0/0 Time to live [255]: 15 Source address or interface: Type of service [0]: Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 1, 100-byte ICMP Echos to 239.3.3.3, timeout is 2 seconds: . R1#
TTLに関する補足説明
R1 e0/0からTTL16で送信する場合は、R2にパケットが転送された時点でTTL16となります。しかし、R1 Loopback0から送信された場合は、Loopback0からe0/0への転送でTTLがひとつ小さくなります。R1 Loopback0からTTL16でマルチキャストパケットを転送した場合はR2に届く頃にはTTL15となっていますので、R2のttl thresholdによりパケットが破棄されてしまいます。
[R1] R1#ping Protocol [ip]: Target IP address: 239.3.3.3 Repeat count [1]: Datagram size [100]: Timeout in seconds [2]: Extended commands [n]: y Interface [All]: Loopback0 Time to live [255]: 16 Source address or interface: Type of service [0]: Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 1, 100-byte ICMP Echos to 239.3.3.3, timeout is 2 seconds: . R1#