"BAD ICMP" message

Sebastiaan van Erk sebster at sebster.com
Wed Apr 29 08:49:09 UTC 2009


Sebastiaan van Erk wrote:
> Hi,
> 
> Thanks for the reply.
> 
> Max Laier wrote:
>> On Thursday 23 April 2009 07:05:54 Sebastiaan van Erk wrote:
>>> Apr 23 06:58:38 vpn3 kernel: pf: loose state match: TCP
>>> 10.0.80.150:51422 10.0.80.150:51422 10.0.80.4:22 [lo=3150927679
>>> high=3150923785 win=692 modulator=0] [lo=0 high=692 win=1 modulator=0]
>>> 2:0 A seq=3150927679 (3150927679) ack=0 len=0 ackskew=0 pkts=77:0
>>> Apr 23 06:58:38 vpn3 kernel: pf: BAD ICMP 5:1 10.0.80.77 -> 10.0.80.150
>>                                             ^
>>
>> These are ICMP redirect messages.  This clearly suggests that 
>> something is very wrong with your routing.  I assume your netmasks are 
>> wrong.  It looks like 10.0.80.77 thinks that 10.0.80.150 can reach 
>> 10.0.80.4 directly which is not the case - it needs to route through 
>> 10.0.80.77.

Actually, I finally figured out what was wrong. I accidentally told 
OpenVPN to "push 10.0.80.0/24 10.0.80.77", in other words, the client 
machine 10.0.80.150 tried to route though 10.0.80.77 even though it can 
reach it directly (since it's a bridged network). After removing the 
offending line, everything works. Something was definitely wrong with 
the routing though. :-)

Regards,
Sebastiaan


 > Here's a list of the entire setup:
 >
 > em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0
 > mtu 1500
 >         options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
 >         ether 00:0c:29:61:2a:4b
 >         inet 111.111.111.111 netmask 0xfffffff0 broadcast 212.61.136.79
 >         media: Ethernet autoselect (1000baseTX <full-duplex>)
 >         status: active
 > em1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0
 > mtu 1500
 >         options=98<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
 >         ether 00:0c:29:61:2a:55
 >         inet 10.0.80.77 netmask 0xffffff00 broadcast 10.0.80.255
 >         media: Ethernet autoselect (1000baseTX <full-duplex>)
 >         status: active
 > em2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0
 > mtu 1500
 >         options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
 >         ether 00:0c:29:61:2a:5f
 >         inet 10.0.81.77 netmask 0xffffff00 broadcast 10.0.81.255
 >         media: Ethernet autoselect (1000baseTX <full-duplex>)
 >         status: active
 > em3: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0
 > mtu 1500
 >         options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
 >         ether 00:0c:29:61:2a:69
 >         inet 10.0.82.77 netmask 0xffffff00 broadcast 10.0.82.255
 >         media: Ethernet autoselect (1000baseTX <full-duplex>)
 >         status: active
 > plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0
 > mtu 1500
 > lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
 >         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
 >         inet6 ::1 prefixlen 128
 >         inet 127.0.0.1 netmask 0xff000000
 > pfsync0: flags=0<> metric 0 mtu 1460
 >         syncpeer: 224.0.0.240 maxupd: 128
 > bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu
 > 1500
 >         ether f2:f4:c1:45:e7:50
 >         id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
 >         maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
 >         root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
 >         member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
 >                 ifmaxaddr 0 port 9 priority 128 path cost 2000000
 >         member: em1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
 >                 ifmaxaddr 0 port 2 priority 128 path cost 20000
 > tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric
 > 0 mtu 1500
 >         ether 00:bd:96:02:00:00
 >         Opened by PID 1310
 > carp0: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
 >         inet 111.111.111.112 netmask 0xfffffff0
 >         carp: MASTER vhid 1 advbase 1 advskew 0
 > carp1: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
 >         inet 10.0.80.74 netmask 0xffffff00
 >         carp: MASTER vhid 2 advbase 1 advskew 0
 > carp2: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
 >         inet 10.0.81.74 netmask 0xffffff00
 >         carp: MASTER vhid 3 advbase 1 advskew 0
 > carp3: flags=49<UP,LOOPBACK,RUNNING> metric 0 mtu 1500
 >         inet 10.0.82.74 netmask 0xffffff00
 >         carp: MASTER vhid 4 advbase 1 advskew 0
 > pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33160
 >
 > em0 is the external interface, em1 is the vpn interface, and em2 and em3
 > have production machines on them...
 >
 > The tap0 is the interface used by openvpn. It is bridged in bridge0 to
 > the internal em1 network. Since it is bridged, my feeling says that the
 > two VPN clients (10.0.80.4 and 10.0.80.150) should be able to talk
 > directly to eachother. I have no idea why my linux box (10.0.80.150)
 > thinks it can't directly talk to the other vpn client and talks via the
 > gateway instead. I get a lot of these ICMP redirects on tap0:
 >
 > # tcpdump -ni tap0 icmp
 > tcpdump: WARNING: tap0: no IPv4 address assigned
 > tcpdump: verbose output suppressed, use -v or -vv for full protocol 
decode
 > listening on tap0, link-type EN10MB (Ethernet), capture size 96 bytes
 > 16:32:51.719979 IP 10.0.80.77 > 10.0.80.150: ICMP redirect 10.0.80.4 to
 > host 10.0.80.4, length 60
 >
 > I'm sure I'm doing something wrong somewhere, but I can't quite figure
 > it out.
 >
 > Regards,
 > Sebastiaan
 >

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3328 bytes
Desc: S/MIME Cryptographic Signature
Url : http://lists.freebsd.org/pipermail/freebsd-pf/attachments/20090429/8e6f8472/smime.bin


More information about the freebsd-pf mailing list