--- Begin Message ---
Subject: diald: Re-open 32592 Problems with dynamic addressing
Package: diald
Version: 0.99.4-2.1
Severity: normal
Dear Jeff,
First of all, thanks for maintaining diald. I use it.
On Thu, 4 Nov 1999, Chris Cheney wrote this about bug report 32592:
"I believe that this bug has been fixed, since I have uploaded
the
current version 0.91.1 . I have no way to test this however,
and
was unable to reach the original submitter (David Morris). If
anyone can reproduce this bug feel free to change the severity
back."
I think I may be reproducing the bug.
My system uses dynamic IP addressing, diald, ppp and an old 28K modem
but no IP
masquerading or named. I've noticed for a long time that the first
packets sent
out after diald brings up my modem link are lost. For example, if the
link is
down and I type
$ ping -c 1 rahul.net
it starts the link, but fails with
ping: unknown host rahul.net
But once the link has been up for half a minute or so, the same ping
command
works great.
I've recently been making a concerted effort to fix this old bug and
have tried
all of the following, without result:
Upgraded my kernel, diald, etc...
/proc/sys/net/ipv4/ip_forward = 1
/proc/sys/net/ipv4/ip_dynaddr = 5
buffer-packets off in /etc/diald/diald.options
changing from a slip proxy to ethertap
Here's the big but. BUT, I think I've found something interesting by
monitoring
internet traffic before and after diald sees it with
a utility called tcpdump, to see traffic going into diald and
a utility called serial line sniffer (slsnif), to see traffic
coming
out of diald (and going into the modem).
Specifically, I see that packets with the bogus default source IP
address
defined by "local" in /etc/diald/diald.options are seen at tap0, but not
at the
modem! For example,
$ tcpdump -i tap0
192.168.0.1.1384 > 198.187.188.2.domain
but I don't see this packet in slsnif's log file. (192.168.0.1 is the
bogus
default source IP address defined by "local" in
/etc/diald/diald.options).
Unless I'm mistaken, diald is eating these packets, which is a bad
thing(TM).
Ideally, I'd like to see these packets buffered until the ISP provides a
dynamic IP address. Then the packets should have their source IP
addresses
corrected and sent out.
Feel free to contact me if you'd like me to try something.
Thanks,
Kingsley
-- System Information
Debian Release: 2.2
Kernel Version: Linux debian1.loaner.com 2.4.4 #3 Mon May 7 19:59:49 PDT
2001 i686
unknown
Versions of the packages diald depends on:
ii debconf 0.2.80.8 Debian configuration management system
ii libc6 2.2.3-1 GNU C Library: Shared libraries and
Timezone
ii libpam0g 0.72-3 Pluggable Authentication Modules
library
ii libwrap0 7.6-4 Wietse Venema's TCP wrappers library
ii netbase 3.18-4 Basic TCP/IP networking binaries
ii ppp 2.4.1-1 Point-to-Point Protocol (PPP) daemon.
--- Begin /etc/diald/standard.filter (modified conffile)
#
#
#
#
accept tcp 15 tcp.syn
ignore tcp tcp.dest=tcp.domain
ignore tcp tcp.source=tcp.domain
accept tcp 5 ip.tot_len=40,tcp.syn
ignore tcp ip.tot_len=40,tcp.live
accept tcp 600 tcp.dest=tcp.www
accept tcp 600 tcp.source=tcp.www
accept tcp 600 tcp.dest=tcp.443
accept tcp 600 tcp.source=tcp.443
keepup tcp 120 tcp.dest=tcp.https
keepup tcp 120 tcp.source=tcp.https
keepup tcp 5 !tcp.live
ignore tcp !tcp.live
accept tcp 600 tcp.dest=tcp.ftp
accept tcp 600 tcp.source=tcp.ftp
ignore tcp !tcp.live,tcp.dest=tcp.telnet
ignore tcp !tcp.live,tcp.source=tcp.telnet
accept tcp 600 tcp.dest=tcp.telnet
accept tcp 600 tcp.source=tcp.telnet
accept tcp 600 any
#
ignore udp udp.dest=udp.10000
ignore udp udp.dest=udp.who
ignore udp udp.source=udp.who
ignore udp udp.dest=udp.route
ignore udp udp.source=udp.route
ignore udp udp.dest=udp.ntp
ignore udp udp.source=udp.ntp
ignore udp udp.dest=udp.timed
ignore udp udp.source=udp.timed
ignore udp udp.dest=udp.domain,udp.source=udp.domain
accept udp 30 udp.dest=udp.domain
accept udp 30 udp.source=udp.domain
ignore udp udp.source=udp.netbios-ns,udp.dest=udp.netbios-ns
accept udp 30 udp.dest=udp.netbios-ns
accept udp 30 udp.source=udp.netbios-ns
ignore udp tcp.dest=udp.route
ignore udp tcp.source=udp.route
accept udp 120 any
ignore igmp any
ignore ospfigp any
accept any 30 any
--- End /etc/diald/standard.filter
--- End Message ---