ubuntu 下实现 docker+ovs+quagga搭建网络---bgp

2023-11-19

注:本机上现有quagga镜像+ovs虚拟交换机(2.9.1)+docker(18.09.7)

实现bgp网络搭建:

   1、sudo ovs-vsctl add-br br1            #增加一个ovs网桥br1

   

   2、sudo docker images                         #查看本机的镜像是否制作成功      quagga的镜像创建过程请看上一篇

   

   3、部署BGP网络

BGP网络拓扑图    

 sudo docker run -itd --privileged=true --network none --name BGP1 quagga:latest /bin/bash       #生成BGP1容器      

 sudo ovs-docker add-port br1 eth1 BGP1 --ipaddress=192.168.2.1/24                 #添加网卡eth1
 sudo ovs-docker add-port br1 eth2 BGP1 --ipaddress=100.100.0.1/30                 #添加网卡eth2

sudo docker run -itd --privileged=true --network none --name BGP2 quagga:latest /bin/bash       #生成BGP2容器 

sudo ovs-docker add-port br1 eth1 BGP2 --ipaddress=10.10.2.1/24                       #添加网卡eth1
sudo ovs-docker add-port br1 eth2 BGP2 --ipaddress=100.100.0.2/30                  #添加网卡eth2

进入BGP1容器运行quagga 程序。 具体操作内容见下图

想了解nohup 与& 请移步。 现在碰到日志文件nohup.out 出现了“Can't create pid lock file /run/quagga/zebra.pid (No such file or directory),exiting”的问题

进行下面的操作(到具体的目录下创建quagga文件,并执行chown -R quagga.quagga /run/quagga/)

查看是否问题解决,进入到/etc/quagga 目录下,执行nohup zebra & 然后退出(回车或者crtl+c),查看nohup.out 内容

以相同的方式启动bgpd 、ospd 服务,netstat -tunlp  检测是否启动成功

以上操作以相同的方式在BGP2中执行

对容器BGP1进行如下配置(路由A配置),输入show ip bgp summary查看配置是否成功

对容器BGP2进行如下配置(路由B配置),输入show ip bgp summary查看配置是否成功

配置BGP前缀(网络network)通告

AS 100将以192.168.2.1/24作为通告,在我们的例子中AS 200将同样以10.10.2.1/24作为通告。这些前缀需要被添加到BGP配置如下。

在路由器A中:(确认前缀的数量是否被改变了,输入“show ip bgp summary”查看

在路由器B中:(确认前缀的数量是否被改变了,输入“show ip bgp summary”查看)

<1>、查看所接收的更多前缀细节,我们可以使用以下命令,“show ip bgp neighbors 邻居IP advertised-routes”
这个命令用于显示邻居所接收到的前缀总数(以BGP1为例)

<2>、查看哪一个前缀是我们从邻居接收到的,可以使用如下命令:“show ip bgp neighbors 邻居IP routes”(以BGP2为例)

<3>、也可以查看所有的BGP路由器:“show ip bgp”(以BGP2为例)

4、测试BGP网络

方式一:

      在BGP1中ping 100.100.0.2和ping 10.10.2.1都可以通

     

     在BGP2中ping 100.100.0.1和ping 192.168.2.1都可以通

     

方式二:  

 

Tip:

    需要注意的是,当你第二次重复使用您的BGP1与BGP2的时候,请查看您的ovs状态(sudo ovs-vsctl show),如果出现异常,请重新执行步骤1,并且重新给BGP1和BGP2添加网卡。

异常如下:

操作如下:

本文有些参考:https://blog.8086k.cn/archives/52/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu 下实现 docker+ovs+quagga搭建网络---bgp 的相关文章

随机推荐

  • mtb2_VizQL_Cleaning_Regx phone email_CRISP-DM_pdf table to text then to Excel

    Changing field attribution Let us look at the World Happiness Report We create the following worksheet by placing Start
  • 真题详解(哈希冲突)-软件设计(七十)

    真题详解 3FN 软件设计 六十九 https blog csdn net ke1ying article details 130548812 在以阶段划分的编译器 阶段的主要作用是分析构成程序的字符及由字符构造规则构成的符号是否复合程序语
  • 使用redis远程连接数据库

    使用redis远程连接数据库 1 首先下在redis 略 2 下载好后如图 3 输入远程数据库地址 error 错误信息提示的是 没有数据库权限 需要输入密码 4 输入密码后就可以进行操作了 5 因为是key value格式的 所以其实re
  • str计算机中代表什么,STR到底是待机还是休眠

    1 为什么需要待机 休眠 尽管电脑硬件运行速度越来越快 但操作系统的体积也在不断膨胀 使得电脑开 关机时 启动 关闭的程序越来越多 花费时间也越来越漫长 因此如何让电脑能够快速启动 一开机就进入Windows 就成为用户关心的问题 于是 随
  • (代码审计)zzcms前台SQL注入

    1 首先通过Seay源码审计工具发现存在admin ask phpSQL注入漏洞 2 根据提示定位到这段代码
  • Java-static关键词的引入

    Java static关键词的引入 栈 局部变量 堆 new出来的结构 对象 数组 方法区 类的加载信息 静态域 常量池 1 相关概念 静态的 公有的 不属于哪个对象 可以用来修饰 属性 方法 代码块 内部类 当static修饰属性时 按照
  • PMS及应用安装过程分析一

    本文阐释应用安装过程 对于开机过程应用包扫描过程不讲述 请参考网上其他文章 PMS类图 APP安装过程 1 PackageInstallerActivity创建 1 1 getPackageManager 1 2 processPackag
  • python如何检查一个对象是否是可迭代对象

    有的时候我们会记不住python里哪种数据类型是可以迭代的对象 这个时候我们可以使用collections里的Iterable来检查这个实例是否可以迭代 gt gt gt from collections import Iterable 载
  • 某东商品价格抓取

    今天做了一个京东商品价格的需求 整理一下 第一步 打开Chrome浏览器自带抓包工具 选择network选项卡 第二步 按下Ctrl F5 打开search 在里面输入价格 例如图中输入的是1318 00 然后回车就会出现包含价格的接口出现
  • 选频网络的原理

    请高手给我讲解下选频网络的原理 选频电路 2012 09 28 18 23 freechen3 分类 工程技术科学 浏览173次 提问者采纳 2012 09 30 00 07 选频网络是利用谐振原理实现 输入的信号含有各次频率分量 选频网络
  • js扩展jquery对象基元的开发与代码编写

    js扩展jquery对象基元的开发与代码编写 function window undefined var Core function var eventarr var OnPageLoad undefined 获取USER信息 var ge
  • OpenCV:旋转矩形(RotatedRect)

    RotatedRect类是OpenCV的基础类 用于创建旋转矩形 下面是它的构造函数 包含旋转中心点 尺寸大小和旋转角度 构造函数1 RotatedRect const Point2f center const Size2f size fl
  • ​2 万字系统总结,带你实现 Linux 命令自由?

    前言 Linux 的学习对于一个程序员的重要性是不言而喻的 前端开发相比后端开发 接触 Linux 机会相对较少 因此往往容易忽视它 但是学好它却是程序员必备修养之一 如果本文对你有所帮助 请点个 吧 作者使用的是阿里云服务器 ECS 最便
  • redis主从同步,总是显示master_link_status:down的解决方法

    前几天 在修改一台从节点的redis的监听端口后 重启了下redis 发现master link status 很长时间一直都是down状态 查看了redis日志 发现日志里出现很多的 I O error trying to sync wi
  • 解决Java连接MySQL后出现的时区错误问题

    好不容易连接好数据库后 第二天打开运行 发现底下一串报红 The server time zone value is unrecognized or represents more than one time zone 线程 main ja
  • Java中变量的作用域【Java基础】

    最近在看 Thinking in Java 想把Java基础再巩固一下 在博客上遇到的以前没注意到的知识点或者较难的知识点记录下来 与大家分享 Java中的基本类型变量的作用域为 int x 1 变量x的作用域只在大括号内 System o
  • QT文件读取路径

    最近在弄中兴的一个程序大赛 用QT读取XML文件的编程 在编程中发现QT文件读取路径与VS有不同之处 我们提供给QFile的文件路径无非就是绝对路径和相对路径 绝对路径是绝对没问题的 不过相对路径就得小心了 谈到相对路径 需要注意区分进程所
  • MES系统给制造型企业带来了哪些效益

    MES系统要怎么给制造型企业带来效益 在这场剧烈的市场竞争中 制造企业不只要在产品质量和创新上具有竞争优势 而且产品的价格在很大程度上决定了企业的市场竞争力 MES系统如何去打破生产暗箱 建造通明化工厂 提高生产效率 如今 中国工厂存在两大
  • 逃逸闭包和非逃逸闭包

    在使用swift开发 使用闭包作为参数传递到函数中 但是总是默认提示加上 escaping 逃逸闭包 是指闭包在函数结束时 闭包就会随着函数的结束而被释放 非逃逸闭包 是指闭包在函数结束时 逃逸函数 不会随函数的结束而被释放 在该闭包执行后
  • ubuntu 下实现 docker+ovs+quagga搭建网络---bgp

    注 本机上现有quagga镜像 ovs虚拟交换机 2 9 1 docker 18 09 7 实现bgp网络搭建 1 sudo ovs vsctl add br br1 增加一个ovs网桥br1 2 sudo docker images 查看