一、案例目的

掌握Open vSwitch下发流表操作;
掌握添加、删除流表命令以及设备通信的原理。
Mininet创建一个默认的树形拓扑并指定Mininet的控制器,进行基本的添加、删除流表操作,使网络实现网络通信和不通信。

二、网络拓扑

三、操作步骤

1.创建流表操作环境

1.在custom目录下自定义拓扑脚本exper1.py

#!/usr/bin/python

from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import RemoteController
from mininet.link import TCLink
from mininet.util import dumpNodeConnections

class MyTopo(Topo):
    "Simple topology example."
    
    def __init__(self):
        "Create custom topo."
        
        # Initialize topology
        Topo.__init(self)
        
        # Add hosts and switches
        Host1=self.addHost('h1')
        Host2=self.addHost('h2')
        Host3=self.addHost('h3')
        Switch1=self.addSwitch('s1')
        Switch2=self.addSwitch('s2')
        
        # Add links
        self.addLink(Host1,Switch1)
        self.addLink(Host2,Switch1)
        self.addLink(Host3,Switch2)
        self.addLink(Switch1,Switch2)

topos={'mytopo':(lambda:MyTopo())}

2.创建拓扑:

sudo mn --custom exper1.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633

  其中 ip=127.0.0.1表示使用的是本地 IP地址

2、查看流表

1.查看静态流表(发现没有流表)

dpctl dump-flows

2.这时候输入pingall指令,发现主机之间是没法通信的

3.先开启ryu,然后再pingall,这时是可以进行主机间通信的

ryu-manager simple_switch.py

4.因为ping操作本身是一个通信的过程,经过通信,交换机里便会留下流表,这时候交换机里就已经存在流表了

3.添加流表

1.删除之前的所有流表,此时流表为空

dpctl del-flows

2.手动添加流表

添加 输入端口为1,输出端口为2 的流表

dpctl add-flow in_port=1,actions=output:2

添加 输入端口为2,输出端口为1 的流表

dpctl add-flow in_port=2,actions=output:1

3.这时候 h1和h2是可以相互通信的

 4.但是h1  h2  是无法与h3相互通信的,因为没有添加3号端口的流表

5.于是我重新加入了6条流表,保证 1 2 3 三个端口可以相互作为进出端口,但是只能查看到每个交换机里面只有3个流表,且主机之间无法相互通信,想知道是为什么?

4.删除流表

1.删除交换机 s1 中端口号为 1 的流表

sh ovs-ofctl del-flows s1 in_port=1

2.删除所有交换机中输入端口号为 2 的流表

dpctl del-flows in_port=2

5.添加丢弃数据包的流表

让交换机丢弃从 1 号端口发来的所有数据包

1.先删除所有的流表

2.虽然删除了,主机之前还是可以相互通信的  因为pingall是控制器下发的流表

3.添加输入端口为 1 的drop流表

dpctl add-flow in_port=1,action=drop

4.虽然添加成功,但仍旧可以ping通,因为原本的流表(刚刚pingall的一下,控制器下发了流表)在前面,优先级较高

5.需要删除所有的流表,并再次添加相应的 drop 流表,便可以实现 drop 的功能,使得所有的主机之间不能相互通信

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐