Multimedia Traffic Control with IP Multicast (IGMP) v2 NG

IGMP V2 NG Overview

IGMP, after being re-architected, is referred to as IGMP v2 NG, the next generation of IGMP version 2. IGMP v2 NG is based on the existing working Multicast Listener Discovery (MLD) code base and an event-driven architecture which enable easy enhancement and maintenance of the code. IGMP v2 NG uses Multicast Traffic Manager (MTM) to program hardware filters and MAC address.

The syslog hostname configuration is system-wide, not per syslog server.

Features overview

IGMP V2 NG supports both existing features in legacy IGMP and new features in IGMP v2 NG:

  • Existing features in legacy IGMP:

    • IGMP version 1 support

    • IGMP version 2 support

    • IGMP proxy

    • IGMP flooding

    • IGMP Delayed Flush

    • Snooping functionality

    • PIM Interactions

  • New features in IGMP v2 NG:

    • Static multicast group support (user configurable flood groups)

    • IGMP v2 standard MIB

    • Decoupling of IGMP proxy

    • IGMP topology change handling

    • Improved show commands

    • Fast data structures

    • MTM for Hardware interaction

    • Packet throttling

IGMP Context Commands

These CLI commands allow the user to configure IGMP.

Enabling delayed flush on IGMP

Enables and configures delayed flush timeout value (in secs) for the igmp for all VLANs. To disable delayed flush on all VLANs, set this value to 0. (Default: 0).

Syntax:

igmp delayed-flush <0-255>

Configuring Fast-Learn IGMP

Enables the fast learn feature globally. The no form of the command disables the fast learn feature. This command is independent of interface context fast-learn command and only one command will be exposed to the user. By default, this feature is disabled on all ports. hpicfIgmpMcastPortFastLearn is the Mib variable defined for this command.

Syntax:

[no] igmp fastlearn <port-list>

VLAN Context Commands

Any of the VLAN context commands implicitly adds a row to IgmpInterfaceTable for this VLAN if this row is missing in the table (with createAndGo for ip igmp, and createAndWait for all other commands).

Source VLAN filtering

You can isolate the Layer 2 traffic of different clients on same VLAN by allowing the user to assign ports to a VLAN isolate-list. An isolated port on a VLAN does not forward any Layer 2 unicast, broadcast and multicast traffic to another isolated port on same VLAN. An isolated port on a VLAN can forward any type of traffic to non-isolated port.

VLAN filtering commands

Syntax:

vlan <vid> isolate-list <port-list>


[NOTE: ]

NOTE: A VLAN will have only one isolate-list.

A port which is on the isolate-list for one VLAN can be in a forward-list or isolate-list for a different VLAN.


Isolate-list command

vlan <1> isolate-list <a1-a4>

The example command allows ports a1-a4 to talk to each other on ports other than VLAN 1.

Any VLAN 1 packets received on port a1-a4 will not be forwarded to ports a1-a4. This applies to all hosts on port a1-a4, no matter if the source MAC address is authenticated or not. Additionally, there is a small window when learning a new source MAC address where packets from that address are not forwarded to ports a1-a4 dropped. Which means traffic received from a client on ports a1-a4 will not be forwarded to any other port and VLAN until the client’s MAC learned. This applies only to newly learned hosts.

Switch, user, VLAN mapping

Switch, user, VLAN mapping

Consider Figure 1 as it represents Example 1.

Switch, user, VLAN mapping key

Designation Definition Assigned VLAN
G guest users 1
V voice users 2
AU authenticated users 3
B1 uplink port n/a
A1, A2, A3, A4 ports on 2920 switch n/a

The requirement are:

  1. Guest users should not able to talk to each-other.

  2. Guest users should be able to talk to Uplink port and vice-versa.

  3. Voice Users should be able to talk to each other.

  4. Authenticated users should be able to talk to each other

In this example, any unknown SA mac-addresses will be dropped on the ports which are in the isolate-list irrespective of the VLAN. If a switch receives a packet from a host on source-VLAN filter configured ports (isolate-list port), the packet will not be forwarded until the host’s MAC address is programmed on MAC table.

MAC table

State User Behavior

Unknown SA - MAC Table is not Programmed.

Guest User

Drop on all isolate ports coming on any VLAN

Unknown SA - MAC Table is not Programmed.

Authenticated User

Drop on all isolate ports coming on any VLAN

Unknown SA - MAC Table is not Programmed.

Voice User

Drop on all isolate ports coming on any VLAN

MAC Table is Programmed.

Guest User

Drop on all isolate ports coming on the particular VLAN

MAC Table is Programmed.

Authenticated User

Forward for authenticated users.

MAC Table is Programmed.

Voice User

Forward for Voice Users.

Show VLAN isolate-list
Syntax:

show vlan isolate-list

Show command example

HP‐Switch(vlan‐20)# show vlan isolate‐list

VLAN | Isolated Ports
---- + --------------
  10 | A1‐A3
  20 | A4‐A7
Source VLAN filtering restrictions
  1. A maximum of 255 VLAN isolate-lists can be configured.

  2. Client packets received on isolate-list ports will be dropped until the client MAC is learned.

  3. Features not supported include:

    • SVLAN ports cannot be added to isolate-list in mixed mode

    • OpenFlow

    • GVRP VLAN ports cannot be added to isolate-list

    • Dynamic LACP trunk ports cannot be added to isolate-list

    • Meshing

    • Distributed-trunk ports cannot be added to isolate-list

    • Switch Interconnect port cannot be added to isolate-list

    • Dynamic IP lockdown enabled ports cannot be added to isolate-list

Enabling or Disabling IGMP on a VLAN

Enables IGMP on a VLAN. This command must be executed in a VLAN context.

Syntax:

[no] vlan <vid> ip igmp

Configuring the Querier Function

Disables or re-enables the ability for the switch to become a querier if necessary. When changing to querier, a time delay of up to 32 seconds may occur. When no IP is assigned, the IP source address of 0.0.0.0 is used for both static (self-joined) groups and proxy queries. The no form of the command disables the querier function on the switch. The show ip igmp config command displays the current querier command. (Default Querier Capability: Enabled.)

Syntax:

[no] vlan <vid> ip igmp

Configuring the IGMP Query Interval

Configures the query interval. Time range is 5 to 300 seconds, the default value is 125 seconds.

Syntax:

vlan <vid> ip igmp query interval <Query-interval time>

Configuring Per-Port IGMP Traffic Filters

Used in the VLAN context, this command specifies how each port should handle IGMP traffic. (Default: auto.)


[NOTE: ]

NOTE: All incoming and outgoing multicast data traffic is blocked on these blocked ports including the incoming query and reports, however, the outgoing General queries are not blocked on these ports.


Syntax:

vlan <vid> ip igmp [auto <port-list> | blocked <port-list> | forward <port-list>]

Configuring Fast-Leave IGMP

Enables igmp fast-leaves on the specified ports in the selected VLAN. The no form of the command disables igmp fast-leave on the specified ports in the selected VLAN. (Default: Enabled.)

Syntax:

[no] vlan <vid> ip igmp fastleave <port-list>

Configuring Forced Fast-Leave IGMP

Enables IGMP Forced Fast-Leave on the specified ports in the selected VLAN, even if they are cascaded. (Default: Disabled.) The no form of the command disables Forced Fast-Leave on the specified ports in the selected VLAN.

Syntax:

[no] vlan <vid> ip igmp forcedfastleave <port-list>

Configuring Static Multicast Groups

Creates the IGMP static group <group-address> on the selected VLAN. The no form of the command deletes the static group from the selected VLAN.

Syntax:

[no] vlan <vid> ip igmp static-group <group-address>

Show Commands

These CLI commands allow the user to configure IGMP.

Viewing the current IGMP configuration and status

Syntax:

show ip igmp [vlan <vid>]

Displays IGMP status for all VLANs with IGMP enabled on the switch unless a specified VLAN has been given.

Example: show ip igmp
              IGMP Service Protocol Info  
Total VLAN’s with IGMP enabled:  33
Current count of Multicast groups joined:  21
VLAN ID:  1
VLAN Name:  DEFAULT_VLAN
IGMP Version: 2
Querier Address [this switch]:  10.0.102.221
Querier Up Time:  1hr 53min 2sec
Querier Expiry Time:  2min 1sec
Ports with multicast routers:  A1, A3-A5
Active Group Addresses |Type| Expires    | Ports     | Reports  | queries |
--------------------------------+----+--------------------------------
xxx.xxx.xxx.xxx        |filt|  1min 2sec | A1        | 20       |  20     |
xxx.xxx.xxx.xxx        |std |  3min 2sec | all
xxx.xxx.xxx.xxx        |filt| 23min 3sec | A1-B3, C4 | 20       |  20     |
xxx.xxx.xxx.xxx        |filt| 23min 10sec| A1,B2,C5  | 20       |  20     |
xxx.xxx.xxx.xxx        |filt|  2min 5sec | F22       | 20       |  20     |
xxx.xxx.xxx.xxx        |stat|  0min 0sec | all       | 20       |  20     |

Active Group Addresses      |Type| Expires    | Ports  
----------------------------+----+--------------------------------
xxx.xxx.xxx.xxx             |filt|  1min 2sec | A1 
xxx.xxx.xxx.xxx             |std |  3min 2sec | all
xxx.xxx.xxx.xxx             |filt| 23min 3sec | A1-B3, C4
xxx.xxx.xxx.xxx             |filt| 23min 10sec| A1,B2,C5
xxx.xxx.xxx.xxx             |filt|  2min 5sec | F22

VLAN ID:  200
VLAN Name:  client vlan
IGMP Version: 2
Querier Address:  10.0.102.204
Querier Port: 4 
<only displayed when not querier> 
Querier Up Time:  1hr 53min 2sec
Querier Expiry Time:  2min 1sec
Ports with multicast routers:  A1, A3-A5

Active Group Addresses      |Type| Expires    | Ports
----------------------------+----+--------------------------------
xxx.xxx.xxx.xxx             |filt|  1min 2sec | A1 
xxx.xxx.xxx.xxx             |std |  3min 2sec | all
xxx.xxx.xxx.xxx             |filt| 23min 3sec | A1-B3, C4
xxx.xxx.xxx.xxx             |stat|  0min 0sec | A1,B2,C5
xxx.xxx.xxx.xxx             |filt|  2min 5sec | F22
                                 
show ip igmp vlan 200
IGMP Service Protocol Info
Total VLAN’s with IGMP enabled:  33
Current count of Multicast groups joined:  21
VLAN ID:  200
VLAN Name:  client vlan
IGMP Version: 2
Querier Address:  10.0.102.204
Querier Port: 4 
<only displayed when not querier>
Querier Up Time:  1hr 53min 2sec
Querier Expiry Time:  2min 1sec
Ports with multicast routers:  A1, A3-A5
Active Group Addresses      |Type| Expires    | Ports    
----------------------------+----+--------------------------------
xxx.xxx.xxx.xxx             |filt|  1min 2sec | A1
xxx.xxx.xxx.xxx             |std |  3min 2sec | all
xxx.xxx.xxx.xxx             |filt| 23min 3sec | A1-B3, C4
xxx.xxx.xxx.xxx             |stat|  0min 0sec | A1,B2,C5
xxx.xxx.xxx.xxx             |filt|  2min 5sec | F22
Syntax:

show ip igmp config

Global command listing IGMP status for all VLANs configured in the switch.

IGMP Service Config
Control unknown multicast [Yes]: Yes
Forced fast leave timeout [0]: 0
Delayed flush timeout [0]: 0
VLAN ID|VLAN NAME          |IGMP Enabled|Querier Allowed | Querier Interval |
-------+--------------------------------+-----------+----------------------
1      |DEFAULT_VLAN       |No         |Yes              |   125            |
200    |client vlan        |Yes        |No               |   125            |
300    |Data Centre        |Yes        |Yes              |   125            |
Syntax:

show ip igmp vlan <vlan> config

Displays IGMP configuration for a specific VLAN on the switch, including per-port data.

IGMP Service Vlan Config
VLAN ID:  300
VLAN NAME: VLAN300
IGMP Enabled [No]:  Yes
Querier Allowed [Yes]: Yes
Port|      Type     | Port Mode | Forced Fast Leave | Fast Leave----+---------------+ ----------+-------------------+-----------------
5   |100/1000T      |  Auto     | No                | Yes
6   |100/1000T      |  Forward  | No                | Yes
8   |100/1000T      |  Blocked  | Yes               | No
(
all ports on vlan shown)
Syntax:

show ip igmp vlan <vid> group [<ip-addr>]

Lists the ports currently joined for a specified group, with port type, port mode, Age Timer data and Leave Timer data. If the group is not specified, all groups are shown.

Example: Filtered group
              IGMP Service Protocol Group Info  
VLAN ID:  300
VLAN NAME: VLAN300
Filtered Group Address:  xxx.xxx.xxx.xxx
Last Reporter:  xxx.xxx.xxx.xxx
Up Time: 4 hr 4 min 2 sec
Port| Port Type     | Port Mode | Expires          | Access
----+---------------+ ----------+-------------------------------------------
5   |100/1000T      | Auto      | 1min 3 sec       | Host 
6   |100/1000T      | Forward   | 2min 44 sec      | Router
8   |100/1000T      | Blocked   | 24 sec           | Host-Router
Filtered Group Address:  xxx.xxx.xxx.xxx
Last Reporter:  xxx.xxx.xxx.xxx
Up Time: 4 hr 4 min 2 sec
Port| Port Type     | Port Mode | | Expires          | Access
----+---------------+ ----------+------------------------------------------------------------
5   |100/1000T      | Auto      | 1min 3 sec       | Host
6   |100/1000T      | Forward   | 2min 44 sec      | Router
8   |100/1000T      | Blocked   | 24 sec           | Host-Router
                                 
Example: Standard group
              IGMP Service Protocol Group Info  
Standard Group Address:  xxx.xxx.xxx.xxx
Last Reporter:  xxx.xxx.xxx.xxx
Expiry Time:  2min 10 sec
Up Time: 4 hr 4 min 2 sec
Example: Static group
              IGMP Service Protocol Group Info  
Static Group Address:  xxx.xxx.xxx.xxx
Last Reporter:  xxx.xxx.xxx.xxx /*<if joined groups are there else null>*/
Expiry Time:  0min 0sec
Up Time: 4 hr 0 min 0 sec
Syntax:

show ip igmp groups

Displays IGMP group address information.

  
VLAN ID Group Address Expires         UpTime          Last Reporter   | Type
------- ------------- --------------- --------------- --------------- + ------
2       226.0.6.7     0h 2m 58s       1h 13m 4s       192.168.0.2     | Filter
2       226.0.6.8     0h 2m 58s       1h 13m 4s       192.168.0.2     | Standard
2       226.0.6.9     0h 2m 58s       1h 13m 4s       192.168.0.2     | Static

Statistics and State commands

Syntax:

show ip igmp statistics

Displays IGMP high level statistics for all VLANs on the switch.

Total VLAN’s with IGMP enabled:  33
Current count of multicast groups joined:  21
IGMP Service Statistics
                        |          JOINED GROUPS              | 
VLAN ID|VLAN NAME       |total | filtered | standard | static |
-------+----------------+------+----------+----------+--------+
1      |DEFAULT_VLAN    |  52  |   50     |    0     |   2    |
300    |Office Client   |  80  |   75     |    5     |   0    |
300    |Data Center     | 1100 |  1000    |    99    |   1    |

Syntax:

show ip igmp vlan <vid> statistics

Displays IGMP high level statistics for < vid > VLAN on the switch.

  
VLAN ID : 2
VLAN NAME : VLAN2
Number of Filtered Groups     : 20
Number of Standard Groups     : 0
Number of Static Groups       : ……2
Total Multicast Groups Joined : 22

Syntax:

show ip igmp vlan <vid> counters

Displays IGMP historical counters for <vid> VLAN on the switch.

  
IGMP Service Vlan Counters
  VLAN ID:  300
  VLAN NAME : VLAN300

          General Query Recd               : 0
          General Query Tx                 : 0
          Group Specific Query Recd        : 0
          Group Specific Query Tx          : 0
          V1 Member Report Recd            : 0
          V2 Member Report Recd            : 0
          V3 Member Report Recd            : 0
          Leave Recd                       : 0
          Unknown IGMP Type Recd           : 0
          Unknown Pkt Recd                 : 0
          Forward to Routers TX Counter    : 0
          Forward to Vlan TX Counter       : 0
          Port Fast Leave Counter          : 0
          Port Forced Fast Leave Counter   : 0
          Port Membership Timeout Counter  : 0