zoukankan      html  css  js  c++  java
  • ovs之组网实验

    介绍

    本示例将创建两个OVS实例和两个主机,其中每个OVS上接入一个主机,OVS实例之间有链路连接,形成一个链状拓扑,如图。在OVS组网完成之后,再通过手动方式添加流表,实现网络通信,从而验证实验可行性。具体步骤如下。

    创建交换机

    root@mininet:~# ovs-vsctl add-br s1
    root@mininet:~# ovs-vsctl add-br s2
    

    添加端口

    root@mininet:~# ovs-vsctl add-port s1 p1 #在交换机s1上添加port设置
    root@mininet:~# ovs-vsctl set Interface p1 ofport_request=10
    root@mininet:~# ovs-vsctl set Interface p1 type=internal
    

    同理,创建交换机sl上的端口p2,s2上的端口p3、p4。

    root@mininet:~# ovs-vsctl add-port s1 p2
    root@mininet:~# ovs-vsctl set Interface p2 ofport_request=11
    root@mininet:~# ovs-vsctl set Interface p2 type=internal
    
    root@mininet:~# ovs-vsctl add-port s2 p3
    root@mininet:~# ovs-vsctl set Interface p3 ofport_request=1
    root@mininet:~# ovs-vsctl set Interface p3 type=internal
    
    root@mininet:~# ovs-vsctl add-port s2 p4
    root@mininet:~# ovs-vsctl set Interface p4 ofport_request=2
    root@mininet:~# ovs-vsctl set Interface p4 type=internal
    

    分别查看添加端口后的交换机

    添加主机

    为了不影响网络中已有地址发生冲突,需要创建Namespace作为实验的终端主机。创建主机之后,需要为其设置虚拟IP,最后将其连接到OVS的数据端口,完成主机接入工作。本实验中,我们创建了hl和h2两个虚拟主机,设置IP分别为192.168.10.10和192.168.10.11,并将这两个主机分别接入到两个OVS实例上。

    root@mininet:~# ip link set p4 netns h2
    root@mininet:~# ip netns exec h2 ip addr add 192.168.10.11/24 dev p4
    root@mininet:~# ip netns exec h2 ifconfig p4 promisc up
    
    root@mininet:~# ip link set p1 netns h1
    root@mininet:~# ip netns exec h1 ip addr add 192.168.10.10/24 dev p1
    root@mininet:~# ip netns exec h1 ifconfig p1 promisc up
    
    
    

    创建交换机链路

    首先,需要将对应的端口设置为patch类型

    root@mininet:~# ovs-vsctl set interface p2 type=patch
    root@mininet:~# ovs-vsctl set interface p3 type=patch
    

    创建p2到p3的内部链路,命令如下

    root@mininet:~# ovs-vsctl set interface p2 options:peer=p3
    root@mininet:~# ovs-vsctl set interface p3 options:peer=p2
    

    最后,还需要向交换机添加对应的流表项,将交换机sl从10端口进入的数据转发到11端口,反向同理,s2操作同s1,具体操作如下。

    root@mininet:~# ovs-ofctl add-flow s1 "in_port=10,actions=output:11"
    root@mininet:~# ovs-ofctl add-flow s1 "in_port=11,actions=output:10"
    root@mininet:~# ovs-ofctl add-flow s2 "in_port=2,actions=output:1"
    root@mininet:~# ovs-ofctl add-flow s2 "in_port=1,actions=output:2"
    

    创建完成之后,查看流表

    在Network Namespace h1环境下执行ping 192.168.10.11的操作

    ovs命令 https://blog.csdn.net/rocson001/article/details/73163041

  • 相关阅读:
    数据库创建索引的缺点,和什么时候不该创建索引
    创建数据库,表,索引,删除索引,查看表中的索引和如何使用表中的索引
    java容器中 哪些是线程安全的
    java中集合类详解
    高并发 问题怎么解决
    数据库20个问题(关于事务、存储引擎、索引、悲观锁乐观锁)
    数据库事务(什么是事务)
    Application对象详解
    get和post 两种基本请求方式的区别
    BZOJ1003物流運輸 DP + SPFA
  • 原文地址:https://www.cnblogs.com/mrwuzs/p/10242737.html
Copyright © 2011-2022 走看看