• 一文读懂常见云计算网络

    Local network(本地网络):一个只允许在本服务器内通信的虚拟网络,不能跨服务器通信。主要用于单节点上测试,只能做单节点的部署(all-in-one),这是因为此网络模式下流量并不能通过真实的物理网卡流出,integration bridge并没有与真实的物理网卡做mapping,只能保证同一主机上的vm是连通的。

    Flat network:基于不使用VLAN 的物理网络实现的虚拟网络,每个物理网络最多只能实现一个虚拟网络。ID数只有1个,通常不用于数据网络,因为其不具备租户隔离型。即所有的虚拟机都在一个广播域。比较传统的网络模式,需求较少。

    VLAN network(虚拟局域网) :基于物理VLAN 网络实现的虚拟网络。共享同一个物理网络的多个 VLAN 网络是相互隔离的,甚至可以使用重叠的 IP 地址空间。

    802.1Q 定义了 VLAN ID 占 12-bit,有效的VLAN ID 范围是 1 到 4094。

    在规模不大的私有云中,往往是用 VLAN 模式,简单、可靠、能够满足规模要求;而在大型的私有云或者公有云中,往往使用VxLAN。

    GRE network(通用路由封装网络):一个使用GRE 封装网络包的虚拟网络。GRE 封装的数据包基于 IP 路由表来进行路由,因此 GRE network 不和具体的物理网络绑定。

    RFC 2637定义的 GRE 的 ID 占 24-bit,ID数目为16777216(1600万)

    在两个主机上面分别运行VM,并且在这个VM之间创建一个隧道。如果没有GRE隧道,两个VM就无法连接。在主机之间创建GRE隧道的简单步骤:

    1)主机1配置如下:

    1. ovs-vsctl add-br brgre

    2. ovs-vsctl add-br brvm

    3. ovs-vsctl add-port brgre eth0

    4. ifconfig eth0 0

    5. ifconfig brgre 192.168.1.100 netmask 255.255.255.0

    6. route add default gw 192.168.1.1 brgre

    7. ifconfig brvm 10.1.2.10 netmask 255.255.255.0

    8. ovs-vsctl add-port brvm gre1 — set interface gre1 type=gre options:remoteip=192.168.1.111

    2)主机2配置如下:

    1.ovs-vsctl add-br brgre

    2. ovs-vsctl add-br brvm

    3. ovs-vsctl add-port brgre eth0

    4. ifconfig eth0 0

    5. ifconfig brgre192.168.1.111netmask255.255.255.0

    6. route add default gw192.168.1.1brgre

    7. ifconfig brvm10.1.2.11netmask255.255.255.0

    8. ovs-vsctl add-port brvm gre1 — set interface gre1 type=gre options:remoteip=192.168.1.100

    在每台主机中创建2个桥,其中brvm用于仿真虚拟机,另一个brgre用作与其他主机的做隧道(VTEP)连接。eth0连接brgre,brgre绑定IP用于实现隧道。

    GRE 技术本身还是存在一些不足之处:

    (1)Tunnel 的数量问题

    GRE 是一种点对点(point to point)标准。Neutron 中,所有计算和网络节点之间都会建立 GRE Tunnel。当节点不多的时候,这种组网方法没什么问题。但是,当在很大的数据中心中有成千上万个节点的时候,使用标准 GRE的话, tunnels 数量太多,影响性能。

    (2)扩大的广播域

    GRE 不支持组播,因此一个网络(同一个GRE TunnelID)中的一个虚机发出一个广播帧后,GRE 会将其广播到所有与该节点有隧道连接的节点。

    (3)GRE 封装的IP包的过滤和负载均衡问题

    目前还是有很多的防火墙和三层网络设备无法解析GREHeader,因此它们无法对 GRE 封装包做合适的过滤和负载均衡。

    VXLAN network(虚拟可扩展网络):基于VXLAN 实现的虚拟网络。同 GRE network 一样,VXLAN network 中 IP 包的路由也基于 IP 路由表,也不和具体的物理网络绑定。

    RFC 7348 定义的 VxLAN 的 ID 占 24-bit,ID数目为16777216(1600万),VXLAN数量可达约1600万个,完全可以满足公有云多租户的网络场景。

    VXLAN全称Virtual eXtensible LAN,是一种覆盖网络技术或隧道技术。VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP/MAC作为outer-header进行封装,然后在物理IP网上传输,到达目的地后由隧道终结点解封并将数据发送给目标虚拟机。一套利用 UDP 协议作为底层传输协议的 Overlay 实现。一般认为作为 VLan 技术的延伸或替代者。

    作者:杨武 新钛云服研发总监

    十年云研发和架构经验,中国科学技术大学软件工程全日制硕士研究生学历。曾在IBM、土豆网、微烛云先后担任云计算研发工程师、架构师,技术总监等职务,参与并主导过产品设计、研发、测试和运维(DevOps)等完整产品生命周期流程,有上万台物理服务器规模的OpenStack集群架构实战经验,对云平台的瓶颈和性能优化有丰富经验。精通OpenStack、CloudForms、Kubernetes、Ceph、KVM、Docker、Solaris(SmartOS)等云平台及虚拟化技术。

    «
    »
以专业成就每一位客户,让企业IT只为效果和安全买单

以专业成就每一位客户,让企业IT只为效果和安全买单