sparse-modeのSPT switchover~基本動作~

Advent Calendar 2018 大國魂(ITブログ) の6日目です。

マルチキャストのsparse-modeが途中でツリーが切り替わる動作確認をしてみました。

SPT switchoverというそうです。

今回は普通にSPT switchoverが起きている状態を確認し、次にトラブルシュート的な内容にしたいと思います。

 

■構成図

f:id:TKCman:20181129200153p:plain

R5がサーバっぽく見えますがルータです。(アイコン変えてるだけ)

R2をランデブーポイント(以下、RP)としています。

 

マルチキャストトラフィック配信もとのサーバ(以下、sender)から
まず、RPへの送信元ツリーが作成されます。

senderからRP
sender -- > RP
(S,G)
→送信元ツリー

f:id:TKCman:20181129200554p:plain

▼同じタイミングでもそれより前でもいいのですが、multicast_R4の下にPCがぶら下がっている
状態があり、multicast_R4のようなルータをラストホップルータ(LHR)やreceiverなど
といったりします。(以下、receiver)
流れてくるトラフックの向きは、RP -- > recieverですが

共有ツリーが作成されるときはrecieverがigmp joinメッセージをRPに向けて送信し、共有ツリーが作成されます。

receiverからRPに向けて、共有ツリーというツリーが作成されます。
receiverからRP
reciever -- > RP
(*,G)
→共有ツリー

f:id:TKCman:20181129200740p:plain

▼最終的にsenderからreceiverにいく(S,G) にツリーができる(pim joinがsenderまで送られる)(*,G)→(S,G) にツリーがかわります。SPT switchoverという。
共有ツリーが送信元ツリーに変わるのが、switchoverなのだと思います。

 

f:id:TKCman:20181129201832p:plain

 

◇ ◇ ◇

 

ここから設定投入を開始。

(全部のルータのconfigは、トラブルシュートが終わった最後にどこかにおいておきます。IGP(OSPF)が動いていて、すべてのインターフェイスにip pim sparse-modeの設定が入っている…のが前提)

 

■R4をreciever(レシーバー)にする。
適当なマルチキャストのグループをR4のlo0に設定します。
(lo0にマルチキャストトラフィックを受信するPCが接続されているイメージ)
igmp-joinの225.1.1.1がマルチキャストのグループ

interface Loopback0
ip address 100.0.0.4 255.255.255.255
ip pim sparse-mode
ip igmp join-group 225.1.1.1
end

■ここで、R5から
ping 225.1.1.1 repeat 100
します。(pingマルチキャストトラフィックを流している状態を再現)

(S,G)
RP -- > sender
→送信元ツリー

ができて、そのあと


(S,G)
RP -- > sender
→送信元ツリー

 

R5はまだ何もない状態

R5#sho ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group,
G - Received BGP C-Mroute, g - Sent BGP C-Mroute,
N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector, p - PIM Joins on route
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.0.1.40), 00:19:38/00:02:46, RP 100.0.0.2, flags: SJPCL
Incoming interface: Ethernet0/0, RPF nbr 192.168.25.2
Outgoing interface list: Null


pingが成功すると

R5#ping 225.1.1.1 re
R5#ping 225.1.1.1 repeat 100
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 225.1.1.1, timeout is 2 seconds:

Reply to request 0 from 100.0.0.4, 21 ms
Reply to request 1 from 100.0.0.4, 1 ms
Reply to request 2 from 100.0.0.4, 1 ms
Reply to request 3 from 100.0.0.4, 1 ms
R5#


R4#sho ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group,
G - Received BGP C-Mroute, g - Sent BGP C-Mroute,
N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector, p - PIM Joins on route
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 225.1.1.1), 00:13:04/stopped, RP 100.0.0.2, flags: SJCL
Incoming interface: Ethernet0/0, RPF nbr 192.168.34.3
Outgoing interface list:
Loopback0, Forward/Sparse, 00:13:04/00:02:05

(192.168.25.5, 225.1.1.1), 00:00:19/00:02:40, flags: LJT
Incoming interface: Ethernet0/0, RPF nbr 192.168.34.3
Outgoing interface list:
Loopback0, Forward/Sparse, 00:00:19/00:02:40

(*, 224.0.1.40), 00:18:13/00:02:50, RP 100.0.0.2, flags: SJPCL
Incoming interface: Ethernet0/0, RPF nbr 192.168.34.3
Outgoing interface list: Null

R4#

先ほどまでR4になかった、(S,G)のツリー(赤字の(192.168.25.5, 225.1.1.1))ができていることが確認できます。

 

R5はpingをうってからしばらくすると
mrouteから(S,G):(192.168.25.5, 225.1.1.1)が消えます。

pingした直後は、(192.168.25.5, 225.1.1.1)があるけど

R5#sho ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group,
G - Received BGP C-Mroute, g - Sent BGP C-Mroute,
N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector, p - PIM Joins on route
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 225.1.1.1), 00:03:26/stopped, RP 100.0.0.2, flags: SPF
Incoming interface: Ethernet0/0, RPF nbr 192.168.25.2
Outgoing interface list: Null

(192.168.25.5, 225.1.1.1), 00:03:26/00:00:06, flags: PFT
Incoming interface: Ethernet0/0, RPF nbr 0.0.0.0, Registering
Outgoing interface list: Null

(*, 224.0.1.40), 00:30:37/00:02:44, RP 100.0.0.2, flags: SJPCL
Incoming interface: Ethernet0/0, RPF nbr 192.168.25.2
Outgoing interface list: Null

 

しばらくすると(192.168.25.5, 225.1.1.1)がなくなる。

R5#
R5#sho ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group,
G - Received BGP C-Mroute, g - Sent BGP C-Mroute,
N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector, p - PIM Joins on route
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 225.1.1.1), 00:03:45/00:02:47, RP 100.0.0.2, flags: SP
Incoming interface: Ethernet0/0, RPF nbr 192.168.25.2
Outgoing interface list: Null

(*, 224.0.1.40), 00:30:56/00:02:25, RP 100.0.0.2, flags: SJPCL
Incoming interface: Ethernet0/0, RPF nbr 192.168.25.2
Outgoing interface list: Null

R5#

 

トラブルシュートに続く