PIM-SM в Cisco/Совпадение SPT и RPT
Материал из Xgu.ru
- Автор: Наташа Самойленко
На этой странице описывается частный случай на примере сети из статьи PIM-SM_в_Cisco, когда деревья SPT и RPT частично совпадают. Так как для понимания этой ситуации будет выложено много выводов команд debug, этот раздел вынесен на отдельную страницу.
|
Иногда выводы debug ip pim немного тяжело читать, так как сообщения Join и Prune можно перепутать. В части выводов они пишутся как Join/Prune, так как это и есть одно и то же сообщение с разными заполненными полями и флагами. Но по другим частям сообщений явно видно, какой тип сообщения имелся в виду. Плюс, по ходу объяснения это явно уточняется. |
|
Приведенный пример не относится к функционалу переключения на 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