[comp.dcom.lans] How can I force some routes through an Ethernet Bridge??

djh@cci632.UUCP (Daniel J. Hazekamp) (06/15/89)

First, the scenario:

	We have 2 local ethernets with different Class C internet addresses
connected via a gateway host. A single host on Net A, has some leased line
connections to additional offsite ethernets. All hosts are running 4.2 BSD
Networking software.


			      Net B
	----------------------------------------------------
				|
			   -----------
			   |  local  |
			   | gateway |
			   |   host  |
			   -----------
				|
	----------------------------------------------------
			      Net A		|
					   -----------
					   |  remote |
					   | gateway |
					   |   host  |
					   -----------
	leased lines to offsite Nets   ---->  |   |



I've replaced the 'local gateway host' with an ethernet bridge.

			      Net B
	----------------------------------------------------
				|
			   -----------
			   | ethernet|
			   |  bridge |
			   -----------
				|
	----------------------------------------------------
			      Net A		|
					   -----------
					   |  remote |
					   | gateway |
					   |   host  |
					   -----------
	leased lines to offsite Nets   ---->  |   |
	
I then added routing information to allow hosts on Nets A and B to talk to
each other through the bridge.

		On Net B hosts:
			/etc/route add NetA NetB 0

		On Net A hosts:
			/etc/route add NetB NetA 0

At this point, telnet, ftp, rlogin, etc all work between hosts on Nets A and B.

The problem is that I can't get to any hosts on the offsite networks from Net B
hosts. Under the original setup, I assigned the 'default' route to the 'remote' 
gateway host as follows:

		/etc/route add default rgateway 1

With the new setup, this fails on all the Net B hosts, even though I have a
valid route to Net A. The error message returned is 'Network Unreachable'. This
is clearly bogus, since I can rlogin, ftp, etc to all the Net A hosts.

Any help would be appreciated.

Note: I realize that one solution is to modify the setup such that Nets A and B
are simply 2 segments with the same Class C net address. We'd like to avoid this
if at all possible.

Dan Hazekamp
Computer Consoles Inc.
Rochester, NY

UUCP:		rochester!cci632!djh
Internet:	cci632!djh@cs.rochester.edu
-- 
Dan Hazekamp					rochester!cci632!djh
Computer Consoles Inc. (CCI)			uunet!ccicpg!cci632!djh
Rochester, NY					uunet!rlgvax!cci632!djh

dupont@inria.inria.fr (Francis Dupont) (07/23/89)

I apologize for the long include, but it is necessary to explain the problem
before ...

In article <29219@cci632.UUCP>, djh@cci632.UUCP (Daniel J. Hazekamp) writes:
> First, the scenario:
> 
> 	We have 2 local ethernets with different Class C internet addresses
> connected via a gateway host. A single host on Net A, has some leased line
> connections to additional offsite ethernets. All hosts are running 4.2 BSD
> Networking software.


			      Net B
	----------------------------------------------------
				|
			   -----------
			   |  local  |
			   | gateway |
			   |   host  |
			   -----------
				|
	----------------------------------------------------
			      Net A		|
					   -----------
					   |  remote |
					   | gateway |
					   |   host  |
					   -----------
	leased lines to offsite Nets   ---->  |   |



> I've replaced the 'local gateway host' with an ethernet bridge.

			      Net B
	----------------------------------------------------
				|
			   -----------
			   | ethernet|
			   |  bridge |
			   -----------
				|
	----------------------------------------------------
			      Net A		|
					   -----------
					   |  remote |
					   | gateway |
					   |   host  |
					   -----------
	leased lines to offsite Nets   ---->  |   |
	
> I then added routing information to allow hosts on Nets A and B to talk to
> each other through the bridge.
> 
> 		On Net B hosts:
> 			/etc/route add NetA NetB 0
> 
> 		On Net A hosts:
> 			/etc/route add NetB NetA 0
> 
> At this point, telnet, ftp, etc all work between hosts on Nets A and B.
> 
> The problem is that I can't get to any hosts on the offsite networks
> from Net B hosts. Under the original setup, I assigned the 'default'
> route to the 'remote' gateway host as follows:
> 
> 		/etc/route add default rgateway 1
> 
> With the new setup, this fails on all the Net B hosts, even though
> I have a valid route to Net A. The error message returned is
> 'Network Unreachable'. This is clearly bogus, since I can rlogin,
> ftp, etc to all the Net A hosts.

The solution is not in manuals, but is rather simple :
 you give a fake internet address in NetB to rgateway,
 put the route via this address and
 publish an ARP entry with the Ethernet address of rgateway and
 its IP address in NetB.

          /etc/route add default rgateway-B 1
          /etc/arp -s rgateway-B rgateway-ether pub

 The last command is not in regular BSD 4.2 networking, but you need only
one machine with this capability. It works because the network software
need only the ethernet address of next hop when the route is a route
through a gateway (its metric is > 0). But all the gateways must have
'interface' routes (with metric 0) from the local host to them, if not
you get an 'Network Unreachable' error when you try to add a route
through such a gateway.

Francis.Dupont@inria.fr