jueves, 2 de julio de 2009

Ruteo Multicast básico en detalle III

Posted by Nicolas | jueves, 2 de julio de 2009 | Category: |

Continuando la saga de posts respecto a ruteo Multicast, R4 se convertirá en la fuente de tráfico para el grupo 239.2.3.9. Ojo que sólo se enviará un único paquete, luego se expondrá que sucede para un segundo y posteriores paquetes.

R4#ping 239.2.3.9

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 239.2.3.9, timeout is 2 seconds:

Reply to request 0 from 10.0.0.6, 1492 ms

Cuando un router PIM-SM recibe un paquete Multicast desde una fuente directamente conectada, revisa el mapeo de RPs (show ip pim rp mapping) para determinar el RP correspondiente. En este caso R4, que a su vez es el Designated Router (DR) de la subnet (mayor dirección IP), encapsula el paquete Multicast en un mensaje Register (PIM-SM) y lo envía (mensaje unicast) al RP.

R4#
Jun 26 13:06:18.924: IP: s=10.0.0.2 (local), d=239.2.3.9 (FastEthernet0/0), len 100, sending broad/multicast
Jun 26 13:06:18.928: ICMP type=8, code=0

Jun 26 13:06:18.932: PIM(0): Check RP 10.1.1.1 into the (*, 239.2.3.9) entry
Jun 26 13:06:18.936: PIM(0): Send v2 Register to 10.1.1.1 for 10.0.0.2, group 239.2.3.9
Jun 26 13:06:18.940: IP: tableid=0, s=10.0.0.2 (local), d=10.1.1.1 (FastEthernet0/0), routed via FIB
Jun 26 13:06:18.944: IP: s=10.0.0.2 (local), d=10.1.1.1 (FastEthernet0/0), len 128, sending, proto=103
Jun 26 13:06:19.748: IP: s=10.0.0.2 (local), d=224.0.0.13 (FastEthernet0/0), len 54, sending broad/multicast, proto=103

Al recibir R1 (RP) el mensaje Register (PIM-SM), lo desencapsula y transmite a todas las interfaces de salida de existir previamente una entrada en la tabla de ruteo Multicast para el grupo (lo que en el ejemplo corresponde a Serial1/1 para así alcanzar el miembro registrado en R5). Luego crea la tupla Fuente, Groupo (10.0.0.2, 239.2.3.9) e inicia un Shortest Path Tree (SPT) hacia el DR de la fuente a través del envío de mensajes Join (PIM-SM), en este caso hacia R4 a través de R2 con RPT = WC = 0, indicando que se trata de un Source-tree en vez de un Shared-tree.

R1#
Jun 26 13:06:20.619: IP: s=10.0.0.2 (Serial1/0), d=10.1.1.1, len 128, rcvd 2, proto=103

Jun 26 13:06:20.623: IP: s=10.0.0.2 (Serial1/0), d=10.1.1.1, len 128, stop process pak for forus packet, proto=103
Jun 26 13:06:20.635: PIM(0): Received v2 Register on Serial1/0 from 10.0.0.2
Jun 26 13:06:20.635: for 10.0.0.2, group 239.2.3.9
Jun 26 13:06:20.647: PIM(0): Forward decapsulated data packet for 239.2.3.9 on Serial1/1
Jun 26 13:06:20.651: IP: s=10.0.0.2 (Serial1/1), d=239.2.3.9 (Serial1/1), len 100, sending full packet
Jun 26 13:06:20.655: ICMP type=8, code=0
Jun 26 13:06:20.659: PIM(0): Insert (10.0.0.2,239.2.3.9) join in nbr 172.16.0.2's queue
Jun 26 13:06:20.675: PIM(0): Building Join/Prune packet for nbr 172.16.0.2
Jun 26 13:06:20.675: PIM(0): Adding v2 (10.0.0.2/32, 239.2.3.9), S-bit Join
Jun 26 13:06:20.679: PIM(0): Send v2 join/prune to 172.16.0.2 (Serial1/0)
Jun 26 13:06:20.683: IP: s=172.16.0.1 (local), d=224.0.0.13 (Serial1/0), len 54, sending broad/multicast, proto=103
Jun 26 13:06:20.687: IP: s=172.16.0.1 (local), d=224.0.0.13 (Serial1/0), len 54, sending full packet, proto=103

R2 recibe el mensaje Join (PIM-SM) de R1, añade la interface por donde recibe el mensaje a la lista de salida de Serial1/1 de la tupla (10.0.0.2, 239.2.3.9)

R2#
Jun 26 13:06:20.995: IP: s=172.16.0.1 (Serial1/1), d=224.0.0.13, len 54, rcvd 0, proto=103
Jun 26 13:06:21.007: PIM(0): Received v2 Join/Prune on Serial1/1 from 172.16.0.1, to us
Jun 26 13:06:21.011: PIM(0): Join-list: (10.0.0.2/32, 239.2.3.9), S-bit set
Jun 26 13:06:21.015: PIM(0): Add Serial1/1/172.16.0.1 to (10.0.0.2, 239.2.3.9), Forward state, by PIM SG Join

Con esto las tablas de ruteo Multicast quedan como sigue.

R1

(*, 239.2.3.9), 00:00:58/stopped, RP 10.1.1.1, flags: S
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1/1, Forward/Sparse, 00:00:58/00:02:31

(10.0.0.2, 239.2.3.9), 00:00:13/00:02:46, flags:
Incoming interface: Serial1/0, RPF nbr 172.16.0.2
Outgoing interface list:
Serial1/1, Forward/Sparse, 00:00:13/00:02:46

R2

(*, 239.2.3.9), 00:00:00/stopped, RP 10.1.1.1, flags: SP
Incoming interface: Serial1/1, RPF nbr 172.16.0.1
Outgoing interface list: Null

(10.0.0.2, 239.2.3.9), 00:00:00/00:02:59, flags: T
Incoming interface: FastEthernet2/0, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1/1, Forward/Sparse, 00:00:00/00:03:29

R3

(*, 239.2.3.9), 00:00:45/00:02:58, RP 10.1.1.1, flags: SJC
Incoming interface: Serial1/0, RPF nbr 172.16.0.5
Outgoing interface list:
FastEthernet2/0, Forward/Sparse, 00:00:45/00:02:44



R3 por su parte recibe el ping desencapsulado por R1 (shared-tree) y ahora conoce la fuente de los mensajes al grupo, por ende genera un SPT a la fuente que presenta un camino más óptimo (consulta a la tabla de ruteo unicast) a través de mensajes Join (PIM-SM) a R2.

Jun 26 13:06:20.989: IP: s=10.0.0.2 (Serial1/0), d=239.2.3.9 (FastEthernet2/0), len 100, sending full packet
Jun 26 13:06:20.993: ICMP type=8, code=0
Jun 26 13:06:21.001: PIM(0): Insert (10.0.0.2,239.2.3.9) join in nbr 192.168.0.1's queue
Jun 26 13:06:21.005: PIM(0): Building Join/Prune packet for nbr 192.168.0.1
Jun 26 13:06:21.005: PIM(0): Adding v2 (10.0.0.2/32, 239.2.3.9), S-bit Join
Jun 26 13:06:21.009: PIM(0): Send v2 join/prune to 192.168.0.1 (Serial1/1)
Jun 26 13:06:21.013: IP: s=192.168.0.2 (local), d=224.0.0.13 (Serial1/1), len 54, sending broad/multicast, proto=103
Jun 26 13:06:21.017: IP: s=192.168.0.2 (local), d=224.0.0.13 (Serial1/1), len 54, sending full packet, proto=103

R2 recibe el mensaje

Jun 26 13:06:21.483: IP: s=10.0.0.2 (FastEthernet2/0), d=224.0.0.13, len 54, rcvd 0, proto=103
Jun 26 13:06:21.487: IP: s=192.168.0.2 (Serial1/0), d=224.0.0.13, len 54, rcvd 0, proto=103
Jun 26 13:06:21.495: PIM(0): Received v2 Join/Prune on Serial1/0 from 192.168.0.2, to us
Jun 26 13:06:21.499: PIM(0): Join-list: (10.0.0.2/32, 239.2.3.9), S-bit set
Jun 26 13:06:21.507: PIM(0): Add Serial1/0/192.168.0.2 to (10.0.0.2, 239.2.3.9), Forward state, by PIM SG Join

Ahora las tablas de ruteo Multicast lucen así.

R1

(*, 239.2.3.9), 00:00:58/stopped, RP 10.1.1.1, flags: S
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1/1, Forward/Sparse, 00:00:58/00:02:31

(10.0.0.2, 239.2.3.9), 00:00:13/00:02:46, flags:
Incoming interface: Serial1/0, RPF nbr 172.16.0.2
Outgoing interface list:
Serial1/1, Forward/Sparse, 00:00:13/00:02:46

R2

(*, 239.2.3.9), 00:00:01/stopped, RP 10.1.1.1, flags: SP
Incoming interface: Serial1/1, RPF nbr 172.16.0.1
Outgoing interface list: Null

(10.0.0.2, 239.2.3.9), 00:00:01/00:02:58, flags: T
Incoming interface: FastEthernet2/0, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1/0, Forward/Sparse, 00:00:00/00:03:29
Serial1/1, Forward/Sparse, 00:00:01/00:03:28

R3

(*, 239.2.3.9), 00:00:45/stopped, RP 10.1.1.1, flags: SJC
Incoming interface: Serial1/0, RPF nbr 172.16.0.5
Outgoing interface list:
FastEthernet2/0, Forward/Sparse, 00:00:45/00:02:44

(10.0.0.2, 239.2.3.9), 00:00:00/00:02:59, flags: J
Incoming interface: Serial1/1, RPF nbr 192.168.0.1
Outgoing interface list:
FastEthernet2/0, Forward/Sparse, 00:00:00/00:02:59

Tan pronto R3 reciba un paquete por el SPT, mandará un mensaje Prune (PIM-SM) a R1 para salir del RPT como se verá en la cuarta parte de esta saga.

En total 0 comentarios:


Leave a Reply