TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
IP Routing question
I spent many hours last night pulling my hair out over this one and
hopefully someone can help:
I've got a box (cerberus) with two NICs. Each NIC has a cross-over cable
that connects it to antoher nic in a differnt box (bigdaddy and dan). The
cerberus/bigdaddy link is 100Mb and has LinkSys PCI cards at each end of
the crossover. The cerberus/dan link is 10Mb and has D Link22x (NE2000
clone) ISA cards at each end of the crossover.
I've got the 100Mb net set up with IPs in the 192.168.100.x range, and the
10Mb set up with IPs in the (you guessed it) 192.168.10.x range. I've got
the two end nodes (bigdaddy & dan) set up with nothing in their routing
tables except an entry that points the default route towards cerberus.
cerberus (the one w/ the two NICs) has a routing table like this:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Iface
192.168.100.1 * 255.255.255.255 UH 0 0 eth1
192.168.10.1 * 255.255.255.255 UH 0 0 eth0
192.168.100.0 * 255.255.255.0 U 0 0 eth1
192.168.10.0 * 255.255.255.0 U 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 lo
So nearly as I can tell that should be all that's needed for things to
route to each other.
Just for completeness here's the ipchains config on cerberus
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
Here are the ifconfig entries for the two NICs in cerberus:
eth0 Link encap:Ethernet HWaddr 00:80:C8:FA:72:9C
inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9056 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:3 Base address:0x280
eth1 Link encap:Ethernet HWaddr 00:A0:CC:28:45:A2
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6426 errors:0 dropped:0 overruns:0 frame:0
TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0xe800
There, with all that as background, let me tell you what is or isn't
working.
WORKING:
pinging cerberus to bigdaddy
pinging cerberus to dan
pinging dan to cerberus
pinging bigdaddy to cerberus
pinging bigdaddy to the 'far' NIC in cerberus
(ex: 192.168.100.3 (bigdaddy) to 192.168.10.1)
pinging dan to the 'far' NIC in cerberus
(ex: 192.168.10.2 (dan) to 192.168.100.1)
NOTWORKING:
pinging bigdaddy to dan
pinging dan to bigdaddy
NOTES:
I'm pretty sure the default routes on the end nodes (dan and bigdaddy) are
ok, and the boxen do route all requests through their NICs (flicker in the
activity lights).
GUESSES:
Perhaps I need something to tell cerberus it's ok to connect the two?
Soemthing in the forward rule? A 1 written to a file in /proc? A blood
sacrifice?
Cerberus is running whatever kernel comes with rh 6.1. Ifn' I get this
working I'll build up a kernel that's optimized for routing, but I didn't
think it was necessary to get it to work at all.
ADVICE I'VE RECEIVED:
"Only high end NICs will hand off packets for routing. Put Intel, 3COM,
or (real) NE2000 NICs in cerberus." If that's true why the hell wouldn't
O'Reilly's _TCP Network Administration_ mention that little catch? If I
can't hear any better suggestions I'll get new NICs, but if (and I may be
wrong) routing is done at the OS level what does it matter to the NIC if
the packet will be given to antoher NIC or used at the host?
Thanks in advance for any clock cycles you can waste on this,
Ry4an
--
Ry4an Brase - http://ry4an.org - 612-623-9946
'If you're not a rebel when you're 20 you've got no heart; if
you're not establishment when you're 30 you've got no brain.'