Donnerstag, 12. August 2010

Multicast - Implementing Multicast (MCAST V1.0) - PIM DM (4)


- 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 mroute
test
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