Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 May 1995 10:30:45 -0400 (EDT)
From:      "Michael C. Newell" <mnewell@lupine.nsi.nasa.gov>
To:        questions@FreeBSD.org
Cc:        Chris Shenton <cshenton@wirehead.hq.nasa.gov>
Subject:   PPP routing question
Message-ID:  <Pine.SUN.3.91.950510093327.6077C-100000@lupine.nsi.nasa.gov>

next in thread | raw e-mail | index | archive | help
[I appologize for this rather long message, but I've been beating my head 
against the wall for some time on this problem and felt that avoid 
suggestions that duplicate what I've already done I would list out each 
step I took. :{)]

Hi -

I'm trying to configure PPP to correctly route a couple of subnets 
through a FreeBSD box.  Basically the network looks something like this:

     +------+------+  198.116.75.32     +------+------+   198.116.75.0
            |                                  |
      +----le0----+                      +----ed0----+
      |  Box A    |                      |  Box B    |
      +----ppp----+                      +----ppp----+
            |                                  |
            =                                  =
            |                                  |
            +-----------+     +----------------+
                        |     |
                   +---pppa--pppb--+
                   |  Router A     |
                   +------ed0------+
                           |          
            +-----+--------+---------------+    198.116.2
                  |
             +----+-----+
             | Router B |
             +-------+--+
                     |
                     |
                     V

Basically what I have is two boxes, Box A (SunOS 4.1.3) and Box B 
(FreeBSD 1.1.5.1) connected to Router A (FreeBSD 2.0 -current supped 
5/9/95) which is connected to an Ethernet which connects to Router B 
(Proteon DNX) which connects to the Internet.  There are two Class C 
network numbers in use: 198.116.2 is the office network, and I also have 
198.116.75 available for the remote nets.  What we're doing is subnetting 
the 198.116.75 network and using it for the remote networks so that we 
don't have to mess with the main office network.

Initially I configured this as I would if I was using dedicated routers:

                            Address       Netmask         Peer

  Box A le0		198.116.75.33	0xfffffff0	n/a
  Box A ppp		198.116.75.50	0xfffffff0	198.116.75.49
  Box B ed0		198.116.75.1	0xfffffff0	n/a
  Box B ppp		198.116.75.18	0xfffffff0	198.116.75.17
  Router A pppa		198.116.75.49	0xfffffff0	198.116.75.50
  Router A pppb		198.116.75.17	0xfffffff0	198.116.75.18
  Router A ed0		198.116.2.4	0xffffff00	n/a
  Router B enet		198.116.2.1	0xffffff00

That is, I subnetted the 198.116.75 network using the upper four bits for 
the network number and the lower four bits for the node number.  I 
allocated one network number for each Box A Ether, Box A ppp, Box B 
Ether, and Box B ppp.  I realize PPP links can share addresses with the 
Ethernets, but in this case I chose to give them their own so that I 
could get SNMP statistics on each interface individually.  Also 
technically RIP routing doesn't allow you to split members of a subnet 
across another net, so I wanted all the PPP interfaces in the 198.116.75 
network block.

(I had a similar situation earlier with a Sun workstation (SunOS 4.1.3) 
acting as Router A using SLIP encapsulation with only Box B present.  
That worked fine, but I wanted to allow other nets to exist, I wanted to 
switch to PPP, and the Sun serial ports max out at 38.4Kbs which is Not 
Good.)

The Router B box is listening for announced routes to the 198.116.75 
network; that's how it knows where that net is (that is, the only net 
"hard coded" in the box is 198.116.2 to which it is directly connected.)  
In order to get the routes announced out, I fired up "routed -s -g" on 
all the boxes and expected networks in the 198.116.75 group would thus be 
announced.

What actually happens is Router A *ONLY* announces HOST routes for the
198.116.75.{17,18,49,50} hosts.  It doesn't announce any of the 198.116.75
networks.  Since Router B only listens to network routes (it wants a 
route to 198.116.75.0) I can get to all the hosts on the 198.116.2.0 net 
but not beyond.  None of the hosts on the 198.116.75.0 net (Box B's 
Ethernet) can get to anything outside that net.

To simplify things the person running Box A disconnected and has not
reconnected, so essentially I was able to concentrate on getting things
working for Box B only.  So far, things I've tried: 

  a Add the 198.116.75.0 network to the /etc/gateways file with subnet
    mask 255.255.255.240 marked "active".  No effect.

  b Add a static route in Router A's tables for the 198.116.75 network.
    No effect.

  c Switch from routed to gated (running RIP).  No effect.

  d Add a static clause to the gated configuration.  No effect.

  e Change the subnet mask on Box B's PPP link (both ends) to 255.255.0.255.
    That gets a route announced for Box B but does not generate the correct
    routing tables within Router A so all 198.116.75 networks end up going
    to Box B instead of being split between Box B and Box A.

  f Change the point-to-point link between Box B and Router A addressing
    to  Box B ppp = (198.116.75.1->198.116.2.4 0xfffffff0) and
    Router A ppp = (198.116.2.4->198.116.75.1 0xfffffff0).  No effect.
    When I try to ping 198.116.2.1 (Router B) the RD and TD lights go on
    almost solidly on the modem and no responses are seen.

  g Change the above to Box B ppp = (198.116.2.80->198.116.2.4 0xffffff00)
    and Router A ppp = (198.116.2.4->198.116.2.80 0xffffff00) and add a
    proxy ARP for 198.116.2.80 to Router A.  Box B now can reach the world,
    but nothing behind it (i.e. the 198.116.75 net) can.


I continually monitored the .2 network using tcpdump looking for route 
information packets during all of these tests.  The *only* time a route 
for the 198.116.75 network was announced was case "e", which allowed 
nodes on the 198.116.75.0 subnet to be reached but didn't allow nodes on 
the 198.116.75.32 subnet access.  In cases where Router A had a specific 
PPP interface with an address in the 198.116.75.* range a route for that 
particular host (not net) WAS generated (these routes appeared in the 
tables on the other hosts connected to 198.116.2 that run routed.)

At the moment the configuration for Router A is:

  mnewell@sisyphus: netstat -nr
  Routing tables

  Internet:
  Destination      Gateway            Flags     Refs     Use     Netif Expire
  default          198.116.2.1        UGSc        1      220       ed0
  127              127.0.0.1          URc         0        0       lo0
  127.0.0.1        127.0.0.1          UH          0        2       lo0
  198.116.2        link#1             UC          0        0 
  198.116.2.1      0:0:93:48:8:f4     UHLW        1      222       ed0    483
  198.116.2.4      0:0:c0:65:98:70    UHLW        1        8       lo0
  198.116.2.100    8:0:20:1b:c1:29    UHLW        1      141       ed0   1177
  198.116.2.108    8:0:20:19:cc:3d    UHLW        0        5       ed0   1177
  198.116.75       198.116.75.17      UGc         0        0      ppp0
  198.116.75.17    198.116.2.4        UH          2      728      ppp0
  224              link#1             UCS         0        0 
  224.0.0.9        127.0.0.1          UH          0        1       lo0
  mnewell@sisyphus: ifconfig -a
  ed0: 
  flags=8963<UP,BROADCAST,NOTRAILERS,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
          inet 198.116.2.4 netmask 0xffffff00 broadcast 198.116.2.255
          ether 00:00:c0:65:98:70 
  lp0: flags=810<POINTOPOINT,SIMPLEX> mtu 1500
  lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 16384
          inet 127.0.0.1 netmask 0xff000000 
  ppp0: flags=51<UP,POINTOPOINT,RUNNING> mtu 1500
          inet 198.116.2.4 --> 198.116.75.17 netmask 0xfffffff0 
  ppp1: flags=10<POINTOPOINT> mtu 1500
  sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
  sl1: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
  tun0: flags=10<POINTOPOINT> mtu 1500
  tun1: flags=10<POINTOPOINT> mtu 1500
  mnewell@sisyphus: 

Note that there IS a route 198.116.75 in the routing table, and it IS out 
interface ppp0; however even though gated is running this route is not 
being announced to the 198.116.2 network by Router A.

Can someone out there who is (hopefully) running a similar configuration 
share how they got it to work???  :{)

Thanks,

Mike



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.950510093327.6077C-100000>