Date: Wed, 15 Mar 2000 23:47:04 -0500 From: "Crist J. Clark" <cjc@cc942873-a.ewndsr1.nj.home.com> To: David Preece <dmpreece@paradise.net.nz> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: (relatively newbie) routing question. Message-ID: <20000315234704.D60836@cc942873-a.ewndsr1.nj.home.com> In-Reply-To: <NDBBLOFHAKIDKINHKCNCIEIOCBAA.dmpreece@paradise.net.nz>; from dmpreece@paradise.net.nz on Thu, Mar 16, 2000 at 11:45:03AM %2B1300 References: <NDBBLOFHAKIDKINHKCNCIEIOCBAA.dmpreece@paradise.net.nz>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 16, 2000 at 11:45:03AM +1300, David Preece wrote: > Hi, > > What worked: I had my boxen set up like this, and it worked fine: > > Internet > | > 203.79.92.1 (router provided by ISP) > | > 203.79.92.25 (IP of my cable modem, on a class C) > | > [BSD] ep0=203.79.92.25 (0xffffff00) > [BSD] | > [BSD] natd > [BSD] | > [BSD] ed1=192.168.0.1 (0xffffff00) > | > [NT] 192.168.0.2 (0xffffff00) > > (ipfw show) > 00100 337 145736 divert 8668 ip from any to any via ep0 > 00200 1941 679991 allow ip from any to any > (and yes, there was a power cut five minutes ago). > > Where [BSD] and [NT] show what is sitting in which box and the hex is subnet > masks. And it goes, a treat. Great. Looks good. > So much so that I feel the urge to try some > immoral experiments on natd (having a go at load balancing), and set up a > separate class C - 192.168.1 with another FreeBSD box on it. > > ...as above... > | > [BSD] ep0=203.79.92.25 (0xffffff00) > [BSD] | > [BSD] natd > [BSD] | > [BSD] ed1=192.168.0.1 (0xffffff00) ed0=192.168.1.1 > (0xffffff00) > | | > [NT] 192.168.0.2 (0xffffff00) [BSD2] ep0=192.168.1.2 > (0xffffff00) > > Hopefully with the idea that I can put two natd instances up, a 'release' > instance onto ep0 to keep the net access up, and the experimental one onto > ep1 and run trials from BSD2. Now, while I can telnet onto the 'main' BSD > box from NT fine, I cannot ping 192.168.1.2 from NT. Needless to say, > pinging (or telnetting) 192.168.1.2 from the main BSD box is no problem. Hmmm... Odd. Time to do some tcpdump(1)s on the NAT box to see where these packets are going. > So, it looks like a routing table problem - let's have a look. > > su-2.03# netstat -r > Routing tables > > Internet: > Destination Gateway Flags Refs Use Netif > Expire > default 203-79-92-1.cable2 UGSc 2 266 ep0 > localhost localhost UH 0 1 lo0 > 192.168 link#1 UC 0 0 ed1 > 192.168.0.2 0:50:ba:b2:71:26 UHLW 1 758 ed1 1020 > 192.168.1 link#2 UC 0 0 ed0 > 192.168.1.2 0:0:b4:b2:9:d7 UHLW 1 2 ed0 1132 > 203.79.92 link#3 UC 0 0 ep0 > 203-79-92-1.cable2 0:50:f:3:78:70 UHLW 2 0 ep0 1200 > > Now I'm no great expert with routing tables, but this seems to be telling me > that the default router is set as the one from the ISP - great. Loopback is > going. That a class B starting with 192.168 has ed1 as its' NIC - and hence > packets addressed for 192.168.1.2 could be expected to go that way (despite > the fact that we also have the class C 192.168.1 on ed0, and that we > actually have the hardware address of 192.168.1.2 in the routing table now). I don't think that is correct. IIRC, the routing table is showing that 192.168.0.0/24 is working fine. The routing table never shows trailing zero bytes. If no netmask is shown, assume the netmask is its historic A, B, or C class. Since 192.168.0.0 is a historic class C, all is well. Here, I'm going to test by aliasing my inside interface. # ifconfig de0 de0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.64.254 netmask 0xffffff00 broadcast 192.168.64.255 ether 00:e0:29:11:d3:a9 media: autoselect (10base2/BNC) status: active supported media: autoselect 10base5/AUI 10base2/BNC 10baseT/UTP <full-duplex> 10baseT/UTP # ifconfig de0 inet 10.0.0.1 alias # ifconfig de0 | grep '10\.0' inet 10.0.0.1 netmask 0xff000000 broadcast 10.255.255.255 # netstat -rn | grep 10 10 link#2 UC 0 0 de0 # ifconfig de0 inet 10.0.0.1 netmask 0xffffff00 alias # ifconfig de0 | grep '10\.0' inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 # netstat -rn | grep 10 10/24 link#2 UC 0 0 de0 # Yep. It does not show trailing zeros in the last case, but is using the correct netmask. > This looks to me to be the problem, and the evidence suggests that the > problem could be used by making 192.168.1 and 192.168.2 my local subnets. > Thing is, I don't understand why. Especially since all three NIC are set to > be class C from rc.conf: > > ifconfig_ep0="inet 203.79.92.25 netmask 255.255.255.0" > ifconfig_ed0="inet 192.168.1.1 netmask 255.255.255.0" > ifconfig_ed1="inet 192.168.0.1 netmask 255.255.255.0" Looks fine. Agrees with the netstat. > Is there something fundamental I don't understand about using 0 as the last > 8 bits of a network address? (Like RFCxxxx says you can't). Or am I missing > the point somewhere else along the line? Just how it is displayed. > I appreciate this is a kinda big mail, but I was trying to illustrate the > situation as clearly as possible. However, this just makes the question of why the NT box can't talk even more perplexing... unless _it_ is not configured properly. Can BSD2 reach the NT machine? -- Crist J. Clark cjclark@home.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000315234704.D60836>