交换机创建和端口 p0 的配置
创建一个新的 OVS 交换机:
sudo ovs-vsctl add-br ovs-switch
创建一端口 p0,设置端口 p0 的 OpenFlow 端口编号为 100
sudo ovs-vsctl add-port ovs-switch p0 -- set Interface p0 ofport_request=100
注:由于Ubuntu并没有 p0 端口,给ovs-switch添加端口 p0会报一个错,这个不影响后续实验
设置网络接口设备的类型为“internal”
注:对于 internal 类型的的网络接口,OVS 会同时在 Linux 系统中创建一个可以用来收发数据的模拟网络设备。可以为这个网络设备配置 IP 地址、进行数据监听等等。
sudo ovs-vsctl set Interface p0 type=internal
查看结果
sudo ethtool -i p0
虚拟网络空间的配置
为了避免网络接口上的地址和本机已有网络地址冲突,我们可以创建一个虚拟网络空间 ns0,把 p0 接口移入网络空间 ns0,并配置 IP 地址为 192.168.1.100
sudo ip netns add ns0
sudo ip link set p0 netns ns0
sudo ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0
sudo ip netns exec ns0 ifconfig p0 promisc up
使用同样的方式创建端口p1
端口 | ip地址 | 网络名称空间 | OpenFlow Port Number |
---|---|---|---|
p0 | 192.168.1.100/24 | ns0 | 100 |
p1 | 192.168.1.101/24 | ns1 | 101 |
查看 OVS 交换机
通过sudo ovs-vsctl show
命令查看 OVS 交换机的信息
使用 ovs-ofctl 创建并测试 OpenFlow 命令
查看交换机中的所有 Table:sudo ovs-ofctl dump-tables ovs-switch
查看交换机中的所有流表项:sudo ovs-ofctl dump-flows ovs-switch
查看交换机上的端口信息:sudo ovs-ofctl show ovs-switch
两个端口相互测试:sudo ip netns exec ns0 ping 192.168.1.101
进阶技能
在虚拟机环境下,打开终端运行 Floodlight
创建 1 个交换机连接 4 台主机的拓扑,并连接控制器
打开 floodlight 图像化界面并查看网页中的 topo
在 mininet 中执行 pingall 命令,在网页中查看交换机 s1 的流表
不懂为什么这边看不到流表??????
在网页中给交换机中添加一条流表项,使得 h1 不能访问其他所有主机
原文:https://www.cnblogs.com/cyquen/p/13363690.html