Description

This article explains the procedure for configuring a pim-to-igmp proxy.

Symptoms

In some network configurations, Protocol Independent Multicast (PIM) routing is not enabled between the edge-facing multicast domain and the core-facing multicast domain, even though the PIM is in sparse mode within these domains. Thus, multicast traffic cannot be forwarded across the domains. Instead, Internet Group Management Protocol (IGMP) is an option.

To enable the use of IGMP to forward multicast traffic across the PIM domains, configure the Rendezvous Point (RP) router that resides between the edge domain and core domain to translate PIM join or prune messages received on downstream interfaces into a corresponding IGMP report or leave messages. The router then transmits the report or leave messages by proxying them to one or two upstream interfaces configured on the RP router. This feature is sometimes referred to as PIM-to-IGMP proxy.

Example:

PIM-to-IGMP proxy of SRX240a and SRX240b that cannot establish PIM neighbor.

Network topology:

Multicast_server---(ge-0/0/2)SRX240a(ge-0/0/6)----(ge-0/0/6)SRX240b(ge-0/0/2)----Multicast_receiver

M_server: 192.168.100.2
M_receiver: 192.168.200.2
Multicast group: 235.11.11.11

Solution


To configure pim-to-igmp proxy, use the following configuration:

CLI Based Configuration

SRX240A

root@# run show configuration | display set
set version 12.1X44.3
set interfaces ge-0/0/2 unit 0 family inet address 192.168.100.1/24
set interfaces ge-0/0/6 unit 0 family inet address 192.168.50.1/24
set interfaces lo0 unit 0 family inet address 172.16.10.1/24
set routing-options static route 172.16.20.0/24 next-hop 192.168.50.2
set routing-options static route 192.168.200.0/24 next-hop 192.168.50.2
set protocols igmp interface ge-0/0/6.0
set protocols pim rp local address 172.16.10.1
set protocols pim interface ge-0/0/2.0
set security policies default-policy permit-all
set security zones security-zone trust interfaces ge-0/0/2.0 host-inbound-traffic system-services all
set security zones security-zone trust interfaces ge-0/0/2.0 host-inbound-traffic protocols all
set security zones security-zone trust interfaces lo0.0 host-inbound-traffic system-services all
set security zones security-zone trust interfaces lo0.0 host-inbound-traffic protocols all
set security zones security-zone untrust interfaces ge-0/0/6.0 host-inbound-traffic system-services all
set security zones security-zone untrust interfaces ge-0/0/6.0 host-inbound-traffic protocols all

SRX240B

root@# run show configuration | display set
set version 12.1X44.3
set interfaces ge-0/0/2 unit 0 family inet address 192.168.200.1/24
set interfaces ge-0/0/6 unit 0 family inet address 192.168.50.2/24
set interfaces lo0 unit 0 family inet address 172.16.20.1/24
set routing-options static route 172.16.10.0/24 next-hop 192.168.50.1
set routing-options static route 192.168.100.0/24 next-hop 192.168.50.1
set routing-options multicast pim-to-igmp-proxy upstream-interface ge-0/0/6.0
set protocols igmp interface ge-0/0/2.0 static group 235.11.11.11
set protocols igmp interface ge-0/0/6.0 disable
set protocols pim rp local address 172.16.20.1
set protocols pim interface ge-0/0/2.0
set protocols pim interface ge-0/0/6.0 accept-remote-source
set security policies default-policy permit-all
set security zones security-zone trust interfaces ge-0/0/2.0 host-inbound-traffic system-services all
set security zones security-zone trust interfaces ge-0/0/2.0 host-inbound-traffic protocols all
set security zones security-zone trust interfaces lo0.0 host-inbound-traffic system-services all
set security zones security-zone trust interfaces lo0.0 host-inbound-traffic protocols all
set security zones security-zone untrust interfaces ge-0/0/6.0 host-inbound-traffic system-services all
set security zones security-zone untrust interfaces ge-0/0/6.0 host-inbound-traffic protocols all

SRX240A

interfaces {
    ge-0/0/2 {
        unit 0 {
            family inet {
                address 192.168.100.1/24;
            }
        }
    }
    ge-0/0/6 {
        unit 0 {
            family inet {
                address 192.168.50.1/24;
            }
        }
    }
    lo0 {
        unit 0 {
            family inet {
                address 172.16.10.1/24;
            }
        }
    }
}
routing-options {
    static {
        route 172.16.20.0/24 next-hop 192.168.50.2;
        route 192.168.200.0/24 next-hop 192.168.50.2;
    }
}
protocols {
    igmp {
        interface ge-0/0/6.0;
    }
    pim {
        rp {
            local {
                address 172.16.10.1;
            }
        }
        interface ge-0/0/2.0;
    }
}
security {
    policies {
        default-policy {
            permit-all;
        }
    }
    zones {
        security-zone trust {
            interfaces {
                ge-0/0/2.0 {
                    host-inbound-traffic {
                        system-services {
                            all;
                        }
                        protocols {
                            all;
                        }
                    }
                }
                lo0.0 {
                    host-inbound-traffic {
                        system-services {
                            all;
                        }
                        protocols {
                            all;
                        }
                    }
                }
            }
        }
        security-zone untrust {
            interfaces {
                ge-0/0/6.0 {
                    host-inbound-traffic {
                        system-services {
                            all;
                        }
                        protocols {
                            all;
                        }
                    }
                }
            }
        }
    }
}
SRX240B:
interfaces {
    ge-0/0/2 {
        unit 0 {
            family inet {
                address 192.168.200.1/24;
            }
        }
    }
    ge-0/0/6 {
        unit 0 {
            family inet {
                address 192.168.50.2/24;
            }
        }
    }
    lo0 {
        unit 0 {
            family inet {
                address 172.16.20.1/24;
            }
        }
    }
}
routing-options {
    static {
        route 172.16.10.0/24 next-hop 192.168.50.1;
        route 192.168.100.0/24 next-hop 192.168.50.1;
    }
    multicast {
        pim-to-igmp-proxy {
            upstream-interface ge-0/0/6.0;
        }
    }
}
protocols {
    igmp {
        interface ge-0/0/2.0 {
            static {
                group 235.11.11.11;
            }
        }
        interface ge-0/0/6.0 {
            disable;
        }
    }
    pim {
        rp {
            local {
                address 172.16.20.1;
            }
        }
        interface ge-0/0/2.0;
        interface ge-0/0/6.0 {
            accept-remote-source;
        }
    }
}
security {
    policies {
        default-policy {
            permit-all;
        }
    }
    zones {
        security-zone trust {
            interfaces {
                ge-0/0/2.0 {
                    host-inbound-traffic {
                        system-services {
                            all;
                        }
                        protocols {
                            all;
                        }
                    }
                }
                lo0.0 {
                    host-inbound-traffic {
                        system-services {
                            all;
                        }
                        protocols {
                            all;
                        }
                    }
                }
            }
        }
        security-zone untrust {
            interfaces {
                ge-0/0/6.0 {
                    host-inbound-traffic {
                        system-services {
                            all;
                        }
                        protocols {
                            all;
                        }
                    }
                }
            }
        }
    }
}

Use the show multicast pim-to-igmp-proxy command to display the PIM-to-IGMP proxy state (enabled or disabled) and the name or names of the configured upstream interfaces.

root@# run show multicast pim-to-igmp-proxy
Proxy state: enabled ge-0/0/6.0

Related Information