环境:
Ubuntu 20.4.1
mininet 2.3.0.dev6
ovs-vsctl (Open vSwitch) 2.13.8、DB Schema 8.2.0
Python 3.8.10
一、宿主机Ubuntu应当有两个网口。
其中一个用于宿主机的上网,一个用于桥接虚拟网络。
若没有2个物理网卡,可以在虚拟机上搭建Ubuntu,然后为其添加第二个虚拟网卡。步骤:虚拟机设置→硬件→添加→网络适配器→完成。网络连接设置为“NAT”模式。
二、查看宿主机网卡情况。
使用ifconfig命令查看宿主机网卡情况。本机有两个网卡:ens33和ens37。拟将ens37添加到mininet虚拟网络,使其中主机联网;ens33不做更改用于宿主机联网。
三、mininet搭建虚拟网络
搭建一个树形2层网络,为1→2→4的结构:
sudo mn --topo=tree,depth=2
结果如图:
端口连接关系为:
四、将网卡ens37添加到虚拟网络。
4.1释放网卡ens37:
sudo ifconfig ens37 0.0.0.0
4.2 将网卡ens37 添加到s1:
sudo ovs-vsctl add-port s1 ens37
通过sudo ovs-vsctl show s1查看添加后情况。
4.3 配置虚拟主机的网卡。
对h1-h4四个主机一次执行以下操作((以h1为例)
打开终端h1,在mininet中输入:
xterm h1
释放网卡:
ifconfig h1-eth0 0.0.0.0
自动配置 网卡:
dhclient h1-eth0
查看配置情况
ifconfig
可以看到虚拟主机h1已经成功配置。
五、测试连通性:
5.1 ping IP地址。
ping 175.27.8.138
腾讯(www.qq.com)IP地址
5.2 ping网址。
可以看到IP地址已经ping通,但在使用ping www.qq.com是发现不通,这是因为域名服务器未设置好。可以按以下步骤设置:
打开域名配置文件:
sudo vim /etc/resolv.conf
按insert键进行编辑,将其中的nameserver改为相应的域名服务器地址(最好用自己物理网卡中的DNS服务器,否则连通速度会较慢),然后按Esc键,输入:wq,保存退出。
此时,在终端输入ping www.qq.com即可ping通。
ping www.qq.com
5.3 打开网页。
也可以在终端打开相应网页,因虚拟终端无浏览器,可以使用w3m baidu.com打开相应网页。
w3m baidu.com
如图:
备注:系统可能会自动将域名地址改回去,若仍出现打不开网页和网址ping不通的情况,可再次按以上步骤修改域名。