1. 使用vnc连接对应的虚拟机
地址 | 远程连接密码 | 账户 | 密码 |
---|---|---|---|
172.20.4.91:5911 | njnu01 | stu1 | stu1 |
172.20.4.91:5912 | njnu02 | stu2 | stu2 |
172.20.4.91:5913 | njnu03 | stu3 | stu3 |
2. 新建example.py文件,
#跳转到根目录
cd ~
#创建Project文件夹以存储实验文件
mkdir Project
#打开Project文件夹
cd Project/
#创建example.py
vim example.py
输入一下内容,无法输入的按一下“i”或者“ins”键,进入编辑模式
from mininet.net import Mininet
from mininet.link import TCLink
from mininet.cli import CLI
def main():
net = Mininet(link=TCLink)
h0 = net.addHost( 'h0' )
h1 = net.addHost( 'h1' )
h2 = net.addHost( 'h2' )
r0 = net.addHost( 'r0')
net.addLink(h0,r0,port1=0,port2=0,delay= '5ms' )
net.addLink(h1,r0, port1=0,port2=1,delay= '3ms')
net.addLink(h2,r0,port1=0, port2=2,delay= '3ms')
net.start()
CLI(net)
if __name__== '__main__':
main()
输入完毕后,按Esc键,输入“:wq”,回车。
表示退出编辑模式,保存退出
3. 修改文件权限
sudo chmod 775 example.py
如果出现"[sudo] password for test:",则需输入账户的密码
4. 运行example.py文件,启动mininet。输入net命令查看配置的网络拓扑是否生效
sudo python example.py
net
5. 接下来开始配置每台主机的ip地址,使用xterm+主机名的命令打开每台主机的终端,利用ifconfig命令进行ip地址的配置
xterm h0 #打开h0的终端
ifconfig #在h0终端中输入,查询h0的IP地址等信息
xterm h1 #打开h1的终端
ifconfig #在h1终端中输入,查询h1的IP地址等信息
类似的打开h2,r0终端
修改主机h1地址为100.0.0.10
sudo ifconfig h1-eth0 100.0.0.10
修改主机h2地址为200.0.0.20
sudo ifconfig h2-eth0 200.0.0.20
修改路由器的eth0端口地址:10.0.0.100,eth1:100.0.0.1,eth2:200.0.0.1
sudo ifconfig r0-eth0 10.0.0.100
sudo ifconfig r0-eth1 100.0.0.1
sudo ifconfig r0-eth2 200.0.0.1
6. 此时用ping命令测试一下h0到h1和h2的联通性,发现显示网络不可达
#在h0终端输入
#每个人的IP地址可能不同,自己确认h0,h1,h2地址
ping 100.0.0.10 #h0到h1
ping 200.0.0.10 #h0到h2
7.对三台主机进行默认路由的配置
oute add命令的主要作用是加入静态路由,通常的格式是:
route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2
參数含义:destination mask gateway metric interface /* 能够缩写 */
destination【网段地址】
mask【子网掩码】
gateway【网关地址】 gw
metric 【路由跳数】
if【port号】
route add 134.105.0.0 mask 255.255.0.0 134.105.64.1
意思是:所有须要发往134.105.0.0/16地址段的IP数据包。所有由134.105.64.1路径转发。
修改h0的网关为10.0.0.100
sudo route add default gw 10.0.0.100
修改h1的网关为100.0.0.1
sudo route add default gw 100.0.0.1
修改h2的网关为200.0.0.1
sudo route add default gw 200.0.0.1
8.开启r0主机作为路由器的ipv4路由转发功能
sudo sysctl net.ipv4.ip_forward=1
9. 配置完成,再次使用h0客户机去ping h1与h2服务器,发现已经可以ping通