Date: Mon, 10 Aug 1998 14:25:45 +0100 From: "Tom Jobbins" <T_Jobbins@bpiassociates.co.uk> To: <freebsd-isdn@FreeBSD.ORG> Subject: isdn4bsd with natd under FreeBSd Message-ID: <000001bdc462$6163c710$1e01a8c0@ntws-1.bpi>
next in thread | raw e-mail | index | archive | help
Hello, I am using isdn4bsd on a FreeBSD 2.2.7-STABLE box with a Teles S0/16.3 card I have configured the card and sPPP without problems - I can connect to the net and ping machines, connect to web sites, etc. I have a dynamic IP address, therefore I have configured isppp0 with the command: ifconfig isppp0 0.0.0.0 0.0.0.1 link1 I need to use natd with my ISDN line, so that other machines on the network can access the Internet through my FreeBSD box. I have been able to do this using ppp (interface tun0) with no problems, however natd does not work correctly with isd4nbsd and a dynamic IP address. The problem is that natd does not detect when the IP address of interface isppp0 changes. I am running natd with the -dynamic option, which means it is supposed to detect a change in IP address on the interface. It does detect this change with ppp and tun0, but not with isdn4bsd and isppp0. I have run natd with the -v verbose option to see what is happening, and saw the following: ------------------------------------------------ [I have forced isppp0 to connect to the net by pinging an IP, I then run natd:] bpiserver1:/usr/local# natd -dynamic -n isppp0 -v Out [ICMP] 193.149.75.48 -> 158.152.1.222 aliased to 193.149.75.48 -> 158.152.1.222 In [ICMP] 158.152.1.222 -> 193.149.75.48 aliased to 158.152.1.222 -> 193.149.75.48 Out [ICMP] 193.149.75.48 -> 158.152.1.222 aliased to 193.149.75.48 -> 158.152.1.222 In [ICMP] 158.152.1.222 -> 193.149.75.48 aliased to 158.152.1.222 -> 193.149.75.48 [so far, so good. Now I "ifconfig isppp0 down ; ifconfig isppp0 up" to force the line to drop:] Routing message E received. Routing message E received. [Now I ping the IP address again, forcing isppp0 to reconnect] Out [ICMP] 0.0.0.0 -> 158.152.1.222 aliased to 193.149.75.48 -> 158.152.1.222 Out [ICMP] 0.0.0.0 -> 158.152.1.222 aliased to 193.149.75.48 -> 158.152.1.222 Out [ICMP] 193.149.70.237 -> 158.152.1.222 aliased to 193.149.75.48 -> 158.152.1.222 [natd does not realise that my IP address has changed, and thus changes all IP addresses to my old IP address. No packets will now reach me. I am forced to manually "kill -HUP natd"] ------------------------------------------------ Now I repeat the test using ppp and interface tun0. Most of the output is the same, however when my IP address changes, natd is aware of it: ------------------------------------------------ Routing message 2 received. Routing message D received. Routing message C received. Interface address has changed. Routing message 1 received. Routing message 2 received. Routing message 2 received. Routing message 2 received. Routing message 2 received. Routing message 2 received. Routing message 1 received. ------------------------------------------------ >From the man page of natd: -dynamic If the -n or -interface option is used, natd will monitor the routing socket for alterations to the interface passed. If the interfaces IP number is changed, natd will dynamically alter its concept of the alias address. Therefore I presume that isdn4bsd is not notifying the system of the change in IP address in the same way that ppp does? Is this a bug? I am afraid I am not a coder, so I cannot myself look through the source to see the reason for this problem. If anyone else has the time to investigate this for me - perhaps I am doing something wrong? - I would be most appreciative. One workaround solution I did think of would be to simply call a "killall -HUP natd" every time isdnd connected. Is it possible to tell isdnd to execute a command every time it makes a call? Obviously this is not a very good solution, but it would solve the problem if this is a genuine bug that needs time to fix (I wish I could help do it myself!) Keep up the good work with isdn4bsd! Thanks in advance, Tom Jobbins. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isdn" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000001bdc462$6163c710$1e01a8c0>