- push modell, traffic is initially flooded to all PIM neighbors
- multicast forwarding state is created at arrival of data (data driven)
- if source goes down -> the tree torn down
- PIM DM assumes that listeners are "densely" (dicht gedrängt) populated
- after initial flooding, branches with no group members send prune message (Router resets prune timer every 3 mins and starts flooding again)
- (S,G) state is created by the arrival of (S,G) multicast traffic
- (S,G) state is deleted when sources goes inactive and no multicast traffic is received by the router for 3 minutes
- control (control messages) and data plane (multicast traffic forwarding) are the same
- Grafts to reduce join latency when a branch was pruned -> if no graft -> have to wait up to 3 mins (initial flooding)
- Asserts - determine forwarder on multiaccess LANs
- Prunes on non-RPF p2p links
- Asserts on non-RPF multiaccess links
PIM Packets
- PIM hello, join/prune, graft/graft back, assert
- PIMv1 uses IGMP (Type 0x14)
- PIMv2 uses IP packets (protocol ID 103)
PIM Packet header
0-3 bits - PIM Ver
4-7 bits - Type
8-15 bits - Reserved (set to zero)
16-31 bits - Checksum
Encoded-Unicast Address (e.g. in a PIM join)
0-7 bits - Address Family (IPv4,IPv6)
8-15 bits - Encoded Type used within Address Family
16-23 bits - Reserved
24-31 bits - Mask Length
32-63 bits - Unicast Address
Encoded-Group-Address
0-7 bits - Address Family
8-15 bits - Encoded Type used within Address Family
16-23 bits - Reserved
24-31 bits - Group Multicast Address
Encoded-Source-Address
0-7 bits - Address Family
8-15 bits - Encoded Type used within Address Family
16-20 bits - Reserved
21 bit - Sparse bit
22 bit - Wildcard bit (1 Join/Prune applies to (*,G), 0 Join/prune applies to (S,G)
23 bit - RPT-bit (1 (S,G) info sent toward S, 0 (S,G) info sent toward RP)
-Packets
* Hellos
* Join / Prune
* Graft / Graft ACK
* Assert
PIM Neighbor Discovery
* PIMv2 Hellos (224.0.0.13 - all PIM Router) - 30 sec
* PIMv1 queries to 224.0.0.2 (all-routers)
* on multiaccess DR election (highest IP) - responsible fpr all join and Requests to RP
show ip pim neighbor
test
PIM Neighbor Table
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
10.0.0.2 FastEthernet0/13 00:00:25/00:01:19 v2 1 / DR S
Router1#
show ip mroutetest
Router1#sh 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,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel
Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.0.0.1), 00:00:30/stopped, RP 0.0.0.0, flags: DL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/13, Forward/Dense, 00:00:30/00:00:00
(10.0.0.2, 239.0.0.1), 00:00:30/00:02:55, flags: PLT
Incoming interface: FastEthernet0/13, RPF nbr 0.0.0.0
Outgoing interface list: Null
(*, 224.0.1.40), 00:07:02/00:02:55, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/13, Forward/Dense, 00:03:46/00:00:00
Vlan7, Forward/Sparse-Dense, 00:07:02/00:00:00
Router1#
Note:224.0.1.40 = Cisco AutoRP Discovery Group (on by default)(*,G), (S,G) entries
RPF information (incoming RPF)
RPF neighbor (upstream
OIL (outgoing interface list)
(*,G) created automatically, reflects PIM neighbor adjacency
(S,G) must always have a (*,G) created by multicast data arrival
PIMG DM Sate Flag
D=Dense, C=directly connected, L=Local Router, P=Pruned, T=Forwarding via SPT, J=Join SPT
PIM DM Forwarding
-DM interfaces placed in (*,G) oillist
-(S,G) entries get a copy of (*S,G) minus incoming interface
-PIM DM Prune Delay on Multiaccess (3 Sec)
-PIM DM Grafting
-PIM DM Assert Mechanism
PIM DM Optimization
- State-Refresh-Option (stay pruned)
- eliminates periodic flooding
- improve recovery
- first-hop router sends State-Refresh for each (S,G)
PIM DM Configuration
Multicast-Routing einschalten
Router2(config)#ip multicast-routing
PIM Dense-Mode einschalten
Router2(config-if)#ip pim dense-mode
displays PIM-configured interfaces
Router1#show ip pim interface
Address Interface Ver/ Nbr Query DR DR
Mode Count Intvl Prior
10.0.0.1 FastEthernet0/13 v2/D 1 30 1 10.0.0.2
Router1#
mrinfo - queries what neighbor multicast routers are peering with local router
Router1#mrinfo 10.0.0.1
10.0.0.1 [version 12.2] [flags: PMA]:
10.0.0.1 -> 10.0.0.2 [1/0/pim]
Router1#
RPF-Check
Router1#show ip rpf 10.0.0.1
RPF information for ? (10.0.0.1)
RPF interface: FastEthernet0/13
RPF neighbor: ? (10.0.0.1)
RPF route/mask: 10.0.0.0/24
RPF type: unicast (connected)
RPF recursion count: 0
Doing distance-preferred lookups across tables
Router1#
multicast related information
Router1#show ip igmp interface
FastEthernet0/13 is up, line protocol is up
Internet address is 10.0.0.1/24
IGMP is enabled on interface
Current IGMP host version is 2
Current IGMP router version is 2
IGMP query interval is 60 seconds
IGMP querier timeout is 120 seconds
IGMP max query response time is 10 seconds
Last member query count is 2
Last member query response interval is 1000 ms
Inbound IGMP access group is not set
IGMP activity: 1 joins, 0 leaves
Multicast routing is enabled on interface
Multicast TTL threshold is 0
Multicast designated router (DR) is 10.0.0.2
IGMP querying router is 10.0.0.1 (this system)
Multicast groups joined by this system (number of users):
224.0.1.40(1)
display directly connected multicast groups
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter
239.0.0.1 Loopback0 00:17:10 stopped 150.1.7.7
224.0.1.40 FastEthernet0/13 00:19:57 00:02:35 10.0.0.1
Router1#
debug ip mrouting
Router1#debug ip mrouting
IP multicast routing debugging is on
Router1#
00:25:46: MRT(0): Set 'L' flag for (*, 239.0.0.1)
00:25:46: MRT(0): Create (*,239.0.0.1), RPF /0.0.0.0
00:25:46: MRT(0): WAVL Insert interface: FastEthernet0/13 in (* ,239.0.0.1) Successful
00:25:46: MRT(0): Add FastEthernet0/13/239.0.0.1 to the olist of (*, 239.0.0.1), Forward state - MAC not built
00:25:46: MRT(0): RPF lookup for 10.0.0.2[0.0.0.0] (10.0.0.2) returned FastEthernet0/13 10.0.0.2
00:25:46: MRT(0): Set 'L' flag for (10.0.0.2, 239.0.0.1)
00:25:46: MRT(0): Create (10.0.0.2,239.0.0.1),
Router1#RPF FastEthernet0/13/0.0.0.0
debug ip mpacket
Router1#debug ip mpacket
IP multicast packets debugging is on
Router1#
00:26:34: IP(0): s=10.0.0.2 (FastEthernet0/13) d=239.0.0.1 id=3, ttl=254, prot=1, len=118(100), mroute olist null
Router1#
debug ip pim
Router1#debug ip pim
IP multicast packets debugging is on
Router1#
00:28:45: PIM(0): Update FastEthernet0/13/10.0.0.2 to (*, 224.0.1.40), Forward state, by PIM *G Join
00:28:45: PIM(0): Changing DR for FastEthernet0/13, from 0.0.0.0 to 10.0.0.2
00:28:45: PIM(0): Building Graft message for 224.0.1.40, FastEthernet0/13: no entries
00:28:46: PIM(0): Check DR after interface: FastEthernet0/13 came up!
Router1#
Keine Kommentare:
Kommentar veröffentlichen