Cisco Subnet An independent Cisco community View more

Dual-Protocol Routing with Raspberry Pi

Using a Raspberry Pi as a low-cost dual-protocol router

Network Engineers are always looking for new ways to gain some low-cost network testing capabilities.  Few companies sufficiently fund networking labs for their networking teams to learn on prior to deployment.  Many have use Cisco IOS hypervisors on laptops using the Graphical Network Simulator (GNS3), Dynagen and Dynamips that allow experimentation and learning.  While you wait for Cisco’s Virtual Internet Routing Lab (VIRL) to be released you can explore using a Raspberry Pi as a low-cost router for testing.

Getting the Raspberry Pi Going:

A few weeks ago I wrote about how you could create a low-cost remote network monitoring node using a Raspberry Pi.  This blog contains the information required to get your Raspberry Pi ready and loaded with the Raspbian OS and working on a dual-protocol network.  The article also talked about how you could place the Raspberry Pi on the border between two networks and set it up as a router.  To do this requires several USB Ethernet interfaces in addition to the on-board Ethernet interface.  This would likely mean purchasing a powered USB hub to provide power to those USB devices.  This article dives in deeper into how to setup the Raspberry Pi as a dual-protocol router using OSPF.

Routing Configuration Steps:

The first thing that you need to do is load the router software onto the Raspberry Pi.  The idea behind the Raspberry Pi is that is comes with a stripped down OS and then you add the specific functions you need.  Since not every Raspberry Pi needs to behave like a router, the routing software is not pre-loaded.  There are many open-source routing software packages available (Bird Internet routing daemon (Bird), eXtensible Open Router Platform (XORP), among others), However, for our purposes we have chosen Quagga.

The commands that you will need to execute to install the needed routing packages are as follows.

sudo apt-get install quagga
sudo apt-get install radvd

We may also need to install Routing Advertisement Daemon (RADVD) if we want to send specific ICMPv6 Router Advertisement (RA) packets or use RDNSS, MIPv6, NEMO, or 6to4 tunneling.

Once this software is installed (with their dependencies) it is time to start to configure the Raspberry Pi as a router.  To more easily understand the configuration, here is a diagram of the network topology.

Dual-Protocol Routing Raspberry Pi

To configure the IPv4 and IPv6 addresses on the various interfaces we need to edit the /etc/network/interfaces configuration file using your favorite text editor.  Below is an example of what that file looks like.

pi@tuesday:~$ more /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.101.22
netmask 255.255.255.0
gateway 192.168.101.1
iface eth0 inet6 static
address 2001:db8:101::22
netmask 64
gateway fe80::5246:5dff:fe6c:1492
auto eth1
iface eth1 inet static
address 192.168.3.22
netmask 255.255.255.0
gateway 192.168.3.1
iface eth1 inet6 static
address 2001:db8:3::22
netmask 64
gateway 2001:db8:3::1
auto eth2
iface eth2 inet static
address 192.168.233.22
netmask 255.255.255.0
gateway 192.168.233.1
iface eth1 inet6 static
address 2001:db8:233::22
netmask 64
gateway 2001:db8:233::1

Once the addresses are statically assigned to the interface, we can reset the networking to apply this new configuration file using the following command.

sudo /etc/init.d/networking restart

Configuring OSPFv2 and OSPFv3:

Most all modern routers now support dual-protocol routing protocols.  In a previous post I wrote about how you can configure a Cisco IOS router for use with OSPFv3.  It is very easy to establish interoperability between a Raspberry Pi running Quagga and a Cisco IOS router.

The first thing we need to do is enable the Quagga daemons file.

sudo vi /etc/quagga/daemons

We want this file to have the following configuration lines set to “yes”.

zebra=yes
ospfd=yes
ospf6d=yes

Next we need to configure the basic Zebra (the routing package that Quagga is based on) configuration file. 

sudo vi /etc/quagga/zebra.conf

We will modify this file to look like the following. This is the config files for the router named “Tuesday”.

hostname R22zebra
!
password zebra
enable password password
!
interface eth0
 link-detect
 ip address 192.168.101.22/24
 ipv6 address
2001:db8:101::22/64
 ipv6 nd suppress-ra
!
interface eth1
 link-detect
 ip address
192.168.3.22/24
 ipv6 address
2001:db8:3::22/64
 no ipv6 nd
suppress-ra
!
interface eth2
 link-detect
 ip address
192.168.233.22/24
 ipv6 address 2001:db8:233::22/64
 no ipv6 nd
suppress-ra
!
interface lo
 link-detect
 ip address
10.10.10.22/32
 ipv6 address
2001:db8:22:22::22/64
 no ipv6 nd
suppress-ra
!
no log trap
log stdout
!
line vty
no login

Now we are ready to configure the OSPFv2 routing.  We do this by editing the /etc/quagga/ospfd.conf file. We can make the contents of the file look like the following.

hostname R22ospfd
!
password zebra
enable password password
!
interface eth0
!
interface eth1
!
interface eth2
!
interface lo
!
router ospf
network 192.168.101.0/24 area 0.0.0.0
network 192.168.3.0/24 area 0.0.0.0
network 192.168.233.0/24 area 0.0.0.0
network 10.10.10.22/32 area 0.0.0.0
!
line vty
no login

Finally, we are ready to configure OSPFv3 for IPv6 routing by editing the following Quagga file.

sudo vi /etc/quagga/ospf6d.conf

Here is the contents of that configuration file for this lab topology.

hostname R22ospf6
password zebra
enable password password
log stdout
service advanced-vty
!
debug ospf6 neighbor state
!
interface eth0
 ipv6 ospf6 cost 1
 ipv6 ospf6
hello-interval 10
 ipv6 ospf6
dead-interval 40
 ipv6 ospf6
retransmit-interval 5
 ipv6 ospf6 priority 0
 ipv6 ospf6
transmit-delay 1
 ipv6 ospf6
instance-id 0
!
interface eth1
 ipv6 ospf6 cost 1
 ipv6 ospf6
hello-interval 10
 ipv6 ospf6
dead-interval 40
 ipv6 ospf6
retransmit-interval 5
 ipv6 ospf6 priority 0
 ipv6 ospf6
transmit-delay 1
 ipv6 ospf6
instance-id 0
!
interface eth2
 ipv6 ospf6 cost 1
 ipv6 ospf6
hello-interval 10
 ipv6 ospf6
dead-interval 40
 ipv6 ospf6
retransmit-interval 5
 ipv6 ospf6 priority 0
 ipv6 ospf6
transmit-delay 1
 ipv6 ospf6
instance-id 0
!
interface lo
 ipv6 ospf6 cost 1
 ipv6 ospf6
hello-interval 10
 ipv6 ospf6
dead-interval 40
 ipv6 ospf6
retransmit-interval 5
 ipv6 ospf6 priority 0
 ipv6 ospf6 transmit-delay
1
 ipv6 ospf6
instance-id 0
!
router ospf6
 router-id 10.10.10.22
 interface eth0 area
0.0.0.0
 interface eth1 area
0.0.0.0
 interface eth2 area
0.0.0.0
 interface lo area
0.0.0.0
 area 0.0.0.0 range
2001:db8:3::/64
 area 0.0.0.0 range
2001:db8:233::/64
 area 0.0.0.0 range
2001:db8:22:22::/64
 area 0.0.0.0 range 2001:db8:101::/64
!
line vty
 exec-timeout 0 0

The last part of the configuration is checking that we have IP forwarding turned on.  Following are the command that we can use to set IP forwarding on and check that setting.

pi@tuesday:~$ sudo echo "net.ipv4.ip_forward = 1"
>> /etc/sysctl.conf
pi@tuesday:~$ sudo echo "net.ipv6.conf.all.forwarding =
1" >> /etc/sysctl.conf
pi@tuesday:~$ grep forward /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for
IPv4
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for
IPv6
net.ipv6.conf.all.forwarding=1

Now we just need to start the Quagga process with the following command.

pi@tuesday:~$ sudo /etc/init.d/quagga start

Cisco Router Configuration:

For reference, following is the configuration of the Cisco IOS router A in our topology.

hostname RTRA
interface GigabitEthernet0/0
 ip address
192.168.3.1 255.255.255.0
 ip ospf network
broadcast
 ip ospf priority 100
 ipv6 address
2001:DB8:3::1/64
 ipv6 ospf 100 area
0.0.0.0
 ipv6 ospf network
broadcast
 ipv6 ospf priority
100
!
router ospf 100
 router-id 10.1.1.1
 area 0.0.0.0 range
192.168.3.0 255.255.255.0
 area 0.0.0.11 range
10.1.1.1 255.255.255.255
 area 0.0.0.11 range
192.168.11.0 255.255.255.0
 area 0.0.0.11 range
192.168.100.0 255.255.255.0
 area 0.0.0.12 range
192.168.12.0 255.255.255.0
 passive-interface
default
 no passive-interface
GigabitEthernet0/0
 no passive-interface
Vlan11
 network 10.1.1.1
0.0.0.0 area 0.0.0.11
 network 192.168.3.0
0.0.0.255 area 0.0.0.0
 network 192.168.11.0
0.0.0.255 area 0.0.0.11
 network 192.168.12.0
0.0.0.255 area 0.0.0.12
 network 192.168.100.0
0.0.0.255 area 0.0.0.11
 default-information
originate metric-type 1
!
ipv6 router ospf 100
 router-id 10.1.1.1
 log-adjacency-changes
detail
 area 0.0.0.0 range
2001:DB8:3::/64
 area 0.0.0.0 range
2001:DB8:1111::1111/128
 area 0.0.0.11 range
2001:DB8:11::/64
 area 0.0.0.12 range
2001:DB8:12::/64
 default-information
originate metric 600
 passive-interface
default
 no passive-interface
GigabitEthernet0/0

If you are interfacing your Raspberry Pi with a Cisco router and trying to configure OSPFv3 IPsec Authentication Header (AH) authentication, then you should be aware of some limitations here.  You can also run into OSPFv3 authentication limitations on Cisco 6500 switches.

Verifying Operation:

Now that Quagga is running OSPFv2 and OSPFv3 we need to verify the configuration.  The way this is done with Quagga is to use telnet to connect to the console port of the router.  The various Quagga routing processes have different TCP port numbers.

zebra - 2601
ripd - 2602
ripng - 2603
ospfd - 2604
bgpd - 2605
ospf6d - 2606

Following is an example of how we can connect to the console port, log into the routing process, and use the Cisco-Like-Interface (CLI) to show the status of the routing processes.

pi@tuesday:/etc/quagga$ telnet localhost 2604
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Hello, this is Quagga (version 0.99.21).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
R22ospfd> show ip ospf neighbor
    Neighbor ID Pri
State           Dead Time Address         Interface            RXmtL RqstL DBsmL
10.10.10.21       1
Full/Backup       33.010s
192.168.101.21  eth0:192.168.101.22      0    
0     0
10.1.1.1        100
Full/DR           34.506s 192.168.3.1     eth1:192.168.3.24        0    
0     0
10.8.8.8          1
2-Way/DROther     35.968s
192.168.3.2     eth1:192.168.3.24        0    
0     0
192.168.28.28     1
Full/Backup       37.845s
192.168.3.3     eth1:192.168.3.24        0    
0     0
10.10.10.21       1
Full/Backup       34.182s
192.168.233.21  eth2:192.168.233.24      0    
0     0
R22ospfd> show ip ospf route
============ OSPF network routing table ============
N IA 10.1.1.1/32          
[11] area: 0.0.0.0
                          
via 192.168.3.1, eth1
N    10.8.8.8/32           [11] area: 0.0.0.0
                          
via 192.168.3.2, eth1
N   
10.10.10.21/32        [20] area:
0.0.0.0
                          
via 192.168.101.21, eth0
                          
via 192.168.233.21, eth2
N   
10.10.10.22/32        [10] area:
0.0.0.0
                          
directly attached to lo
N   
192.168.3.0/24        [10] area:
0.0.0.0
                          
directly attached to eth1
N   
192.168.4.0/24        [11] area:
0.0.0.0
                           via 192.168.3.2, eth1
N IA 192.168.11.0/24      
[11] area: 0.0.0.0
                          
via 192.168.3.1, eth1
N IA 192.168.12.0/24      
[20] area: 0.0.0.0
                          
via 192.168.3.3, eth1
N   
192.168.13.0/24       [11] area:
0.0.0.0
                          
via 192.168.3.2, eth1
N   
192.168.23.0/24       [11] area:
0.0.0.0
                          
via 192.168.3.2, eth1
N IA 192.168.28.28/32     
[11] area: 0.0.0.0
                          
via 192.168.3.3, eth1
N   
192.168.43.0/24       [11] area:
0.0.0.0
                          
via 192.168.3.2, eth1
N   
192.168.101.0/24      [10] area:
0.0.0.0
                          
directly attached to eth0
N   
192.168.233.0/24      [10] area:
0.0.0.0
                           directly attached to eth2
============ OSPF router routing table =============
R    10.1.1.1              [10] area: 0.0.0.0, ABR, ASBR
                          
via 192.168.3.1, eth1
R    10.8.8.8              [10] area: 0.0.0.0, ASBR
                           via 192.168.3.2, eth1
R   
192.168.28.28         [10] area:
0.0.0.0, ABR
                          
via 192.168.3.3, eth1
============ OSPF external routing table ===========
N E1 0.0.0.0/0            
[11] tag: 100
                           via 192.168.3.1, eth1
N E1 192.168.5.0/24       
[11] tag: 65005
                          
via 192.168.3.2, eth1
N E1 192.168.6.0/24       
[11] tag: 65005
                          
via 192.168.3.2, eth1
N E1 192.168.55.0/24      
[11] tag: 65005
                          
via 192.168.3.2, eth1
N E1 192.168.64.0/24      
[11] tag: 65005
                          
via 192.168.3.2, eth1
N E1 192.168.66.0/24      
[11] tag: 65005
                          
via 192.168.3.2, eth1
R22ospfd> exit

Other useful OSPFv2 commands in Quagga are:

show running-config
show ip ospf interface
show ip ospf database
show ip ospf border-routers

Now we can connect to the OSPFv3 routing daemon (TCP port 2606) and view the configuration from that perspective.

pi@tuesday:/etc/quagga$ telnet localhost 2606
Trying ::1...
Connected to localhost.
Escape character is '^]'.
Hello, this is Quagga (version 0.99.21).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
User Access Verification
Password: 
R22ospf6> en
Password: 
R22ospf6# show ipv6 ospf neighbor
Neighbor ID    
Pri    DeadTime  State/IfState         Duration I/F[State]
10.10.10.21      
0    00:00:39 Twoway/DROther         10:01:04 eth0[DROther]
10.1.1.1       
100    00:00:32   Full/DR              00:02:44 eth1[DROther]
10.8.8.8         
1    00:00:30 Twoway/DROther         00:02:42 eth1[DROther]
192.168.28.28    
1    00:00:34   Full/BDR             00:02:39 eth1[DROther]
10.10.10.21      
0    00:00:39 Twoway/DROther         00:02:40 eth2[DROther]
R22ospf6# show ipv6 ospf route
*N E1 2001:db8::4/128                fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N E1 2001:db8::6/128                fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N IA 2001:db8:3::/64                ::                          eth1 00:03:10
*N IA 2001:db8:4::/64                fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N E1 2001:db8:5::/64                fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N E1 2001:db8:6::/64                fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N IE 2001:db8:11::/64      
        fe80::2e54:2dff:fe4f:56e0   eth1 00:03:10
*N IE 2001:db8:12::/64               fe80::2e54:2dff:fe4f:5380   eth1 00:03:10
*N IA 2001:db8:13::/64               fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N E1 2001:db8:22::/64               fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N IA 2001:db8:22:22::/64            ::1                            0 00:03:15
*N IA 2001:db8:23::/64               fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N IE 2001:db8:28:28::/64            fe80::2e54:2dff:fe4f:5380   eth1 00:03:10
*N IA 2001:db8:43::/64               fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N E1 2001:db8:55::/64               fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N E1 2001:db8:64::/64               fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N E1 2001:db8:66::/64               fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N IA 2001:db8:233::/64              ::1                            0 00:03:15
*N IA 2001:db8:1111::1111/128        fe80::2e54:2dff:fe4f:56e0   eth1 00:03:10
*N IE 2001:db8:2222::2222/128        fe80::2e54:2dff:fe4f:5380   eth1 00:03:10
*N IA 2001:db8:8888::8888/128        fe80::2e54:2dff:fe4f:5320   eth1 00:03:10
*N IA 2001:db8:101::/64            ::1                            0 00:03:15

Other useful OSPFv2 commands in Quagga are:

show running-config
show ipv6 ospf interface
show ipv6 ospf area
show ipv6 ospf linkstate
show ipv6 ospf area 0.0.0.0 spf tree
show ipv6 ospf border-routers
show ipv6 ospf database

Now that we have the Cisco router and the Raspberry Pi configured for dual-protocol routing, we need to verify that the control planes are interoperating from the router’s perspective.  We can now check the status of one of the Cisco IOS routers to see if OSPFv2 and OSPFv3 has established adjacency.

RTRA# show ip ospf neighbor
Neighbor ID    
Pri   State           Dead Time   Address         Interface
10.8.8.8         
1   FULL/BDR        00:00:31    192.168.3.2     Vlan3
10.10.10.21      
1   FULL/DROTHER    00:00:36   
192.168.3.21    Vlan3
10.10.10.22      
1   FULL/DROTHER    00:00:31   
192.168.3.22    Vlan3
RTRA# show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B -
BGP
       D - EIGRP, EX -
EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA
external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF
external type 1, E2 - OSPF external type 2
       i - IS-IS, su -
IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS
inter area, * - candidate default, U - per-user static route
       o - ODR, P -
periodic downloaded static route
Gateway of last resort is 192.168.101.1 to network 0.0.0.0
O E1 192.168.29.0/24 [110/21] via 192.168.3.2, 01:34:10,
Vlan3
C    192.168.11.0/24
is directly connected, Vlan11
     10.0.0.0/8 is
variably subnetted, 5 subnets, 2 masks
O       10.8.8.8/32
[110/2] via 192.168.3.2, 01:34:10, Vlan3
O E1    10.0.0.0/8
[110/21] via 192.168.3.2, 01:34:10, Vlan3
C       10.1.1.1/32 is
directly connected, Loopback0
O       10.10.10.22/32
[110/11] via 192.168.3.22, 00:05:58, Vlan3
O       10.10.10.21/32
[110/11] via 192.168.3.21, 00:05:58, Vlan3
O    192.168.233.0/24
[110/11] via 192.168.3.22, 00:05:58, Vlan3
                     
[110/11] via 192.168.3.21, 00:05:14, Vlan3
C    192.168.100.0/24
is directly connected, Dot11Radio0
C    192.168.3.0/24 is
directly connected, Vlan3
O    192.168.101.0/24
[110/11] via 192.168.3.22, 00:05:58, Vlan3
                     
[110/11] via 192.168.3.21, 00:05:14, Vlan3
S*   0.0.0.0/0 [254/0]
via 192.168.101.1
RTRA# show ip ospf route
            OSPF
Router with ID (10.1.1.1) (Process ID 100)
    Area
BACKBONE(0.0.0.0)
    Intra-area Route
List
*   192.168.3.0/24,
Intra, cost 1, area 0.0.0.0, Connected
      via 192.168.3.1,
Vlan3
*> 
192.168.233.0/24, Intra, cost 11, area 0.0.0.0
      via
192.168.3.21, Vlan3
      via 192.168.3.22,
Vlan3
*> 
192.168.101.0/24, Intra, cost 11, area 0.0.0.0
      via
192.168.3.21, Vlan3
      via
192.168.3.22, Vlan3
*>  10.8.8.8/32,
Intra, cost 2, area 0.0.0.0
      via 192.168.3.2,
Vlan3
*>  10.10.10.21/32,
Intra, cost 11, area 0.0.0.0
      via
192.168.3.21, Vlan3
*>  10.10.10.22/32,
Intra, cost 11, area 0.0.0.0
      via
192.168.3.22, Vlan3
    Intra-area Router
Path List
i 10.8.8.8 [1] via 192.168.3.2, Vlan3, ASBR, Area 0.0.0.0,
SPF 10
    Area 0.0.0.11
    Intra-area Route
List
*   192.168.11.0/24,
Intra, cost 1, area 0.0.0.11, Connected
      via
192.168.11.1, Vlan11
*   192.168.100.0/24,
Intra, cost 1, area 0.0.0.11, Connected
      via
192.168.100.1, Dot11Radio0
*   10.1.1.1/32,
Intra, cost 1, area 0.0.0.11, Connected
      via 10.1.1.1,
Loopback0
    External Route
List
*>  10.0.0.0/8,
Ext1, cost 21, tag 0
      via 192.168.3.2,
Vlan3
*> 
192.168.29.0/24, Ext1, cost 21, tag 0
      via 192.168.3.2,
Vlan3
RTRA# show ipv6 ospf neigh
Neighbor ID    
Pri   State           Dead Time   Interface ID    Interface
10.10.10.22      
0   FULL/DROTHER    00:00:39   
3               Vlan3
10.10.10.21      
0   FULL/DROTHER    00:00:34   
3               Vlan3
10.8.8.8         
1   FULL/BDR        00:00:36    14              Vlan3
RTRA# show ipv6 ospf 100 
 Routing Process
"ospfv3 100" with ID 10.1.1.1
 It is an area border
and autonomous system boundary router
 Originate Default
Route with metric 600
 SPF schedule delay 5
secs, Hold time between two SPFs 10 secs
 Minimum LSA interval
5 secs. Minimum LSA arrival 1 secs
 LSA group pacing
timer 240 secs
 Interface flood
pacing timer 15 msecs
 Retransmission pacing
timer 66 msecs
 Number of external
LSA 1. Checksum Sum 0x00AEDC
 Number of areas in
this router is 2. 2 normal 0 stub 0 nssa
 Reference bandwidth
unit is 100 mbps
    Area
BACKBONE(0.0.0.0)
        Number of
interfaces in this area is 2
        SPF algorithm
executed 8 times
        Area ranges
are
         
2001:DB8:3::/64 Active(1) Advertise 
         
2001:DB8:1111::1111/128 Active(0) Advertise 
        Number of LSA
15. Checksum Sum 0x08F2DA
        Number of
DCbitless LSA 4
        Number of
indication LSA 0
        Number of
DoNotAge LSA 0
        Flood list
length 0
    Area 0.0.0.11
        Number of
interfaces in this area is 1
        SPF algorithm
executed 4 times
        Area ranges
are
         
2001:DB8:11::/64 Active(1) Advertise 
        Number of LSA
12. Checksum Sum 0x05196D
        Number of
DCbitless LSA 1
        Number of
indication LSA 1
        Number of
DoNotAge LSA 0
        Flood list length 0
RTRA# show ipv6 route
IPv6 Routing Table - Default - 12 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user
Static route
       B - BGP, HA -
Home Agent, MR - Mobile Router, R - RIP
       D - EIGRP, EX -
EIGRP external
       O - OSPF Intra,
OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA
ext 1, ON2 - OSPF NSSA ext 2
C   2001:DB8:3::/64
[0/0]
     via Vlan3,
directly connected
L   2001:DB8:3::1/128
[0/0]
     via Vlan3,
receive
C   2001:DB8:11::/64
[0/0]
     via Vlan11,
directly connected
L   2001:DB8:11::1/128
[0/0]
     via Vlan11,
receive
O  
2001:DB8:21:21::/64 [110/2]
     via
FE80::FE75:16FF:FECF:5326, Vlan3
O  
2001:DB8:22:22::/64 [110/2]
     via
FE80::1E7E:E5FF:FE0F:C954, Vlan3
OE1 2001:DB8:29::/64 [110/21]
     via
FE80::21E:BEFF:FEE3:5EF2, Vlan3
O   2001:DB8:233::/64
[110/2]
     via
FE80::FE75:16FF:FECF:5326, Vlan3
     via
FE80::1E7E:E5FF:FE0F:C954, Vlan3
LC 
2001:DB8:1111::1111/128 [0/0]
     via Loopback0,
receive
O   2001:DB8:8888::8888/128
[110/1]
     via
FE80::21E:BEFF:FEE3:5EF2, Vlan3
O   2001:db8:101::/64
[110/2]
     via
FE80::FE75:16FF:FECF:5326, Vlan3
     via
FE80::1E7E:E5FF:FE0F:C954, Vlan3
L   FF00::/8 [0/0]
     via Null0,
receive

Summary:

Now you see how easy it is to set up a Raspberry Pi as a simple router.  There is no end to the creative possibilities with a set of Raspberry Pi computers.  The Raspberry Pi is such a low-cost item, but low-cost doesn’t mean less capabilities.  The capabilities available in such a small form-factor device is incredible.  The Raspberry Pi can be a useful tool for IT engineers.  The only limit to what you can do is based on your imagination and your willingness to tinker around to get it to work.

Scott

Join the discussion
Be the first to comment on this article. Our Commenting Policies