docs/63310: Configuring Static Routes example for Handbook

hoanga at mac.com hoanga at mac.com
Tue Feb 24 16:30:18 UTC 2004


>Number:         63310
>Category:       docs
>Synopsis:       Configuring Static Routes example for Handbook
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Feb 24 08:30:17 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Al Hoang
>Release:        FreeBSD 5.2.1-RC2 i386
>Organization:
Doctor M
>Environment:
System: FreeBSD samsara 5.2.1-RC2 FreeBSD 5.2.1-RC2 #1: Wed Feb 18 23:23:59 JST 2004 root at samsara:/usr/obj/usr/src/sys/SAMSARA i386


>Description:
	How to configure static routes in FreeBSD for the Handbook
>How-To-Repeat:
>Fix:
Setting up static routes

Setting up static routes in FreeBSD

Manual configuration

Let's assume you have a network as follows:

    INTERNET
      | (10.0.0.1/24) Default Router to Internet
      |
      |Interface xl0
      |10.0.0.10/24
   +------+
   |      | Router A
   |      | (FreeBSD gateway)
   +------+
      | Interface xl1
      | 192.168.1.1/24
      |                  
  +--------------------------------+
   Internal Net 1      | 192.168.1.2/24
                       |
                   +------+
                   |      | Router B  
                   |      |
                   +------+
                       | 192.168.2.1/24      
                       |
                     Internal Net 2

In this scenario, Router A is our FreeBSD machine that
is acting as a router to the rest of the Internet.  It
has a default route set to 10.0.0.1 which allows it to
connect with the outside world.  We will assume that
Router B is already configured properly and knows how
to get wherever it needs to go.  (This is simple in this
picture.  Just add a default route on B using 192.168.1.1
as the gateway).

If we look at the routing table for A we would
see something like the following:

% netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.0.0.1           UGS         0    49378    xl0
127.0.0.1          127.0.0.1          UH          0        6    lo0
10.0.0/24          link#1             UC          0        0    xl0
192.168.1/24       link#2             UC          0        0    xl1

With the current routing table.   A will not be able to reach our
Internal Net 2.  It does not have a route for 192.168.2.0/24.  One
way to alleviate this is to manually add the route add.   The
following command would add the Internal Net 2 network to
A's routing table using 192.168.1.2 as the next hop.
% route add network 192.168.2.0/24 192.168.1.2

Now A can reach any hosts on the 192.168.2.0/24 network.

Persistent Configuration

The above example is great for configuring a static route on
a running system.  However, one problem is that the routing
information will not persist if you reboot your FreeBSD machine.
The way to handle adding a static route is to put it in your
/etc/rc.conf file.

Example configuration:
# Add Internal Net 2 as a static route
static_routes="internalnet2"
route_internalnet2="network 192.168.2.0/24 192.168.1.2"

The static_routes configuration variable is a list of strings 
seperated by a space.  The string references to another
configuration variable that will be named route_.......
In our above example we only have one string in static_routes.
This string is internalnet2.   We then need a configuration
variable called route_internalnet2 where we add all of
the configuration parameters we would give to the route command.
For our example above we would have used the command
% route add network 192.168.2.0/24 192.168.1.2
So we need "network 192.168.2.0/24 192.168.1.2".

We could have more than one string in static_routes.  This
would allow us to create multiple static routes.   The
following snippet shows an example of adding
static routes for the 192.168.0.0/24 and 192.168.1.0/24 
on an imaginary router.
the following:

static_routes="net1 net2"
route_net1="network 192.168.0.0/24 192.168.0.1"
route_net2="network 192.168.1.0/24 192.168.1.1"





>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-doc mailing list