zoukankan      html  css  js  c++  java
  • flannel网络的VXLAN及host-gw

    VXLAN是Linux内核本身支持的一种网络虚拟化技术,是内核的一个模块,在内核态实现封装解封装,构建出覆盖网络,其实就是一个由各宿主机上的Flannel.1设备组成的虚拟二层网络。

    由于VXLAN由于额外的封包解包,导致其性能较差,所以Flannel就有了host-gw模式,即把宿主机当作网关,除了本地路由之外没有额外开销,性能和calico差不多,由于没有叠加来实现报文转发,这样会导致路由表庞大。因为一个节点对应一个网络,也就对应一条路由条目。

    配置Host-gw:(在etcd集群中任意节点)

    [root@node203 etcd]# ./etcdctl set /coreos.com/network/config '{"Network": "172.7.0.0/16", "Backend": {"Type": "host-gw"}}'

    host-gw虽然VXLAN网络性能要强很多。,但是种方式有个缺陷:要求各宿主机node节点必须在同一个二层网络中。

    物理节点必须在同一网段中。这样会使得一个网段中的主机量会非常多,万一发一个广播报文就会产生干扰。
    在私有云场景下,宿主机不在同一网段是很常见的状态,所以就不能使用host-gw了。

     #https://www.cnblogs.com/liucx

    Flnnel的VXLAN模式有两种:

    VXLAN: 原生的VXLAN,即扩展的虚拟LAN
    Directrouting:直接路由型

    使用Vxlan模式flanneld创建了一个flannel.1接口,它是专门用来封装隧道协议的

     (1)配置Vxlan模式:

    [root@node203 etcd]#./etcdctl set /coreos.com/network/config  '{"Network": "172.7.0.0/16", "Backend": {"Type": "VxLAN"}}'

    修改后记得重启flanneld

    route -n  是没有路由的,有一个flannel.1网卡,通过flannel.1建立虚拟隧道通信

     (2)配置Directrouting直接路由模式:((智能判定)推荐)

    [root@node203 etcd]#../etcdctl set /coreos.com/network/config  '{"Network": "172.7.0.0/16", "Backend": {"Type": "VxLAN","Directrouting": true}}'

    修改后记得重启flanneld

    VXLAN支持host-gw,如果两个节点在同一网段时使用host-gw通信,如果不在同一网段中,即 当前pod所在节点与目标pod所在节点中间有路由器,就使用VXLAN这种方式,使用叠加网络。
    结合了Host-gw和VXLAN,这就是VXLAN的Directrouting模式

  • 相关阅读:
    python实现矩阵的点乘,转置与求逆
    C#用嵌套的 for 循环实现打印图形
    visual studio 2019的安装方法
    人工智能之python实现函数微积分
    人工智能之python实现矩阵运算
    人工智能之实现简单神经网络之数据解析和可视化
    人工智能之实现简单神经网络之权重更新算法
    ubuntu服务器版相关命令
    php的windows各版本客户端下载
    谷歌快捷工具地址
  • 原文地址:https://www.cnblogs.com/liucx/p/13044838.html
Copyright © 2011-2022 走看看