• ovs流表机制(四)用vxlan实现同网段通信


    [root@kunpeng82 devuser]# ovs-vsctl show
    25581fe4-f414-4c0a-a9eb-5d04cc658c0c
        Bridge "vswitch0"
            Port "tap3_br"
                Interface "tap3_br"
            Port "vswitch0"
                Interface "vswitch0"
                    type: internal
            Port "tap0_br"
                Interface "tap0_br"
        ovs_version: "2.12.0"
    1、现在在kunpen82节点上配置vxlan
    ovs-vsctl add-port vswitch0 vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=10.10.18.216 options:key=flow

    [root@kunpeng82 devuser]# ovs-vsctl show
    25581fe4-f414-4c0a-a9eb-5d04cc658c0c
    Bridge "vswitch0"
    Port "tap3_br"
    Interface "tap3_br"
    Port "vswitch0"
    Interface "vswitch0"
    type: internal
    Port "vxlan1"
    Interface "vxlan1"
    type: vxlan
    options: {key=flow, remote_ip="10.10.18.216"}
    Port "tap0_br"
    Interface "tap0_br"
    ovs_version: "2.12.0"

    [root@kunpeng82 devuser]# ovs-ofctl dump-flows vswitch0
    cookie=0x0, duration=776.819s, table=0, n_packets=32, n_bytes=2464, priority=0 actions=NORMAL

    [root@kunpeng82 devuser]# ovs-vsctl get Interface tap3_br ofport
    2
    [root@kunpeng82 devuser]# ovs-vsctl get Interface vxlan1 ofport
    3

    [root@kunpeng82 devuser]# ovs-vsctl get Interface tap0_br ofport
    1

    2、新建一个节点ovs216

    [root@ovs216 ~]# cat test1.sh
    ip netns add ns1
    ip link add tap0 type veth peer name tap0_br
    ip link set tap0 netns ns1
    ovs-vsctl add-br vswitch0
    ip netns exec ns1 ip link set tap0 up
    ip netns exec ns1 ip link set lo up
    ip link set tap0_br up

    
    

    ip netns exec ns1 ip addr add 192.168.1.210/24 dev tap0
    ip netns exec ns1 route add -net 192.168.1.0 netmask 255.255.255.0 dev tap0

    
    

    ovs-vsctl add-port vswitch0 tap0_br

    
    

    ovs-vsctl add-port vswitch0 vxlan1 -- set interface vxlan1 type=vxlan options:remote_ip=10.10.16.81 options:key=flow

    
    

    [root@ovs216 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:0a:1e:35 brd ff:ff:ff:ff:ff:ff
    inet 10.10.18.216/24 brd 10.10.18.255 scope global noprefixroute dynamic eth0
    valid_lft 65736sec preferred_lft 65736sec
    inet6 fe80::f816:3eff:fe0a:1e35/64 scope link
    valid_lft forever preferred_lft forever
    3: tap0_br@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether be:31:dc:c3:35:36 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::bc31:dcff:fec3:3536/64 scope link
    valid_lft forever preferred_lft forever
    5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 02:3a:c8:96:dc:3b brd ff:ff:ff:ff:ff:ff
    6: vswitch0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default qlen 1000
    link/ether 12:a3:09:cc:11:49 brd ff:ff:ff:ff:ff:ff
    7: vxlan_sys_4789: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65000 qdisc noqueue master ovs-system state UNKNOWN group default qlen 1000
    link/ether 0e:f2:38:5c:be:4c brd ff:ff:ff:ff:ff:ff
    inet6 fe80::cf2:38ff:fe5c:be4c/64 scope link
    valid_lft forever preferred_lft forever


    [root@ovs216
    ~]# ovs-vsctl show 0608fdfe-ab3f-41d8-a439-b0dba68f452b Bridge "vswitch0" Port "vxlan1" Interface "vxlan1" type: vxlan options: {key=flow, remote_ip="10.10.16.82"} Port "tap0_br" Interface "tap0_br" Port "vswitch0" Interface "vswitch0" type: internal ovs_version: "2.12.0"

    [root@ovs216 ~]# ovs-ofctl dump-flows vswitch0
    cookie=0x0, duration=13327.894s, table=0, n_packets=32, n_bytes=1896, priority=0 actions=NORMAL

    
    

    [root@ovs216 ~]# ovs-vsctl get Interface vxlan1 ofport
    2

    [root@ovs216 ~]# ovs-vsctl get Interface tap0_br ofport
    1

     

    [root@ovs216 ~]# ip netns exec ns1 ping 192.168.1.200
    PING 192.168.1.200 (192.168.1.200) 56(84) bytes of data.
    64 bytes from 192.168.1.200: icmp_seq=1 ttl=64 time=0.731 ms
    64 bytes from 192.168.1.200: icmp_seq=2 ttl=64 time=0.291 ms
    ^C
    --- 192.168.1.200 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1028ms
    rtt min/avg/max/mdev = 0.291/0.511/0.731/0.220 ms


    ping通
    [root@kunpeng82 devuser]# ovs-vsctl list interface tap3_br
    _uuid               : 9fe5705c-f864-42e9-87e1-671062bba462
    admin_state         : up
    bfd                 : {}
    bfd_status          : {}
    cfm_fault           : []
    cfm_fault_status    : []
    cfm_flap_count      : []
    cfm_health          : []
    cfm_mpid            : []
    cfm_remote_mpids    : []
    cfm_remote_opstate  : []
    duplex              : full
    error               : []
    external_ids        : {}
    ifindex             : 8
    ingress_policing_burst: 0
    ingress_policing_rate: 0
    lacp_current        : []
    link_resets         : 0
    link_speed          : 10000000000
    link_state          : up
    lldp                : {}
    mac                 : []
    mac_in_use          : "52:85:e1:a0:f2:69"
    mtu                 : 1500
    mtu_request         : []
    name                : "tap3_br"
    ofport              : 2
    ofport_request      : []
    options             : {}
    other_config        : {}
    statistics          : {collisions=0, rx_bytes=3498, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_over_err=0, rx_packets=47, tx_bytes=3918, tx_dropped=0, tx_errors=0, tx_packets=53}
    status              : {driver_name=veth, driver_version="1.0", firmware_version=""}
    type                : ""
  • 相关阅读:
    读书笔记 effective c++ Item 53 关注编译器发出的警告
    读书笔记 effective c++ Item 52 如果你实现了placement new,你也要实现placement delete
    读书笔记 effective c++ Item 51 实现new和delete的时候要遵守约定
    读书笔记 effective c++ Item 50 了解何时替换new和delete 是有意义的
    读书笔记 effective c++ Item 49 理解new-handler的行为
    读书笔记 effective c++ Item 48 了解模板元编程
    读书笔记 effective c++ Item 47 使用traits class表示类型信息
    读书笔记 effective c++ Item 46 如果想进行类型转换,在模板内部定义非成员函数
    读书笔记 effective c++ Item 45 使用成员函数模板来接受“所有兼容类型”
    读书笔记 effective c++ Item 44 将与模板参数无关的代码抽离出来
  • 原文地址:https://www.cnblogs.com/dream397/p/12626646.html
Copyright © 2020-2023  润新知