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