实验参考
实验步骤
1 预先配置
登录两台 Mininet 虚拟机或者是已安装 OpenvSwitch 的虚拟机.
查看两台虚拟机 IP
#ifconfig
验证 OvS 服务是否被启动好:
# ps -ef|grep ovs
OvS 已启动.
步骤 1: 分别在两台机器上创建网桥:
- #sudo ovs-vsctl add-br br0
- #sudo ovs-vsctl add-br br1
步骤 2:mn 虚拟机上将 eth0 的 IP 赋给 br1:
- #ifconfig eth0 0 up
- #ifconfig br1 30.0.1.13 up
给 mn 虚拟机的 br1 重新添加路由:
#route add default gw 30.0.1.12
mn 的路由如下显示:
- #sudo ovs-vsctl add-port br1 eth0
- #ovs-vsctl show
步骤 3:mn1 虚拟机上将 eth0 的 IP 赋给 br1:
- #ifconfig eth0 0 up
- #ifconfig br1 30.0.1.6 up
给 mn1 虚拟机的 br1 重新添加路由:
#route add default gw 30.0.1.5
mn1 虚拟机的路由显示如下:
- #ovs-vsctl add-port br1 eth0
- #ovs-vsctl show
前期实验环境已准备好.
2 设置 VxLAN 实现同一网段的通信
在 mn 虚拟机上给 br0 配置一个 IP:
# ifconfig br0 30.0.0.2/8 up
在 mn1 虚拟机上给 br0 配置一个与 mn 虚拟机上 br0 同一网段的 IP 地址:
# ifconfig br0 30.0.0.3/8 up
验证 br1 和 br1 的 IP 是否通信: Mn 虚拟机的 br1 ping mn1 虚拟机的 br1, 是可以 ping 通的:
mn 虚拟机 ping mn1 虚拟机的 br0, 是 ping 不通的:
Br0 和另一台设备的 br0 不能通信, 搭建隧道的目的就是让两台机器的 br0(数据层面) 能够实现通信.
实验本身是在虚拟机中操作, 所以实验中 br0 桥上没有再下挂主机, 分别给两台虚拟机的 br0 指定两个相同网段的 IP, 然后通过搭建 VxLAN 隧道让这两个网桥能够实现通信,
设置如下: 验证 mn 虚拟机的 br0 和 mn1 虚拟机的 br0 是否通信:
在 mn 虚拟机上创建 VxLAN:
# ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=30.0.1.6
在 mn1 虚拟机上创建 VxLAN:
# ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=30.0.1.13
验证 mn 虚拟机的 br0 和 mn1 虚拟机的 br0 是否通信:
验证经过设置 VxLAN 后, 两个虚拟机的同一网段数据层面是通信的.
设置 VxLAN 实现不同网段的通信
在 mn 虚拟机上给 br0 配置一个 IP:
# ifconfig br0 30.0.0.1/8 up
在 mn1 虚拟机上给 br0 配置一个与 mn 虚拟机上 br0 不是同一网段的 IP 地址:
# ifconfig br0 40.0.0.1/8 up
验证 mn 虚拟机的 br0 和 mn1 虚拟机 br0 的 IP 是否通信:
mn 虚拟机 ping mn1 虚拟机的 br0, 是 ping 不通的:
br0 和另一台设备的 br0 不能通信, 搭建隧道的目的就是让两台机器的 br0(数据层面) 能够实现通信.
实验本身是在虚拟机中操作, 分别给两台虚拟机的 br0 指定两个不同网段的 IP, 然后通过搭建 VxLAN 隧道及设置路由让这两个网桥能够实现通信, 设置如下:
在 mn 虚拟机上创建 VxLAN:
# ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=20.0.4.195
在 mn1 虚拟机上创建 VxLAN:
# ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=20.0.4.196
VxLAN 设置好后, mn 虚拟机的 br0 和 mn1 虚拟机的 br0 仍不能通信通信, 需要设置静态路由才能通信, 如下设置:
在 mn 虚拟机上添加路由:
# route add -net 40.0.0.0 netmask 255.0.0.0 gw 30.0.0.1 dev br0
在 mn1 虚拟机上添加路由:
# route add -net 30.0.0.0 netmask 255.0.0.0 gw 40.0.0.1 dev br0
验证 mn 虚拟机的 br0 和 mn1 虚拟机的 br0 是否通信:
验证经过设置 VxLAN 及路由后, 两个虚拟机的不同网段数据层面是通信的.
实验总结
在实验参考中, 我按照步骤来, 但是两个虚拟机的 ping 总是无法连接. 后来做了多次实验, 发现将 ifconfig br1 20.0.4.196/29 up 改为 ifconfig br1 20.0.4.196 up 才能连接. 不知道为什么?
来源: http://www.bubuko.com/infodetail-3408845.html