{BUG} GRE/XFRM Tunnel Soft State Issue

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

 



I have ran into a bug with tunnel soft state not being handled properly
across gre / xfrm tunnels.

My setup follows:

A <---> H
        U <---> D <---> C
B <---> B

1) 'A' sends data for 'C' to 'B' (because of a special route setup)
	Current packet: ICMP ping request A->C
2) 'B' performs GRE encapsulation
	Current packet: GRE B->C
3) 'B' performs an ipsec wrapping
	Current packet: ESP B->C
4) 'B' performs another ipsec tunneling
	Current packet: ESP B->D
5) 'D' receives and decrypts the packet
	Current packet: ESP B->C
6) 'D' performs an ipsec tunneling and sends
	Current packet: ESP D->C
7) 'C' Receives the packet and de-tunnels as follows
	Packet: ESP D->C
		  ESP B->C
		  GRE B->C
		  ICMP A->C

'C' then responds in a similar manner and everyone is happy.  The problem
occurs when the packet size grows.  Ex: try this setup and do `ping -s 1400
C` on host 'A'  It obviously won't work and shouldn't but the problem is
that host 'B' will perform the GRE encapsulation then send an ICMP
fragmentation needed message to itself:
	B -> B ICMP Fragmentation needed

As opposed to sending a 'Fragmentation Needed' message to 'A' which it
should do.

This results in host 'A's packets being black holed.

Information:
Kernel: 2.6.11.2
IPsec-Tools: 0.5rc2
No firewalls
Standard Ethernet connections

Is anyone working on a fix?  If anyone needs more information be sure to
'CC' me as I am not getting linux-net list right now.

Thomas DuBuisson
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux