I currently have the following home network configuration:
A Sun Ultra 10 with one ethernet port on the motherboard and
a Sun QFE board (4 ports), for 5 ethernet ports total, and
a Cyclades PC-300/TE1 connected to my T1 line. The PC-300 has
address 216.254.16.24, and my network is 64.81.187.64/27.
The problem is that the driver for the PC-300 board sucks
ass [1]. I want to ditch the PC-300 board, and pick up
a used Cisco 2501 and CSU/DSU or equivalent on eBay, but
I still want to use the Ultra 10 as the outgoing router for
my network, so I'm thinking of a configuration like this:
------------ --------------
<-- Ethernet out --| Ultra 10 |--- Ethernet -----| Cisco 2501 |
<-- to network ----| | (192.168.0.0/24) --------------
(64.81.187.64/27) ------------ +-- To T1 ---->
(216.254.15.24)
The Cisco router will have its WAN interface on 216.254.15.24,
and its ethernet on 192.168.0.1. It will this routing table:
default gw 216.254.15.1
64.81.187.64/27 gw 192.168.0.2
216.254.15.0/24 WAN
192.168.0.0/24 ethernet
The Ultra 10 will have:
eth0 192.168.0.2 netmask 255.255.255.0
eth1 64.81.187.65 netmask 255.255.255.224
eth2-eth4 other RFC 1918 space
Routing table:
default gw 192.168.0.1
192.168.0.0/24 eth0
64.81.187.64/27 eth1
(and so on)
This should work for everything behind the Ultra 10,
but I think that if something running on the Ultra 10
tries send to a destination outside my network, unless
it explicitly bind()s to something other than INADDR_ANY,
it will use a source address of 192.168.0.2, which is
obviously not okay. Does anyone out there know what
I can do on the Ultra 10 to make packets sent from it
default to a source address of 64.81.187.65 instead
(preferably other than modifying the kernel networking
code). Alternately, does anyone know how to de-suckulize
the PC-300 driver?
[1] After spending two weeks cleaning up all the 32-bitisms, I
discovered that I can't transmit faster than about 30 kilobytes/sec
without causing TX underruns. Changing some DMA threshold values
helped, but it still can't handle full duplex reasonably, and
sometimes just gets constipated and won't transmit anything
for several seconds, producing numerous NETDEV WATCHDOG: hdlc0:
transmit timed out messages on the console.
--
Andy Shepard
|