美文网首页
OVS Vlan Tag

OVS Vlan Tag

作者: 苏苏林 | 来源:发表于2022-01-13 14:05 被阅读0次

    传统的交换机设备都是支持VLAN隔离的,OpenvSwitch作为一个主流的虚拟交换机,自然也是支持VLAN相关的实现的。OVS交换机内部也可以通过VLAN ID来隔离交换机的各个端口。

    如果一个OVS交换机的端口设置了tag标签(该端口处于access模式),数据包从该端口进入到交换机内部时,该数据包就会被打上对应的tag,于是该数据包也就只能从设置了相同tag的端口发出,而在出交换机的时候,数据包上的tag会被删除。这样就实现了交换机内部的一个隔离。

    但是流表就像三体中的归零者一样,可以打破物理定律,在不修改报文信息的情况下,实现在任意vlan之间转发报文。
    做个测试:

    [root@localhost ~]# ovs-vsctl show
    84b2b2a2-c947-409b-aef4-20ca802a2238
        Bridge br0
            Port veth21
                Interface veth21
            Port br0
                Interface br0
                    type: internal
            Port veth11
                tag: 2
                Interface veth11
            Port veth31
                tag: 3
                Interface veth31
    

    veth11 和 veth31属于打了不同的vlan tag,使用“NORMAL”action时,网络时隔离的。
    配置如下流表,未修改vlan头,也是能通的。

    [root@localhost ~]# ovs-ofctl dump-flows br0
    cookie=0x0, duration=23.064s, table=0, n_packets=7, n_bytes=574, priority=90,in_port=veth31 actions=output:veth11
    cookie=0x0, duration=15.975s, table=0, n_packets=7, n_bytes=574, priority=90,in_port=veth11 actions=output:veth31
    

    配置如下流表,strip掉vlan头也是ok的。

    [root@localhost ~]# ovs-ofctl dump-flows br0
     cookie=0x0, duration=29.602s, table=0, n_packets=7, n_bytes=574, priority=90,in_port=veth31 actions=strip_vlan,output:veth11
     cookie=0x0, duration=12.287s, table=0, n_packets=7, n_bytes=574, priority=90,in_port=veth11 actions=output:veth31
    

    相关文章

      网友评论

          本文标题:OVS Vlan Tag

          本文链接:https://www.haomeiwen.com/subject/jtpncrtx.html