Re: [HELP] Mutlicast over GRE tunnel (some minor fix on RtrA setup script but the problem is still there)

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Zhuang Yuyao wrote:
Hi,

I got a problem similar to this one (http://mailman.ds9a.nl/pipermail/lartc/2005q4/017614.html), GRE tunnel can forward normal IP packets such as ICMP but failed to tunnel multicast traffics.

Here's the setup:

                       192.168.20.0/24
LAN-A--------------RtrA-------------RtrB--------------LAN-B
     192.168.50.0/24                     192.168.60.0/24

RtrA interfaces:
eth0 192.168.20.100
eth1 192.168.50.1

HOSTA in LAN-A
eth0 192.168.50.250

RtrB interfaces:
eth0 192.168.20.98
eth1 192.168.60.1

HOSTB in LAN-B
eth0 192.168.60.250

Here is the setup script on RtrB:

     1 #!/bin/sh
     2
     3 END_L=192.168.20.98
     4 END_R=192.168.20.100
     5 GRE_L=10.0.0.4
     6 GRE_R=10.0.0.3
     7 MGROUP=224.0.55.55
     8 SUBNET_R=192.168.50.0/24
     9
    10 /usr/sbin/iptables -F
    11 /usr/sbin/iptables -F -t nat
    12 /usr/sbin/iptables -P FORWARD ACCEPT
    13
    14 ip tunnel del gretun
    15 ip tunnel add gretun mode gre remote $END_R local $END_L ttl 255
    16 ip link set gretun up multicast on
    17 ip addr add $GRE_L peer $GRE_R/24 dev gretun
    18
    19 ip route del $SUBNET_R via $GRE_R
    20 ip route add $SUBNET_R via $GRE_R
    21
    22 /usr/sbin/smcroute -k
    23 /usr/sbin/smcroute -d
    24 sleep 3
    25 /usr/sbin/smcroute -a eth1 192.168.60.250 $MGROUP gretun
    26 /usr/sbin/smcroute -j gretun $MGROUP

and the setup script on RtrA:
     1 #!/bin/sh
     2
     3 END_L=192.168.20.100
     4 END_R=192.168.20.98
     5 GRE_L=10.0.0.3
     6 GRE_R=10.0.0.4
     7 MGROUP=224.0.55.55
     8 SUBNET_R=192.168.60.0/24
     9
    10 /usr/sbin/iptables -F
    11 /usr/sbin/iptables -F -t nat
    12 /usr/sbin/iptables -P FORWARD ACCEPT
    13
    14 ip tunnel del gretun
    15 ip tunnel add gretun mode gre remote $END_R local $END_L ttl 255
    16 ip link set gretun up multicast on
    17 ip addr add $GRE_L peer $GRE_R/24 dev gretun
    18
    19 ip route del $SUBNET_R via $GRE_R
    20 ip route add $SUBNET_R via $GRE_R
    21
    22 /usr/sbin/smcroute -k
    23 /usr/sbin/smcroute -d
    24 sleep 3
   25 /usr/sbin/smcroute -a gretun 192.168.60.250 $MGROUP eth0
   26 /usr/sbin/smcroute -j gretun $MGROUP

On RtrB (while running #ping 192.168.50.250 on HOSTB):
/usr/sbin/tcpdump -i eth0 -n
10:46:21.470623 IP 192.168.20.98 > 192.168.20.100: GREv0, length 88: IP 192.168.60.250 > 192.168.50.250: ICMP echo request, id 44558, seq 1, length 64 10:46:21.476843 IP 192.168.20.100 > 192.168.20.98: GREv0, length 88: IP 192.168.50.250 > 192.168.60.250: ICMP echo reply, id 44558, seq 1, length 64 10:46:22.487867 IP 192.168.20.98 > 192.168.20.100: GREv0, length 88: IP 192.168.60.250 > 192.168.50.250: ICMP echo request, id 44558, seq 2, length 64 10:46:22.491629 IP 192.168.20.100 > 192.168.20.98: GREv0, length 88: IP 192.168.50.250 > 192.168.60.250: ICMP echo reply, id 44558, seq 2, length 64 10:46:23.473064 IP 192.168.20.98 > 192.168.20.100: GREv0, length 88: IP 192.168.60.250 > 192.168.50.250: ICMP echo request, id 44558, seq 3, length 64 10:46:23.473711 IP 192.168.20.100 > 192.168.20.98: GREv0, length 88: IP 192.168.50.250 > 192.168.60.250: ICMP echo reply, id 44558, seq 3, length 64 10:46:24.452719 IP 192.168.20.98 > 192.168.20.100: GREv0, length 88: IP 192.168.60.250 > 192.168.50.250: ICMP echo request, id 44558, seq 4, length 64 10:46:24.453209 IP 192.168.20.100 > 192.168.20.98: GREv0, length 88: IP 192.168.50.250 > 192.168.60.250: ICMP echo reply, id 44558, seq 4, length 64 10:46:25.470861 IP 192.168.20.98 > 192.168.20.100: GREv0, length 88: IP 192.168.60.250 > 192.168.50.250: ICMP echo request, id 44558, seq 5, length 64 10:46:25.478632 IP 192.168.20.100 > 192.168.20.98: GREv0, length 88: IP 192.168.50.250 > 192.168.60.250: ICMP echo reply, id 44558, seq 5, length 64

As you can see, the ICMP packets are encapsulated by GRE tunnel.

Now I started to run multicast test by running "iperf -c 224.0.55.55 -u -T 32 -t 1000 -i 1" on HOSTB
On RtrB:
/usr/sbin/tcpdump -i eth0 -n
/usr/sbin/tcpdump -i gretun -n
both captured nothing !!!

I am really confused. Any help will be appreciated!

Thanks very much!

Best regards,

   Zhuang Yuyao





_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux