[Xorp-users] routing multicast with a tunnel using openvpn

Laurent Foucher laurent.foucher@iut-tlse3.fr
Mon, 26 Sep 2005 14:21:30 +0200


Hello,

I'm trying to route multicast through a tunnel using openvpn. This is my
configuration :

Host1 --------(eth1)Router1(tun0)---Internet--(tun0)Router2(eth1)----------Host2
194.x.y.80   194.x.y.33     10.4.0.1       10.4.0.2     194.x.z.250  194.x.z.34

On Host1 and Host2, i'm runnig : emcast -t 15 234.43.13.42:8765

Unicast routing ans tunnel works perfectly.

I have the communication from host2 to host2 and i haven't from host1 to host2
and i don't understand why.

Thanks you for your help.


Router1
Xorp> show pim interface
Interface    State    Mode   V PIMstate Priority DRaddr          Neighbors
eth1         UP       Sparse 2 DR              1 194.x.y.33              1
tun0         UP       Sparse 2 NotDR           1 10.4.0.2                1
register_vif UP       Sparse 2 DR              1 10.4.0.1                0

Router2
Interface    State    Mode   V PIMstate Priority DRaddr          Neighbors
eth1         UP       Sparse 2 DR              1 194.x.z.250             0
tun0         UP       Sparse 2 DR              1 10.4.0.2                1
register_vif UP       Sparse 2 DR              1 10.4.0.2                0

Router1
Xorp> show pim neighbors
Interface    DRpriority NeighborAddr    V Mode   Holdtime Timeout
tun0                  1 10.4.0.2        2 Sparse      105     100
Router2
Xorp> show pim neighbors
Interface    DRpriority NeighborAddr    V Mode   Holdtime Timeout
tun0                  1 10.4.0.1        2 Sparse      105      91

Router1
Xorp> show pim mfc
Group           Source          RP
234.43.13.42    194.x.z.34    10.4.0.2
    Incoming interface :      tun0
    Outgoing interfaces:      O..
234.43.13.42    194.x.y.80    10.4.0.2
    Incoming interface :      eth1
    Outgoing interfaces:      ..O
Router2
Xorp> show pim mfc
Group           Source          RP
234.43.13.42    194.x.z.34  10.4.0.2
    Incoming interface :      eth1
    Outgoing interfaces:      .O.
234.43.13.42    194.x.y.80  10.4.0.2
    Incoming interface :      register_vif
    Outgoing interfaces:      ...

Router1
Xorp> show pim bootstrap
Active zones:
BSR             Pri LocalAddress    Pri State           Timeout SZTimeout
10.4.0.2          1 10.4.0.1          1 Candidate            83        -1
Expiring zones:
BSR             Pri LocalAddress    Pri State           Timeout SZTimeout
Configured zones:
BSR             Pri LocalAddress    Pri State           Timeout SZTimeout
10.4.0.1          1 10.4.0.1          1 Init                 -1        -1
Router2

Xorp> show pim bootstrap
Active zones:
BSR             Pri LocalAddress    Pri State           Timeout SZTimeout
10.4.0.2          1 10.4.0.2          1 Elected              25        -1
Expiring zones:
BSR             Pri LocalAddress    Pri State           Timeout SZTimeout
Configured zones:
BSR             Pri LocalAddress    Pri State           Timeout SZTimeout
10.4.0.2          1 10.4.0.2          1 Init                 -1        -1

Router1
Xorp> show pim mrib
DestPrefix         NextHopRouter   VifName VifIndex MetricPref Metric
0.0.0.0/0          194.x.y.1   eth1    0               254  65535
10.4.0.1/32        10.4.0.1        tun0    1                 0      0
10.4.0.2/32        10.4.0.2        tun0    1                 0      0
194.x.z.0/24       10.4.0.2        tun0    1               254      1
194.x.z.250/32     194.x.y.1       eth1    0               254  65535
194.x.y.0/24       194.x.y.33      eth1    0                 0      0

Router2
Xorp> show pim mrib
DestPrefix         NextHopRouter   VifName VifIndex MetricPref Metric
0.0.0.0/0          194.x.z.1       eth1    0               254  65535
10.4.0.1/32        10.4.0.1        tun0    1                 0      0
10.4.0.2/32        10.4.0.2        tun0    1                 0      0
194.x.z.0/24       194.x.z.250     eth1    0                 0      0
194.x.y.0/24       10.4.0.1        tun0    1               254      1
194.x.y.33/32      194.x.z.1   eth1    0               254  65535

Config.boot is the same on router1 and router2 :

/* $XORP: xorp/rtrmgr/config.boot.sample,v 1.23 2005/03/09 22:50:41 pavlin Exp $
*/


interfaces {
    interface tun0 {
        description: "data interface"
        disable: false
        default-system-config
        }
    interface eth1 {
        description: "data interface"
        disable: false
        default-system-config
        }
}

fea {
    unicast-forwarding4 {
        disable: false
    }

    click {
        disable: true

        /*
         * Set duplicate-routes-to-kernel to true if the XORP routes
         * added to Click should be added to the system kernel as well.
         */
        duplicate-routes-to-kernel: false

        /*
         * Note: If both kernel-click and user-click are enabled, then
         * typically kernel-click-config-generator-file and
         * user-click-config-generator-file should point to different
         * generator files. Otherwise, a single common generator
         * wouldn't know whether to generate configuration for kernel-level
         * Click or for user-level Click.
         */
        kernel-click {
            disable: false
            install-on-startup: true
            kernel-click-modules: "/path/to/proclikefs.o:/path/to/click.o"
            /* XXX: On FreeBSD we need only module click.ko */
            /* kernel-click-modules: "/path/to/click.ko" */
            mount-directory: "/click"
            kernel-click-config-generator-file:
"/user/local/xorp/fea/xorp_fea_click_config_generator"
        }

        user-click {
            disable: false
            command-file: "/usr/local/bin/click"
            /*
             * Note: don't add "-p <port>" as an extra argument, because it
             * will conflict with the FEA's addition of the same argument.
             */
            command-extra-arguments: "-R"
            command-execute-on-startup: true
            control-address: 127.0.0.1
            control-socket-port: 13000
            startup-config-file: "/dev/null"
            user-click-config-generator-file:
"/user/local/xorp/fea/xorp_fea_click_config_generator"
        }
    }
}

protocols {
    rip {
        export connected {
            metric: 0
            tag: 0
        }
        interface tun0 {
            vif tun0 {
                address 10.4.0.2 {
                    disable: false
                }
            }
        }
    }
}

plumbing {
    mfea4 {
        disable: false
        interface tun0 {
            vif tun0 {
                disable: false
            }
        }
        interface eth1 {
            vif eth1 {
                disable: false
            }
        }
        interface register_vif {
            vif register_vif {
                /* Note: this vif should be always enabled */
                disable: false
            }
        }
        traceoptions {
            flag all {
                disable: false
            }
        }
    }
}

protocols {
    igmp {
        disable: false
        interface eth1 {
            vif eth1 {
                disable: false
            }
        }
        interface tun0 {
            vif tun0 {
                disable: false
            }
        }
        traceoptions {
            flag all {
                disable: false
            }
        }
    }
}

protocols {
    pimsm4 {
        disable: false
        interface tun0 {
            vif tun0 {
                disable: false
                /* dr-priority: 1 */
                /* alternative-subnet 10.40.0.0/16 */
            }
        }

        interface eth1 {
            vif eth1 {
                disable: false
                /* dr-priority: 1 */
                /* alternative-subnet 10.40.0.0/16 */
            }
        }

        interface register_vif {
            vif register_vif {
                /* Note: this vif should be always enabled */
                disable: false
            }
        }

        bootstrap {
            disable: false
            cand-bsr {
                scope-zone 224.0.0.0/4 {
                    /* is-scope-zone: false */
                    cand-bsr-by-vif-name: "tun0"
                    /* bsr-priority: 1 */
                    /* hash-mask-len: 30 */
                }
            }

            cand-rp {
                group-prefix 224.0.0.0/4 {
                    /* is-scope-zone: false */
                    cand-rp-by-vif-name: "tun0"
                    /* rp-priority: 192 */
                    /* rp-holdtime: 150 */
                }
            }
        }

        switch-to-spt-threshold {
            /* approx. 1K bytes/s (10Kbps) threshold */
            disable: false
            interval-sec: 100
            bytes: 102400
        }

        traceoptions {
            flag all {
                disable: false
            }
        }
    }
}

/*
 * Note: fib2mrib is needed for multicast only if the unicast protocols
 * don't populate the MRIB with multicast-specific routes.
 */
protocols {
    fib2mrib {
        disable: false
    }
}



/*
 * See xorp/mibs/snmpdscripts/README on how to configure Net-SNMP in your host
 * before uncommenting the snmp section below.
 * Also check that the "bgp4_mib_1657.so" exists in the correct location.
 */

/*
protocols {
    snmp {
        mib-module bgp4_mib_1657 {
            abs-path: "/usr/local/xorp/mibs/bgp4_mib_1657.so"
        }
    }
}
*/


- Laurent Foucher

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.