PIM-SM в Cisco/Совпадение SPT и RPT

Материал из Xgu.ru

Перейти к: навигация, поиск
Автор: Наташа Самойленко
PIM-SM cisco.png

< PIM-SM_в_Cisco

На этой странице описывается частный случай на примере сети из статьи PIM-SM_в_Cisco, когда деревья SPT и RPT частично совпадают. Так как для понимания этой ситуации будет выложено много выводов команд debug, этот раздел вынесен на отдельную страницу.

Note-icon.gif

Иногда выводы debug ip pim немного тяжело читать, так как сообщения Join и Prune можно перепутать. В части выводов они пишутся как Join/Prune, так как это и есть одно и то же сообщение с разными заполненными полями и флагами.

Но по другим частям сообщений явно видно, какой тип сообщения имелся в виду. Плюс, по ходу объяснения это явно уточняется.

Note-icon.gif

Приведенный пример не относится к функционалу переключения на SPT. В данном случае переключение отключено, продолжая пример из основной статьи.

Содержание

[править] Появляется клиент, но пока нет источника

Интерфейс f0/0 на маршрутизаторе R7 становится клиентом:

R7(config)# int f0/0                       
R7(config-if)# ip igmp join-group 239.1.1.1   

R7 отправляет вверх, по направлению к RP сообщение Join:

PIM(0): Check RP 2.2.2.2 into the (*, 239.1.1.1) entry
PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune message for 239.1.1.1
PIM(0): Insert (*,239.1.1.1) join in nbr 10.1.79.9's queue
PIM(0): Building Join/Prune packet for nbr 10.1.79.9
PIM(0): Adding v2 (2.2.2.2/32, 239.1.1.1), WC-bit, RPT-bit, S-bit Join
PIM(0): Send v2 join/prune to 10.1.79.9 (FastEthernet2/0)

RP получает Join:

PIM(0): Received v2 Join/Prune on FastEthernet2/0 from 10.1.26.6, to us
PIM(0): Join-list: (*, 239.1.1.1), RPT-bit set, WC-bit set, S-bit set
PIM(0): Check RP 2.2.2.2 into the (*, 239.1.1.1) entry
PIM(0): Add Fa2/0/10.1.26.6 to (*, 239.1.1.1), Forward state, by PIM *G Join

Теперь на R2 (RP) такая таблица маршрутизации мультикаст:

R2#sh ip mroute 239.1.1.1
(*, 239.1.1.1), 00:00:26/00:03:25, RP 2.2.2.2, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:00:04/00:03:25

И вниз по дереву к получателю.

На R6:

R6#sh ip mroute 239.1.1.1
(*, 239.1.1.1), 00:00:35/00:03:16, RP 2.2.2.2, flags: S
  Incoming interface: FastEthernet0/0, RPF nbr 10.1.26.2
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:00:13/00:03:16

На R9:

R9#sh ip mroute 239.1.1.1
(*, 239.1.1.1), 00:00:41/00:03:10, RP 2.2.2.2, flags: S
  Incoming interface: FastEthernet1/0, RPF nbr 10.1.69.6
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:00:19/00:03:10

На R7:

 R7#sh ip mroute 239.1.1.1
(*, 239.1.1.1), 00:01:31/00:02:55, RP 2.2.2.2, flags: SCL
  Incoming interface: FastEthernet2/0, RPF nbr 10.1.79.9
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:01:09/00:02:55

[править] Появляется источник

С R10 начинают идти пакеты мультикаст:

R10#ping 239.1.1.1 repeat 1000
Type escape sequence to abort.
Sending 1000, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:

Reply to request 0 from 10.1.79.7, 532 ms
Reply to request 1 from 10.1.79.7, 332 ms

R9 был выбран DR в сегменте с источником, поэтому он выполняет регистрацию источника и отправляет сообщение Register на RP:

PIM(0): Send v2 Register to 2.2.2.2 for 10.1.89.10, group 239.1.1.1
IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa2/0) id=4093, ttl=254, prot=1, len=100(100), mforward

R2 получил Register и отправляет Join (10.1.89.10/32, 239.1.1.1), то есть Join для построения SPT-дерева к источнику:

PIM(0): Received v2 Register on FastEthernet2/0 from 10.1.69.9
     for 10.1.89.10, group 239.1.1.1
PIM(0): Insert (10.1.89.10,239.1.1.1) join in nbr 10.1.26.6's queue
PIM(0): Forward decapsulated data packet for 239.1.1.1 on FastEthernet2/0
PIM(0): Building Join/Prune packet for nbr 10.1.26.6
PIM(0): Adding v2 (10.1.89.10/32, 239.1.1.1), S-bit Join
PIM(0): Send v2 join/prune to 10.1.26.6 (FastEthernet2/0)

На R9 сначала пакеты идут только через интерфейс Fa2/0, потом приходит Join из предыдущего вывода, от RP, и тогда пакеты начинают дублироваться на Fa1/0 и Fa2/0:

IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa2/0) id=4093, ttl=254, prot=1, len=100(100), mforward
IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa2/0) id=4094, ttl=254, prot=1, len=100(100), mforward
PIM(0): Received v2 Join/Prune on FastEthernet1/0 from 10.1.69.6, to us
PIM(0): Join-list: (10.1.89.10/32, 239.1.1.1), S-bit set
PIM(0): Add FastEthernet1/0/10.1.69.6 to (10.1.89.10, 239.1.1.1), Forward state, by PIM SG Join
IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa2/0) id=4095, ttl=254, prot=1, len=100(100), mforward
IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa1/0) id=4095, ttl=254, prot=1, len=100(100), mforward
IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa2/0) id=4096, ttl=254, prot=1, len=100(100), mforward
IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa1/0) id=4096, ttl=254, prot=1, len=100(100), mforward
IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa2/0) id=4097, ttl=254, prot=1, len=100(100), mforward
IP(0): s=10.1.89.10 (Fa0/0) d=239.1.1.1 (Fa1/0) id=4097, ttl=254, prot=1, len=100(100), mforward

[править] Удаляется совпадающая ветвь

R9 отправляет вверх, к RP сообщение Prune для дерева SPT, для того чтобы убрать избыточные ветви:

PIM(0): Insert (10.1.89.10,239.1.1.1) sgr prune in nbr 10.1.69.6's queue
PIM(0): Building Join/Prune packet for nbr 10.1.69.6
PIM(0): Adding v2 (10.1.89.10/32, 239.1.1.1), RPT-bit, S-bit Prune
PIM(0): Send v2 join/prune to 10.1.69.6 (FastEthernet1/0)

RP получает сообщение:

PIM(0): Received v2 Join/Prune on FastEthernet2/0 from 10.1.26.6, to us
PIM(0): Prune-list: (10.1.89.10/32, 239.1.1.1) RPT-bit set


[править] Итоговое состояние таблицы маршрутизации мультикаст

R2#sh ip mroute 239.1.1.1
(*, 239.1.1.1), 00:18:33/00:02:39, RP 2.2.2.2, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:18:33/00:02:39

(10.1.89.10, 239.1.1.1), 00:15:42/00:01:27, flags: PT
  Incoming interface: FastEthernet2/0, RPF nbr 10.1.26.6
  Outgoing interface list: Null


R9#sh ip mroute 239.1.1.1
(*, 239.1.1.1), 00:21:01/00:03:10, RP 2.2.2.2, flags: SF
  Incoming interface: FastEthernet1/0, RPF nbr 10.1.69.6
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:21:01/00:03:10

(10.1.89.10, 239.1.1.1), 00:18:12/00:03:26, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:18:12/00:03:10


R7#sh ip mroute 239.1.1.1
(*, 239.1.1.1), 00:21:40/00:02:58, RP 2.2.2.2, flags: SCL
  Incoming interface: FastEthernet2/0, RPF nbr 10.1.79.9
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:21:40/00:02:40


R6#sh ip mroute 239.1.1.1
(*, 239.1.1.1), 00:20:40/00:02:34, RP 2.2.2.2, flags: S
  Incoming interface: FastEthernet0/0, RPF nbr 10.1.26.2
  Outgoing interface list:
    FastEthernet2/0, Forward/Sparse, 00:20:40/00:02:34

(10.1.89.10, 239.1.1.1), 00:17:50/00:02:04, flags: PR
  Incoming interface: FastEthernet0/0, RPF nbr 10.1.26.2
  Outgoing interface list: Null