FreeBSD Static Routing Configuration

Posted on in Categories , , last updated February 3, 2008

Q. How do I configure FreeBSD for static routing? I’d like to set default route to 60.1.2.3 and static route for network 192.168.1.0/24 using 192.168.1.254 router. How do make configuration persistence?

A. You can use FreeBSD route command to setup a default route / gateway. You need to edit /etc/rc.conf configuration file to setup static and default routing.

FreeBSD Static Routing Configuration

Open /etc/rc.conf file using a text editor:
# vi /etc/rc.conf
Set default router IP to 60.1.2.3:
defaultrouter="60.1.2.3"
Create static routing for lan network 192.168.1.0/24, append following two lines:
static_routes="lan"
route_lan="-net 192.168.1.0/24 192.168.1.254"

Save and close the file. Where,

  • static_routes=”lan” : Set to the list of static routes that are to be addedat system boot time.
  • route_lan=”-net 192.168.1.0/24 192.168.1.254″ : Specify roting network and router IP address
  • defaultrouter=”60.1.2.3″ : Set a default route to this host name or IP address. It is recommended that you use an IP address.

Restart FreeBSD networking service to update routing information:
# /etc/rc.d/netif restart
To view routing table, enter:
# netstat -r
# netstat -rn

How do I add multiple static routes?

For each whitespace (blank space) separated element in the value, a route_ variable is assumed to exist whose contents will later be
passed to a route add operation at boot time. For example, setup static routing as follows:

network router IP
lan (192.168.1.0/24) 192.168.1.254
mumoffice (10.0.0.0/8) 10.30.110.5
foo 169.254.1.1 via loopback (lo0)

Add following to /etc/rc.conf
static_routes="lan mumoffice foo"
route_lan="-net 192.168.1.0/24 192.168.1.254"
route_mumoffice="-net 10.0.0.0/8 10.30.110.5"
route_foo="-host 169.254.1.1 -iface lo0"

FreeBSD Multicast Roting Configuration

Multicast routing requires that support be compiled into the kernel with the following option:
options MROUTING
In addition, the multicast routing daemon, mrouted must be installed and configured to set up tunnels and DVMRP via /etc/mrouted.conf. See mrouted page at offical FreeBSD project page for more information.

Further readings:

  • See man pages – mrouted, router and rc.conf

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

14 comment

  1. Note: Using “/etc/rc.d/netif restart” over a remote connection can be a bad idea. It’ll tear down all of your interfaces so you will lose your connection. Things such as ppp may get confused, leaving you unable to reconnect.

  2. I have set up the BSD routing so many time it is a joke but when I ping google.le it still tells me:
    ping: cannot resolve google.ie: Host name lookup failure
    So can some one please show me what to do?
    Thanks in advance, SEanS

  3. may be you not input dns corectly
    please input primary &secondary DNS

    #primary DNS
    nameserver=xxx.xxx.xxx.xxx
    #secondary DNS
    nameserver=xxx.xxx.xxx.xxx

    Good luck

  4. Him

    I have two nic card.
    de0 public ip address
    r10 private ip address
    when I enter de0 first i did the host and then gateway and the ip4 public aand subnett
    BUT when I try to enter the private ip on r10 I see the previous confguration I did with de0
    Please advise how to enter r10 the private ip address. Please show me an example how to make it work?

    Thanks, B

  5. I have two nic card.
    de0 public ip address
    r10 private ip address
    when I enter de0 first i did the host and then gateway and the ip4 public aand subnett
    BUT when I try to enter the private ip on r10 I see the previous confguration I did with de0
    Please advise how to enter r10 the private ip address. Please show me an example how to make it work?

    Thanks, B

  6. I have Modem Speedtoutch it is working Put Without Password
    Imean The wirelees link Is open I need to look it .

  7. You should also apply default to your list of static routes.

    static_routes=”lan default”
    route_lan=”-net 192.168.1.0/24 192.168.4.1″

    defaultrouter=”aaa.bbb.215.185″

  8. Hi, everyone.

    can i ask some technical question, i have a setup lucent IP telephony i want to connect to the abudhabi using ip telephony also it is posible use freebsd as my firewall?

    Thank you.

  9. I’m running FreeBSD 8.2 and after adding the routes to rc.conf I activated them by running:

    # /etc/rc.d/routing static
    
    1. Danial

      Tons of thx man, you’re the man!!! =D
      I spent hours trying to solve this problem and this command worked like a charm to me =D

      now freebsd can resolve names =D

      thx thx thx

Comments are closed.