System Administration Guide: IP Services

ProcedureHow to Configure an IPv4 Router

The following instructions assume that you are configuring interfaces for the router after installation.

Before You Begin

After the router is physically installed on the network, configure the router to operate in local files mode, as described in How to Configure a Host for Local Files Mode. This configuration ensures that routers boot if the network configuration server is down.

  1. On the system to be configured as a router, assume the Primary Administrator role or become superuser.

    The Primary Administrator role includes the Primary Administrator profile. To create the role and assign the role to a user, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.

  2. use the dladm show-link command to determine which interfaces are physically installed on the router.


    # dladm show-link
    

    The following example output from dladm show-link indicates that a qfe NIC with four interfaces and two bge interfaces are physically available on the system.


    THIS IS CHANGED SECTION 
    LINK     CLASS     MTU      STATE     OVER
    qfe0     phys      1500     up        --
    qfe1     phys      1500     up        --
    qfe2     phys      1500     up        --
    qfe3     phys      1500     up        --
    bge0     phys      1500     up        --
    bge1     phys      1500     up        --
  3. Review which interfaces on the router were configured and plumbed during installation.


    # ifconfig -a
    

    The following example output from ifconfig -a shows that the interface qfe0 was configured during installation. This interface is on the 172.16.0.0 network. The remaining interfaces on the qfe NIC, qfe1 - qfe3, and the bge interfaces have not been configured.


    lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
            inet 172.16.26.232 netmask ffff0000 broadcast 172.16.26.255
            ether 0:3:ba:11:b1:15 
             
  4. Configure and plumb another interface.


    # ifconfig interface plumb up
    

    For example, for qfe1, you would type:


    # ifconfig qfe1 plumb up
    

    Note –

    Interfaces that are explicitly configured with the ifconfig command do not persist across reboots.


  5. Assign an IPv4 address and a netmask to the interface.


    Caution – Caution –

    You can configure an IPv4 routers to receive its IP address through DHCP, but this is recommended only for very experienced DHCP system administrators.



    # ifconfig interface IPv4-address netmask+netmask
    

    For example, to assign the IP address 192.168.84.3 to qfe1, do either of the following:

    • Using traditional IPv4 notation, type the following:


      # ifconfig qfe1 192.168.84.3 netmask + 255.255.255.0
      
    • Using CIDR notation, type the following:


      # ifconfig qfe1 192.168.84.3/24
      

      The prefix /24 automatically assigns the 255.255.255.0 netmask to qfe1. For a table of CIDR prefixes and their dotted-decimal netmask equivalents, refer to Figure 2–2.

  6. (Optional) To ensure that the interface configuration persists across reboots, create an /etc/hostname.interface file for each additional physical interface.

    For example, you would create the /etc/hostname.qfe1 and /etc/hostname.qfe2 files. Then you would type the host name timbuktu in /etc/hostname.qfe1 file and host name timbuktu-201 in /etc/hostname.qfe1. For more information about configuring single interfaces, refer to How to Configure an IP Interface After System Installation in System Administration Guide: Network Interfaces and Network Virtualization.

    Be sure to do a configuration reboot after creating this file:


    # reboot -- -r
    
  7. Add the host name and IP address of each interface to the /etc/inet/hosts file.

    For example:


    172.16.26.232      deadsea        #interface for network 172.16.0.0
    192.168.200.20     timbuktu       #interface for network 192.168.200
    192.168.201.20     timbuktu-201   #interface for network 192.168.201
    192.168.200.9      gobi
    192.168.200.10     mojave
    192.168.200.110    saltlake
    192.168.200.12     chilean

    The interfaces timbuktu and timbuktu-201 are on the same system. Notice that the network address for timbuktu-201 is different from the network interface for timbuktu. The difference exists because the physical network media for network 192.168.201 is connected to the timbuktu-201 network interface while the media for network 192.168.200 is connected to the timbuktu interface.

  8. If the router is connected to any subnetted network, add the network number and the netmask to the /etc/inet/netmasks file.

    • For traditional IPv4 address notation, such as 192.168.83.0, you would type:


      192.168.83.0    255.255.255.0
    • For CIDR addresses, use the dotted-decimal version of the prefix in the entry in the /etc/inet/netmask file. Network prefixes and their dotted-decimal equivalents can be found in Figure 2–2. For example, you would use the following entry in /etc/netmasks to express the CIDR network prefix 192.168.3.0/22:


      192.168.3.0 255.255.252.0
  9. Enable IPv4 packet forwarding on the router.

    Use either of the following commands to enable packet forwarding:

    • Use the routeadm command, as follows:


      # routeadm -e ipv4-forwarding -u
      
    • Use the following service management facility (SMF) command:


      # svcadm enable ipv4-forwarding
      

    At this point, the router can forward packets beyond the local network. The router also supports static routing, a process where you can manually add routes to the routing table. If you plan to use static routing on this system, then router configuration is complete. However, you need to maintain routes in the system routing table. For information on adding routes, see Configuring Routes and the route(1M) man page.

  10. (Optional) Start a routing protocol.

    The routing daemon /usr/sbin/in.routed automatically updates the routing table, a process that is known as dynamic routing. Turn on the default IPv4 routing protocols in either of the following ways:

    • Use the routeadm command, as follows:


      # routeadm -e ipv4-routing -u
      
    • Use the following SMF command to start a routing protocol such as RIP.


      # svcadm enable route:default
      

      The SMF FMRI associated with the in.routed daemon is svc:/network/routing/route.

    For information about the routeadm command, see the routeadm(1M) man page.


Example 5–4 Configuring the Default Router for a Network

This example shows how to upgrade a system with more than one interface to become a default router. The goal is to make Router 2, which is shown in Figure 5–3, the default router for network 172.20.1.0. Router 2 contains two wired network connections, one connection to network 172.20.1.0 and one to network 10.0.5.0. The example assumes that the router operates in local files mode, as described in How to Configure a Host for Local Files Mode.

After becoming superuser or assuming an equivalent role, you would determine out the status of the system's interfaces.


# dladm show-link
LINK     CLASS     MTU     STATE     OVER
ce0      phys      1500    up        --
bge0     phys      1500    up        --
bge1     phys      1500    up        --
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.20.1.10 netmask ffff0000 broadcast 172.20.10.100
        ether 8:0:20:c1:1b:c6 

The output of dladm show-link indicates that three links are available on the system. Only the ce0 interface has been plumbed. You would begin default router configuration by physically connecting the bge0 interface to the 10.0.5.0 network. Then, you would plumb the interface and make it persist across reboots.


# ifconfig bge0 plumb up
# ifconfig bge0 10.0.5.10
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.20.1.10 netmask ffff0000 broadcast 172.255.255.255
        ether 8:0:20:c1:1b:c6 
bge0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.5.10 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:e5:95:c4
 # vi /etc/hostname.bge0
10.0.5.10
255.0.0.0

Reboot the system, using the reconfiguration boot command:


# reboot -- -r

Continue by configuring the following network databases with information about the newly plumbed interface and the network to which it is connected:


# vi /etc/inet/hosts
127.0.0.1       localhost
172.20.1.10        router2        #interface for network 172.20.1
10.0.5.10          router2-out    #interface for network 10.0.5
# vi /etc/inet/netmasks
172.20.1.0    255.255.0.0
10.0.5.0      255.0.0.0

Finally, use SMF to enable packet forwarding and then enable the in.routed routing daemon.


# svcadm enable ipv4-forwarding
# svcadm enable route:default

Now IPv4 packet forwarding and dynamic routing through RIP are enabled on Router 2. However, the default router configuration for network 172.20.1.0 is not yet complete. You would need to do the following: