c 网站模板,个人主页怎么填,有源代码怎么制作网站,如何安装网站程序FRR简介
FRR是FRRouting的简称#xff0c;是一个开源的路由交换软件套件。其作者源自老牌项目quaga的成员#xff0c;也可以算是quaga的新版本。 使用时一般查看此文档#xff1a;https://docs.frrouting.org/projects/dev-guide/en/latest/index.html
FRR支持的协议众多…FRR简介
FRR是FRRouting的简称是一个开源的路由交换软件套件。其作者源自老牌项目quaga的成员也可以算是quaga的新版本。 使用时一般查看此文档https://docs.frrouting.org/projects/dev-guide/en/latest/index.html
FRR支持的协议众多也有较为完备的北向接口。 如需深入了解或进行二次开发可直接查看它的源码其github地址为https://github.com/FRRouting/frr
FRR的安装方式多种多样如仅仅把它当做工具使用使用docker运行FRR是一个不错的选择。 docker方式运行frr时需要注意较新版本FRR的docker仓库由quay.io维护并没有在dockerhub中。
使用时拉一下对应的版本即可如 docker pull quay.io/frrouting/frr:10.0.0 frroutingospf快速组网
frr应用范围广泛如
虚拟路由器/交换机路由交换套件开发/学习sonic组件frr组网openwrt交换机路由器模拟器……
这里以FRROSPF为例演示一下FRROSPF组网的丝滑过程。
ospf简单回顾
OSPF全称为Open Shortest Path First开放最短路径优先。 在笔者以前的文章《使用mininet快速入门ONOS路由交换技术与原理-路由篇》中有提到OSPF属于IGP是一种基于链路状态的动态路由协议与RIP、ISIS协议相比具有快速收敛、简单易用的特点。
目前使用到的OSPF有OSPF-V2与OSPF-V3两个版本OSPF-V2主要用于IPV4OSPF-V3主要用于IPV6。 OSPF中常见术语有
LSA链路状态通告LSDB链路状态数据库Router ID唯一标识一个OSPF路由器OSPF Area标识一个OSPF区域Area IDOSPF区域号Cost路由度量值默认算法为100 Mbit/s/接口带宽OSPF邻居由OSPF Hello报文建立的邻居关系OSPF DR/BDROSPF指定路由器/备份指定路由器
OSPF中的路由表项由SPF算法生成底层使用Dijkstra算法(狄克斯特拉)。OSPF通过交换链路状态信息构建全网拓扑图并使用Dijkstra算法计算每个路由器到其他路由器的最短路径以生成高效且一致的路由表。
OSPF更多介绍可移步《什么是OSPF》
实验拓扑 拓扑图如上由3个不同网段的路由器组成R1和R3使用R2间接连起来且R1与R3位于不同的两个网段。
环境准备
路由器搭建
使用FRR模拟3台路由器
docker run -d --privileged --netnone --name frr-01 quay.io/frrouting/frr:10.0.0
docker run -d --privileged --netnone --name frr-02 quay.io/frrouting/frr:10.0.0
docker run -d --privileged --netnone --name frr-03 quay.io/frrouting/frr:10.0.0查看网络信息
docker exec -it frr-01 ifconfig
docker exec -it frr-02 ifconfig
docker exec -it frr-03 ifconfig上面使用的net为none默认没有网卡信息后续再手动配置网络拓扑。显示如下
rootpuhaiyang-Computer:/home/puhaiyang# docker exec -it frr-01 ifconfig
docker exec -it frr-02 ifconfig
docker exec -it frr-03 ifconfig
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0UP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0UP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0UP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)启动ospf 进入每个容器开启R1、R2、R3中的ospf
vi /etc/frr/daemons
---
bgpdno
ospfdyes
ospf6dno
ripdno
ripngdno或用字符串替换 sed -i ‘s/ospfdno/ospfdyes/g’ /etc/frr/daemons 配置文件修改好后再重启FRR服务 #重启 FRR 服务 /etc/init.d/frr restart 输入ps -ef|grep ospf 验证一下
ovs安装与验证
上面使用frr镜像仅完成了3台路由器容器的搭建但还未配置网卡信息。为了实验方便使用ovs完成容器网络搭建。
安装ovs 参考ovs官网链接https://docs.openvswitch.org/en/latest/intro/install/
以ubuntu系统为例执行如下命令进行安装 sudo apt-get install openvswitch-switch 验证ovs
rootubuntu:~# ovs-vsctl -V
ovs-vsctl (Open vSwitch) 2.9.8
DB Schema 7.15.1
rootubuntu:~#绑定容器网络
frr容器与ovs就绪后便可以将容器与ovs交换机连接起来了。
创建一个ovs网桥命名为brConn ovs-vsctl add-br brConn 如需删除执行此命令 ovs-vsctl del-br brConn
创建好后输入如下命令进行验证 ovs-vsctl show rootpuhaiyang-Computer:/home/puhaiyang# ovs-vsctl show
99985505-5873-467d-be09-54cc3a5b6eb7Bridge brConnPort brConnInterface brConntype: internalovs_version: 2.17.9Bridge成功显示后便可以让3台路由器进行连线了让其全连到同一个交换机(brConn)中。使用到的工具为ovs中自带的ovs-docker命令 ovs-docker add-port brConn eth1 frr-01 --ipaddress11.11.0.2/24 ovs-docker add-port brConn eth1 frr-02 --ipaddress11.11.0.3/24 ovs-docker add-port brConn eth2 frr-02 --ipaddress12.12.0.2/24 ovs-docker add-port brConn eth1 frr-03 --ipaddress12.12.0.3/24 关于ovs-docker的更多细节可参考其源码地址为https://github.com/openvswitch/ovs/blob/main/utilities/ovs-docker
上面的ovs-docker命令执行好后再次查看网桥信息 ovs-vsctl show Bridge brConnPort brConnInterface brConntype: internalPort 6f8e9c82aa0a4_lInterface 6f8e9c82aa0a4_lPort 0f93da6550474_lInterface 0f93da6550474_lPort 3e62b26da9b94_lInterface 3e62b26da9b94_lPort 9852a04bd3214_lInterface 9852a04bd3214_l可以看到添加了3个口每个口和前面创建的frr容器进行了连接。
未学到路由前网络验证
进入容器尝试让R1与R2、R3进行通信 R1 ping R2
docker exec -it frr-01 bash
ping 11.11.0.3
---
e603f681209f:/# ping 11.11.0.3
PING 11.11.0.3 (11.11.0.3): 56 data bytes
64 bytes from 11.11.0.3: seq0 ttl64 time0.837 ms
64 bytes from 11.11.0.3: seq1 ttl64 time0.118 ms
---
e603f681209f:/# ping 12.12.0.3
PING 12.12.0.3 (12.12.0.3): 56 data bytes
ping: sendto: Network unreachableR1到R2的同网段ip可达R1到R3不可达因为处于不同网段且无路由记录。
R2 ping R3
docker exec -it frr-02 bash
ping 12.12.0.3
---
40757abcdc0c:/# ping 12.12.0.3
PING 12.12.0.3 (12.12.0.3): 56 data bytes
64 bytes from 12.12.0.3: seq0 ttl64 time0.072 ms
64 bytes from 12.12.0.3: seq1 ttl64 time0.090 ms
---
40757abcdc0c:/# ping 11.11.0.2
PING 11.11.0.2 (11.11.0.2): 56 data bytes
64 bytes from 11.11.0.2: seq0 ttl64 time0.466 ms
64 bytes from 11.11.0.2: seq1 ttl64 time0.111 msR2作为中间节点到R1和R3均可达
进入frr-01控制台查看接口信息
e603f681209f:/# vtysh
e603f681209f# show interface brief
Interface Status VRF Addresses
--------- ------ --- ---------
eth1 up default 11.11.0.2/24
lo up default
进入frr-02查看路由器信息
40757abcdc0c:/# vtysh
40757abcdc0c# show interface brief
Interface Status VRF Addresses
--------- ------ --- ---------
eth1 up default 11.11.0.3/24
eth2 up default 12.12.0.2/24
lo up default 40757abcdc0c# show ip route
Codes: K - kernel route, C - connected, L - local, S - static,R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,f - OpenFabric, t - Table-Direct, - selected route, * - FIB route, q - queued, r - rejected, b - backupt - trapped, o - offload failureC* 11.11.0.0/24 is directly connected, eth1, 00:14:42
L* 11.11.0.3/32 is directly connected, eth1, 00:14:42
C* 12.12.0.0/24 is directly connected, eth2, 00:14:41
L* 12.12.0.2/32 is directly connected, eth2, 00:14:41
ospf配置
依次进入R1、R2、R3容器输入vtysh进入frrouting控制台进行ospf配置详细配置如下
R1
conf t
router ospf
network 11.11.0.2/24 area 0
end
show ip ospf neighborR2
conf t
router ospf
network 11.11.0.3/24 area 0
network 12.12.0.2/24 area 0
end
show ip ospf neighborR3
conf t
router ospf
network 12.12.0.3/24 area 0
end
show ip ospf neighbor配置完毕后可以随时使用如下命令进行验证
#查看路由
show ip route
#查看ospf邻居
show ip ospf neighbor网络连通性验证
R1 ping 11.11.0.3 ping 12.12.0.2 ping 12.12.0.3 R2 ping 11.11.0.2 ping 12.12.0.3 R3 ping 11.11.0.2 ping 12.12.0.2 通信成功自动添加路由记录