网络工程师一直在寻找新的方法来获得一些低成本的网络测试能力。很少有公司为网络实验室提供足够的资金,让他们的网络团队在部署之前进行学习。许多用户使用图形网络模拟器在笔记本电脑上使用Cisco IOS管理程序(GNS3)Dynagen和Dynamips的允许实验和学习。当你等待思科虚拟因特网路由实验室你可以探索使用树莓派作为低成本的路由器进行测试。
获取树莓派场地状况:
几个星期前,我写了一篇关于你如何可以创建一个低成本使用树莓裨远程网络监视节点。此博客包含让你的树莓派准备,并与Raspbian OS和双协议网络上工作负载所需的信息。文章还谈到了你可以如何放置树莓派边境上的两个网络之间,并将其设置为路由器。要做到这一点,需要除了板载以太网接口,多个USB以太网接口。这可能意味着购买一个USB集线器提供电源给那些USB设备。本文中潜水深入如何设置树莓裨作为双协议路由器使用OSPF。
路由配置步骤:
你需要做的第一件事是路由器软件加载到树莓派。背后的树莓派的想法是配备了一个精简的操作系统,然后添加你需要的特定功能。因为不是每个树莓派需要像一个路由器,路由软件没有预装。有许多开源路由可用的软件包(鸟互联网路由守护进程(鸟),可扩展开放路由器平台(XORP),等等),但是,对于我们的目的,我们选择斑驴。
你将需要执行安装所需的路由包的命令如下。
sudo易于得到安装斑驴命令和apt-get安装了radvd
我们可能还需要安装路由广告守护进程(RADVD)如果我们想发送特定ICMPv6路由器通告(RA)分组或使用RDNSS,移动IPv6,NEMO,和6to4隧道。
一旦这个软件被安装(与它们的依赖),现在是时候开始为树莓派配置为一台路由器。为了更容易理解的配置,这里是网络拓扑图。
要在我们需要编辑/ etc /网络/接口的配置使用您喜欢的文本编辑器文件中的各种接口配置IPv4和IPv6地址。下面是该文件看起来像什么的例子。
pi@tuesday: ~ $更多/etc/network/interfaces汽车lo iface lo inet回环汽车eth0 iface eth0 inet静态地址192.168.101.22子网掩码255.255.255.0网关192.168.101.1 iface eth0 inet6静态地址2001:db8:101:: 22子网掩码64网关fe80:: 5246:5dff: fe6c: 1492年汽车eth1 iface eth1 inet静态地址192.168.3.22子网掩码255.255.255.0网关192.168.3.1 iface eth1 inet6静态地址2001:db8:3:: 22子网掩码64网关2001:db8:3:: 1汽车eth2 iface eth2 inet 192.168.233.22静态地址netmask 255.255.255.0网关192.168.233.1 iface eth1 inet6静态地址2001:db8:233::22 netmask 64 gateway 2001:db8:233::1
一旦地址是静态分配给接口,我们可以重启网络使用以下命令来应用此新的配置文件。
sudo /etc/init.d /网络重启
OSPFv2的配置和OSPFv3协议:
最所有现代路由器现在支持双协议路由协议。在之前的岗位我写了一篇关于如何可以与OSPFv3的使用配置Cisco IOS路由器。这是很容易的树莓派运行斑驴和一台Cisco IOS路由器之间建立互操作性。
我们需要做的第一件事是让斑驴守护程序文件。
须藤VI的/ etc /斑驴/守护进程
我们希望这个文件必须设置为“yes”下面的配置线。
斑马=是的ospfd =是的ospf6d = yes
下一步,我们需要配置基本斑马配置文件(Quagga所基于的路由包)。
sudo vi /etc/quagga/zebra.conf
我们将把这个文件修改为如下所示。这是名为“Tuesday”路由器的配置文件。
主机名R22zebra!密码斑马启用密码密码!eth0接口的链路检测IP地址192.168.101.22/24 IPv6地址2001:DB8:101 ::64分之22IPv6邻居发现抑制-RA!eth1接口的链路检测IP地址192.168.3.22/24 IPv6地址2001:DB8:3 ::六十四分之二十二没有IPv6邻居发现抑制-RA!接口ETH2链路检测IP地址192.168.233.22/24 IPv6地址2001:DB8:233 ::六十四分之二十二没有IPv6邻居发现抑制-RA!接口LO链路检测IP地址10.10.10.22/32 IPv6地址2001:DB8:22:22 ::六十四分之二十二没有IPv6邻居发现抑制-RA!没有登录陷阱日志标准输出!VTY线路没有登录
现在,我们已经准备好配置和OSPFv2路由。我们通过编辑/etc/quagga/ospfd.conf文件做到这一点。我们可以使文件看上去像下面的内容。
主机名R22ospfd!密码斑马启用密码密码!网卡eth0!eth1接口!接口ETH2!接口罗!路由器OSPF网络192.168.101.0/24区域0.0.0.0网络192.168.3.0/24区域0.0.0.0网络192.168.233.0/24区域0.0.0.0网络10.10.10.22/32区域0.0.0.0!VTY线路没有登录
最后,我们已经准备好配置OSPF的是IPv6路由通过编辑以下斑驴文件。
sudo vi /etc/quagga/ospf6d.conf
下面是该实验拓扑该配置文件的内容。
主机名R22ospf6密码斑马启用密码密码登录标准输出服务先进VTY!调试ospf6邻居的状态!接口eth0的IPv6的ospf6成本1的IPv6 ospf6问候间隔10的IPv6 ospf6死间隔40的IPv6 ospf6重传间隔5的IPv6 ospf6优先级0的IPv6 ospf6发射延迟1的IPv6 ospf6实例的编号0!接口eth1的IPv6的ospf6成本1的IPv6 ospf6问候间隔10的IPv6 ospf6死间隔40的IPv6 ospf6重传间隔5的IPv6 ospf6优先级0的IPv6 ospf6发射延迟1的IPv6 ospf6实例的编号0!接口的eth2的IPv6 ospf6成本1的IPv6 ospf6问候间隔10的IPv6 ospf6死间隔40的IPv6 ospf6重传间隔5的IPv6 ospf6优先级0的IPv6 ospf6发射延迟1的IPv6 ospf6实例的编号0!接口的IPv6 LO成本ospf6 1的IPv6 ospf6问候间隔10的IPv6 ospf6死间隔40的IPv6 ospf6重传间隔5的IPv6 ospf6优先级0的IPv6 ospf6发射延迟1的IPv6 ospf6实例的编号0!路由器ospf6路由器-ID 10.10.10.22接口eth0的区域0.0.0.0接口eth1的区域0.0.0.0接口的eth2区域0.0.0.0接口LO区域0.0.0.0区域0.0.0.0范围2001:DB8:3 :: / 64区域0.0.0.0范围2001:DB8:233 :: / 64区域0.0.0.0范围2001:DB8:22:22 :: / 64区域2001 0.0.0.0范围:DB8:101 :: / 64!线虚终端EXEC超时0 0
配置的最后部分是检查,我们有IP转发打开。以下是命令,我们可以用它来设定IP转发,并检查设置。
PI @星期二:〜$须藤回声 “把net.ipv4.ip_forward = 1” >> /etc/sysctl.conf中PI @星期二:〜$须藤回声 “net.ipv6.conf.all.forwarding = 1” >> /等/sysctl.conf PI @星期二:〜$ grep的向前的/etc/sysctl.conf#取消下一行以使数据包转发针对IPv4把net.ipv4.ip_forward = 1#取消下一行以使数据包转发的IPv6 net.ipv6.conf.all.forwarding = 1
现在,我们只需要使用下面的命令启动斑驴的过程。
PI @星期二:〜$ sudo的/etc/init.d/quagga启动
思科路由器配置:
作为参考,下面是思科IOS路由器A的在我们的拓扑结构。
主机接口RTRA接口GigabitEthernet0 / 0的IP地址192.168.3.1 255.255.255.0的IP OSPF网络广播的IP OSPF的优先级100 IPv6地址2001:DB8:3 :: 1/64的IPv6 OSPF 100区域0.0.0.0 IPv6的OSPF网络广播IPv6的OSPF优先级100!路由器OSPF路由器100-ID 10.1.1.1区域0.0.0.0范围192.168.3.0 255.255.255.0区域0.0.0.11范围10.1.1.1 255.255.255.255区域0.0.0.11范围192.168.11.0 255.255.255.0区域0.0.0.11范围192.168.100.0255.255.255.0区域0.0.0.12范围192.168.12.0 255.255.255.0被动接口默认没有无源接口接口GigabitEthernet0 / 0没有无源接口VLAN11网络10.1.1.1 0.0.0.0区域0.0.0.11网络192.168.3.0 0.0.0.255面积0.0.0.0网络192.168.11.0 0.0.0.255面积0.0.0.11网络192.168.12.0 0.0.0.255面积0.0.0.12网络192.168.100.0 0.0.0.255面积0.0.0.11默认信息来源度量类型1!IPv6路由器OSPF路由器100-ID 10.1.1.1日志邻接-改变细节区域0.0.0.0范围2001:DB8:3 :: / 64区域0.0.0.0范围2001:DB8:1111 ::一百二十八分之一千一百十一区域0.0.0.11范围2001:DB8:11 :: / 64区域0.0.0.12范围2001:DB8:12 :: / 64默认信息起源度量600被动接口默认没有无源接口接口GigabitEthernet0 / 0
如果您正在使用Cisco路由器接口的树莓派和尝试配置OSPFv3协议IPsec的认证头(AH)认证,那么你应该知道的一些这里的限制。您也可以运行到OSPFv3身份验证思科6500交换机的限制。
验证操作:
现在Quagga正在运行OSPFv2和OSPFv3,我们需要验证配置。使用Quagga完成此操作的方法是使用telnet连接到路由器的控制台端口。不同的Quagga路由进程有不同的TCP端口号。
斑马 - 2601 ripd - 2602年的RIPng - 2603 ospfd - 2604 bgpd - 2605 ospf6d - 2606
以下是我们如何能够连接到控制台端口,登录到路由进程,并使用Cisco样界面(CLI)显示路由进程的状态的例子。
pi@tuesday:/etc/quagga$ telnet localhost2604尝试::1…尝试127.0.0.1……连接到localhost。转义字符为'^]'。你好,这里是Quagga(版本0.99.21)。版权所有:Kunihiro Ishiguro等人R22ospfd >显示ip ospf邻居邻居ID Pri州死时间地址接口RXmtL RqstL DBsmL 10.10.10.21 1完全/备份33.010 s 192.168.101.21 eth0:192.168.101.22 0 0 0 10.1.1.1博士100全/ 34.506秒192.168.3.1 eth1:192.168.3.24 0 0 0 10.8.8.8 1双向/ DROther 35.968 s 192.168.3.2 eth1:192.168.3.24 0 0 0 192.168.28.28 1完全/备份37.845 s 192.168.3.3 eth1:192.168.3.24 0 0 0 10.10.10.21 1完全/备份34.182 s 192.168.233.21 eth2:192.168.233.24 0 0 0 R22ospfd >显示ip ospf路由= = = = = = = = = = = =OSPF网络路由表= = = = = = = = = = = = N IA 10.1.1.1/32[11]面积:通过192.168.3.1 0.0.0.0,eth1 N 10.8.8.8/32[11]面积:通过192.168.3.2 0.0.0.0,eth1 N 10.10.10.21/32[20]面积:通过192.168.101.21 0.0.0.0,通过192.168.233.21 eth0, eth2 N 10.10.10.22/32[10]面积:0.0.0.0直接附加到lo N 192.168.3.0/24[10]面积:0.0.0.0直接附加到eth1 N 192.168.4.0/24[11]面积:通过192.168.3.2 0.0.0.0,eth1 N IA 192.168.11.0/24[11]面积:通过192.168.3.1 0.0.0.0,eth1 N IA 192.168.12.0/24[20]面积:通过192.168.3.3 0.0.0.0,eth1 N 192.168.13.0/24[11]面积:通过192.168.3.2 0.0.0.0,eth1 N 192.168.23.0/24[11]面积:通过192.168.3.2 0.0.0.0,eth1 N IA 192.168.28.28/32[11]面积:通过192.168.3.3 0.0.0.0,eth1 N 192.168.43.0/24[11]面积:通过192.168.3.2 0.0.0.0,eth1 N 192.168.101.0/24[10]面积:0.0.0.0直接附加到eth0 N 192.168.233.0/24[10]面积:0.0.0.0直接附加到eth2 = = = = = = = = = = = = OSPF路由器路由表= = = = = = = = = = = = = R 10.1.1.1[10]面积:0.0.0.0,ABR, ASBR通过192.168.3.1 eth1 R 10.8.8.8[10]面积:0.0.0.0,ASBR通过192.168.3.2 eth1 R 192.168.28.28[10]面积:0.0.0.0,上通过192.168.3.3 eth1 = = = = = = = = = = = = OSPF外部路由表= = = = = = = = = = = N E1 0.0.0.0/0[11]标签:100年通过192.168.3.1 eth1 N E1 192.168.5.0/24[11]标签:65005年通过192.168.3.2 eth1 N E1 192.168.6.0/24[11]标签: 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
Quagga中其他有用的OSPFv2命令有:
显示运行配置显示IP OSPF接口显示的IP OSPF的数据库显示的IP OSPF边界路由器
现在,我们可以连接到OSPFv3路由守护程序(TCP端口2606),并查看从这个角度配置。