目录
[1. 任务概览](#1. 任务概览)
[2. 创建py拓扑文件](#2. 创建py拓扑文件)
[3.1 sw添加流表项](#3.1 sw添加流表项)
[3.2 sw中监测数据](#3.2 sw中监测数据)
1. 任务概览

2. 创建py拓扑文件


查看网络基础信息

3.手动在交换机上添加流表项

3.1 sw添加流表项
ovs-ofctl add-flow s1 arp,arp_op=1,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,actions=output:2
ovs-ofctl:OVS 的 OpenFlow 管理工具add-flow:添加流表项s1:目标交换机名称- 匹配条件:
arp:匹配 ARP 协议arp_op=1:ARP 请求(ARP Request)arp_spa=10.0.0.1:ARP 源 IP 地址为 10.0.0.1arp_tpa=10.0.0.2:ARP 目标 IP 地址为 10.0.0.2
actions=output:2:将匹配的数据包从s1的port 2端口转发出去
bash
运行
ovs-ofctl add-flow s1 arp,arp_op=1,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,actions=output:1
- 匹配:源 IP 10.0.0.2、目标 IP 10.0.0.1 的 ARP 请求
- 动作:从
s1的port 1端口转发
bash
运行
ovs-ofctl add-flow s1 arp,arp_op=2,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,actions=output:1
- 匹配:源 IP 10.0.0.2、目标 IP 10.0.0.1 的 ARP 响应(
arp_op=2) - 动作:从
s1的port 1端口转发
bash
运行
ovs-ofctl add-flow s1 arp,arp_op=2,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,actions=output:2
- 匹配:源 IP 10.0.0.1、目标 IP 10.0.0.2 的 ARP 响应
- 动作:从
s1的port 2端口转发
bash
运行
ovs-ofctl add-flow s1 icmp,nw_src=10.0.0.1,nw_dst=10.0.0.2,icmp_type=8,icmp_code=0,actions=output:2
- 匹配:源 IP 10.0.0.1、目标 IP 10.0.0.2 的 ICMP Echo 请求(ping 请求,
icmp_type=8) - 动作:从
s1的port 2端口转发
bash
运行
ovs-ofctl add-flow s1 icmp,nw_src=10.0.0.2,nw_dst=10.0.0.1,icmp_type=0,icmp_code=0,actions=output:1
- 匹配:源 IP 10.0.0.2、目标 IP 10.0.0.1 的 ICMP Echo 响应(ping 回复,
icmp_type=0) - 动作:从
s1的port 1端口转发
TypeScript
osboxes@osboxes:~$ sudo -i
[sudo] password for osboxes:
root@osboxes:~# ovs-ofctl add-flow s1 arp,arp_op=1,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,actions=output:2
root@osboxes:~# ovs-ofctl add-flow s1 arp,arp_op=1,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,actions=output:1
root@osboxes:~# ovs-ofctl add-flow s1 arp,arp_op=2,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,actions=output:1
root@osboxes:~# ovs-ofctl add-flow s1 arp,arp_op=2,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,actions=output:2
root@osboxes:~# ovs-ofctl add-flow s1 icmp,nw_src=10.0.0.1,nw_dst=10.0.0.2,icmp_type=8,icmp_code=0,actions=output:2
root@osboxes:~# ovs-ofctl add-flow s1 icmp,nw_src=10.0.0.2,nw_dst=10.0.0.1,icmp_type=0,icmp_code=0,actions=output:1
root@osboxes:~#
root@osboxes:~# ovs-ofctl add-flow s2 arp,arp_op=1,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,actions=output:3
root@osboxes:~# ovs-ofctl add-flow s2 arp,arp_op=1,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,actions=output:1
root@osboxes:~# ovs-ofctl add-flow s2 arp,arp_op=2,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,actions=output:3
root@osboxes:~# ovs-ofctl add-flow s2 arp,arp_op=2,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,actions=output:1
root@osboxes:~# ovs-ofctl add-flow s2 icmp,nw_src=10.0.0.1,nw_dst=10.0.0.2,icmp_type=8,icmp_code=0,actions=output:3
root@osboxes:~# ovs-ofctl add-flow s2 icmp,nw_src=10.0.0.2,nw_dst=10.0.0.1,icmp_type=0,icmp_code=0,actions=output:2
root@osboxes:~#
root@osboxes:~#
root@osboxes:~# ovs-ofctl add-flow s3 icmp,nw_src=10.0.0.2,nw_dst=10.0.0.1,icmp_type=0,icmp_code=0,actions=output:1
root@osboxes:~#
root@osboxes:~# ovs-ofctl dump-flows s1
cookie=0x0, duration=502.850s, table=0, n_packets=0, n_bytes=0, arp,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,arp_op=1 actions=output:"s1-eth2"
cookie=0x0, duration=473.193s, table=0, n_packets=0, n_bytes=0, arp,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,arp_op=1 actions=output:"s1-eth1"
cookie=0x0, duration=448.571s, table=0, n_packets=0, n_bytes=0, arp,arp_spa=10.0.0.2,arp_tpa=10.0.0.1,arp_op=2 actions=output:"s1-eth1"
cookie=0x0, duration=426.004s, table=0, n_packets=0, n_bytes=0, arp,arp_spa=10.0.0.1,arp_tpa=10.0.0.2,arp_op=2 actions=output:"s1-eth2"
cookie=0x0, duration=343.020s, table=0, n_packets=0, n_bytes=0, icmp,nw_src=10.0.0.1,nw_dst=10.0.0.2,icmp_type=8,icmp_code=0 actions=output:"s1-eth2"
cookie=0x0, duration=317.065s, table=0, n_packets=0, n_bytes=0, icmp,nw_src=10.0.0.2,nw_dst=10.0.0.1,icmp_type=0,icmp_code=0 actions=output:"s1-eth1"
root@osboxes:~# ovs-ofctl dump-flows s2

3.2 sw中监测数据

