Masquerading Brain Fart....: dyn_ip kernel problem
Wolfgang Barth
wob@swobspace.de
Sun, 12 Nov 2000 22:57:00 +0100
On Sun, Nov 12, 2000 at 06:11:30PM +0100, Ingo Hoft wrote:
> I don't understand your problem in detail, but I have a similar problem with
> the same configuration. I use PPPoE from Roaring Penguin. The first time
> the dial up connection is established the dynamically changed ip-address is
> not given to the ppp0 interface. This only happens in the second try
> (restarting a ping or refreshing a htttp connection). It seems this is a
> problem with PPPoE because no other one in this list has this problem with
> masquerading. Let me now if you find something about this.
I get a similar problem with ISDN and i4l. I think it is a kernel problem
with the dynamic ip rewriting.
Under kernel 2.2, a ping triggering a dial up connection losts one or to
packets (wrong/old if ip address), but i get a response after the third
package:
% ping gate.assem-audi.com
PING gate.assem-audi.com (195.247.16.2): 56 data bytes
64 bytes from 195.247.16.2: icmp_seq=4 ttl=55 time=90.276 ms
64 bytes from 195.247.16.2: icmp_seq=5 ttl=55 time=88.099 ms
--- gate.assem-audi.com ping statistics ---
6 packets transmitted, 2 packets received, 66% packet loss
round-trip min/avg/max = 88.099/89.187/90.276 ms
tcpdump shows the change in the ip address:
User level filter, protocol ALL, datagram packet socket
tcpdump: listening on ippp0
22:48:18.960191 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:20.957189 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:21.857238 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:21.860982 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:21.888610 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:21.915115 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:21.948232 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:21.981980 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:21.985105 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:22.002232 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:22.009493 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:22.031514 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:22.031605 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:22.031613 149.225.99.246 > 195.247.16.2: icmp: echo request
22:48:22.031621 149.225.99.246 > 195.247.16.2: icmp: echo request
> change old to new if ip <
22:48:22.987263 149.225.96.216 > 195.247.16.2: icmp: echo request
22:48:23.077388 195.247.16.2 > 149.225.96.216: icmp: echo reply
22:48:23.987248 149.225.96.216 > 195.247.16.2: icmp: echo request
22:48:24.075243 195.247.16.2 > 149.225.96.216: icmp: echo reply
With kernel 2.4.0-test10 (test9, test8), there is no change with icmp, nor
with tcp or udp. I have to kill and restart the ping.
/proc/sys/net/ipv4/ip_{forward,dynaddr} is set.
Since this problem occur for local connections, it can't better work
with forwarding and masquerading. It doesn't matter if the modules
for netfilter are loaded or not.
May be someone more closed to the kernel development can help.
wob
--
<wob@swobspace.de> *** How often do you wan't to boot today ? ***