基于lxd容器搭建路由器_lxd创建两张网卡的容器-程序员宅基地

技术标签: lxd容器  路由仿真  网络  路由器  lxc  linux  

网络拓扑结构如下:
在这里插入图片描述
自己画的,请勿盗用!

先连接主机c1与路由器R1
R1前面已经启动,现在启动c1
sudo lxc start c1
创建网络并绑定端口
sudo lxc network create C1R1 ipv6.address=none ipv4.address=12.12.12.1/24
sudo lxc network attach C1R1 c1 eth0
sudo lxc network attach C1R1 R1 eth0
进入R1
sudo lxc exec R1 bash
分配地址
root@R1:~# ip addr add 12.12.12.2/24 dev eth0
启动网卡
root@R1:~# ip link set eth0 up
查看网卡配置
root@R1:~# ip addr
退出容器
root@R1:~# exit
进入c1
sudo lxc exec c1 bash
分配地址
root@c1:~# ip addr add 12.12.12.1/24 dev eth0
启动网卡
root@c1:~# ip link set eth0 up
替换默认网关
root@c1:~# route delete default
root@c1:~# route add default gw 12.12.12.2
测试能否ping通
ping 12.12.12.2
退出容器
root@c1:~# exit

接下来按照上面方法连接主机c2 eth0与路由器R2 eth0并测试
地址分别为12.12.17.1/24与12.12.17.2/24

再连接路由器R1与路由器R2
创建网络并绑定端口
sudo lxc network create R1R2 ipv6.address=none ipv4.address=12.12.14.1/24
sudo lxc network attach R1R2 R1 eth1
sudo lxc network attach R1R2 R2 eth1
进入R1
sudo lxc exec R1 bash
分配地址
root@R1:~# ip addr add 12.12.14.1/24 dev eth1
启动网卡
root@R1:~# ip link set eth1 up
查看网卡配置
root@R1:~# ip addr
退出容器
root@R1:~# exit
进入R2
sudo lxc exec R2 bash
分配地址
root@R2:~# ip addr add 12.12.14.2/24 dev eth1
启动网卡
root@R2:~# ip link set eth1 up
查看网卡配置
root@R2:~# ip addr
测试
root@R2:~#ping 12.12.14.1
退出容器
root@R2:~# exit
9、开启RIP路由协议
进入R1
sudo lxc exec R1 bash
复制RIP协议的配置文件,以便自动配置
root@R1:~#cp /usr/local/etc/ripd.conf.sample /usr/local/etc/ripd.conf
root@R1:~#vi /usr/local/etc/ripd.conf
加入如下内容
router rip
version 2
network eth0
network eth1
:wq保存退出,rip配置完成,执行
root@R1:~#zebra –d
root@R1:~#ripd –drip
正常启动后,可以用ip route show查看路由是否已经建立
退出root@R1:~#exit
再进入R2,执行同样操作。用ip route show查看路由会发现多出一条R1分享过来的路由。
在这里插入图片描述
此时进入c2访问c1
root@c2:~#ping 12.12.12.1会发现能够ping通
在这里插入图片描述
至此完成了c1、c2、R1、R2之间的全部配置,根据拓扑图将c3、R3按照上述步骤,进行主机c3与路由器R3间的配置和路由器R1R2R3间的两两配置,将其添加到网络中。
配置完成六个容器的地址信息分别如下图所示:
在这里插入图片描述
10、若想使用ospf路由协议,过程与rip类似,先
root@R1:~#cp /usr/local/etc/ospfd.conf.sample /usr/local/etc/ospfd.conf
root@R1:~#vi /usr/local/etc/ospfd.conf
加入如下内容
router ospf
ospf router-id 192.168.30.254
network 192.168.20.0/24 area 0
network 192.168.30.0/24 area 0
:wq保存退出,ospf配置完成,执行
root@R1:~#zebra –d
root@R1:~#rospfd –d
其中,router-id要填,一般填该路由器所有网卡接口ip中最大的。
network后面指要分享的网络。
不报错此时就是启动成功了。

遇到过一个错误: ospfd:error while loading shared libraries:libospf.so.0

解决办法:这个问题应该是没有执行ldconfig导致的,在/usr/local/lib下。
看一下/lib下有哪些相关库,是否缺少ospfd相关的,若缺少,就从/usr/local/lib下复制过来 。在这里插入图片描述
如上图所示,我的里面确实少了ospf的lib,所以我复制过来再执行ospfd -d,成功!
看一下执行结果,很快就有了路由分享:
在这里插入图片描述

我个人中心有文件记录整实验的全部过程,从创建容器安装quagga开始,最后附有常见问题解决方案,如有需要,可前往下载。如果觉得我写的对你有用,请多多支持,网络小白会一点点进步。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/FlowerMin/article/details/106362114

智能推荐

Linux 内存映射函数 mmap()函数详解_mmap函数映射文件写-程序员宅基地

文章浏览阅读481次。原文地址:http://blog.csdn.net/dlutbrucezhang/article/details/9080173一、概述 内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间用户空间两者之间需要大量数据传输等操作的_mmap函数映射文件写

他是360“真正”创始人,周鸿祎背后的神秘人,身价220亿_360创始人都有谁-程序员宅基地

文章浏览阅读605次。他是360“真正”创始人,周鸿祎背后的神秘大佬,身价220亿推荐语:数据安全这个词我们并不陌生,不过在过去,这个词往往是挂在另一个词下面的,这个词叫做“网络安全”。网络安全出现问题,也就是指网络安全遭到破坏,进而导致数据安全遭到威胁,是这样一种逻辑关系。而随着我国网络越来越发达,相关的网络安全行业也迎来了史无前例的发展机遇。据行业人士预测,未来十年网安行业将保持25%以上的增速,十年后我国网安市场规模将超过1.4万亿。这其中,齐向东带领的奇安信集团等头部网安企业,将迎来巨大的发展机遇。_360创始人都有谁

JAVA使用字节流将本地图片传到前端_java将图片地址使用流展示到前端页面-程序员宅基地

文章浏览阅读2.1w次,点赞6次,收藏41次。JAVA使用字节流将本地图片传到前端01.基本介绍02.代码介绍03.结果展示JAVA使用字节流将本地图片传到前端01.基本介绍在我们日常的开发中,会遇到对验证码的使用问题(验证码的作用这里不多多说,避免程序被恶意攻击等),如何是的前端和后端保持一致是一个问题,当然本程序不是介绍如何去写一个使用前端去显示一个验证码,并且验证码的值与后台的数据保持一致的问题,只..._java将图片地址使用流展示到前端页面

【超详细】Windows设置远程唤醒WOL+远程连接(远程开机)-程序员宅基地

文章浏览阅读6.2w次,点赞39次,收藏197次。Windows设置远程唤醒(远程开机wol)免费路由器ddns设置、端口映射、远程连接、wol开机唤醒,超详细操作手册、避坑指南,希望对你有所帮助_远程唤醒

org.apache.ibatis.annotations.Param依赖_ibatis依赖-程序员宅基地

文章浏览阅读3.7k次,点赞8次,收藏2次。<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version></dependency><dependency> <groupId>org.mybatis</groupId> <art._ibatis依赖

Pandas 中根据列值,选取DataFrame数据,并获取行索引号列表_如何选取dataframe df中的第5列第10行-程序员宅基地

文章浏览阅读10w+次,点赞16次,收藏112次。一、根据列条件,获取行索引号并转成列表#在dataframe中根据一定的条件,得到符合要求的某些行元素所在的位置import pandas as pddf = pd.DataFrame({'BoolCol': [1, 2, 3, 3, 4],'attr': [22, 33, 22, 44, 66]}, index=[10,20,30,40,50]) print(df) ..._如何选取dataframe df中的第5列第10行

随便推点

Rosenbrock函数的梯度与海瑟矩阵-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏8次。求解特殊函数的梯度与海瑟矩阵_rosenbrock函数的梯度

jupyter notebook加载和运行.py文件_jupyter如何运行py文件-程序员宅基地

文章浏览阅读1.7w次,点赞32次,收藏87次。jupyter notebook加载和运行.py文件Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果如何使用jupyter notebook打开.py文件呢需要用到jupyter notebook的魔法命令啦加载.py文件%load 文件路径/文件名称.py运行.py文件%run 文件路径/文件名称.py到这里就结束了,如果对你有帮助,欢迎点赞关注评论,你的点赞对我很重要..._jupyter如何运行py文件

An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale-程序员宅基地

文章浏览阅读588次。论文:https://arxiv.org/abs/2010.11929#代码:https://github.com/lucidrains/vit-pytorchhttps://github.com/likelyzhao/vit-pytorch1 核心思想应用ViT进行图像分类的处理过程:输入图像分块,原始图像为x∈RH×W×Cx \in R^{H \times W \times C}x∈RH×W×C,分块后为xp∈RN×(P2C)x_p \in R^{N \times (P^2 C)}xp​∈R_an image is worth 16x16 words: transformers for image recognition at scale

有道语音识别-程序员宅基地

文章浏览阅读1.8k次。广告关闭腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元!语音识别与合成:有道语音识别技术在一些场景上识别准确率超过98%,支持中、英、日、韩多个语言; 有道语音合成引擎音色逼近真人,支持中、英、日、韩、葡等多个语言; 自适应学习:配合自研的智能学习硬件,实现实时采集书写数据,并且提供如学情分析、知识图谱评估、智能推题等一系列自适应学习辅助。..._有道语音识别

Bugku:加密 python(N1CTF)-程序员宅基地

文章浏览阅读816次,点赞2次,收藏2次。这道题的题目就告诉了我们要用python。这里看到有两个python,第一个打开。用的是N1ES这个什么东西来加密了flag,后面也有一长串的注释,下一个文件也是,不过这个文件的函数让我觉得有点熟悉,发现是Feistel加密!!【对称加密算法噢噢】那就简单了,基本上不用改里面的方法。这时候搬出Feistel加密的流程:看到了吗,完全一样,只是顺序不一样。那么只需要小小修改python代码就可以了。这个代码是python2的环境,先调整为..._n1ctf

Android Studio Gradle执行顺序_先执行settings.gradle还是build.gradle-程序员宅基地

文章浏览阅读1.9k次。首先执行项目目录下面的setting.gradle然后执行项目目录下面的build.gradle然后根据setting.gradle中的配置顺序逆序执行module的build.gradle(即后写的先执行)_先执行settings.gradle还是build.gradle

推荐文章

热门文章

相关标签