赞
踩
在网络7层协议基础里,
一台主机发送信息时,网关有一套路由规则将目标IP解析到一个端口中,当源IP要出局域网时,要通过NAT协议转换为公网IP,到达目的网关时,目的网关通过NAT将目标IP变成当前局域网IP。
突破VLAN ID数量限制。
突破TOR交换机MAC地址表限制:之前TOR(Top Of Rack)交换机的一个端口连接一个物理主机对应一个MAC地址,但现在交换机的一个端口虽然还是连接一个物理主机但是可能进而连接几十个甚至上百个虚拟机和相应数量的MAC地址。
突破单条网络链路。VxLAN通过UDP封装,在三层网络上传输,可以利用一些基于三层的协议来实现多条线路共同工作(active-active),以实现负载均衡,例如ECMP,LACP。
网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器。
当使用网桥连接两段LAN时,网桥对来自网段1的MAC 帧,首先要检查其终点地址。如果该帧是发往网段1 上某一站的,网桥则不将帧转发到网段2 ,而将其滤除;如果该帧是发往网段2 上某一站的,网桥则将它转发到网段2。
网桥的缺点:
underlay网络是底层物理网络,负责网络之间的数据包传递。
在underlay网络中,各个设备之间必须通过路由协议来保证IP之间的连接性。underlay网络可以是2层,也可以是三层网络。2层网络通常应用于以太网,通过VLAN进行划分。三层网络在同一个自治域使用OSPF、IS-IS等协议进行路由控制,各个域之间采用BGP等协议做路由传递和互联。
underlay在一个较好的可用环境网络场景下适用,也有一些问题:
为了摆脱underlay网络的限制,采用网络虚拟化技术,在underlay网络上构建虚拟的overlay网络。
互相连接的overlay网络设备之间建立隧道,数据包传输出去时,设备为数据包添加新的IP头好隧道头部,并且屏蔽掉内层IP头部,数据包根据新的IP头部进行转发。当数据包到达目的设备后,外部的IP都和隧道头被丢弃,恢复出原始的数据包。
overlay网络协议标准包括:VXLAN,NVGRE,SST,NVO3,EVPN等。
对比项 | Underlay网络 | Overlay网络 |
---|---|---|
数据传输 | 通过网络设备例如路由器、交换机进行传输 | 沿着节点间的虚拟链路进行传输 |
包封装和开销 | 发生在网络的二层和三层 | 需要跨源和目的封装数据包,产生额外的开销 |
报文控制 | 面向硬件 | 面向软件 |
部署时间 | 上线新服务涉及大量配置,耗时多 | 只需更改虚拟网络中的拓扑结构,可快速部署 |
多路径转发 | 因为可扩展性低,所以需要使用多路径转发,而这会产生更多的开销和网络复杂度 | 支持虚拟网络内的多路径转发 |
扩展性 | 底层网络一旦搭建好,新增设备较为困难,可扩展性差 | |
协议 | 以太网交换、VLAN、路由协议(OSPF、IS-IS、BGP等) | VXLAN、NVGRE、SST、GRE、NVO3、EVPN |
多租户管理 | 需要使用基于NAT或者VRF的隔离,这在大型网络中是个巨大的挑战 | 能够管理多个租户之间的重叠IP地址 |
overlay网络的缺点:
- TCP 端口 2377,用来集群管理相关的通信;
- TCP 和 UDP 端口 7946,用来进行节点之间的通信;
- UDP 端口 4789,用来进行进行 overlay 网络上的数据传输。
-- 在主节点初始化docker swarm
docker swarm init
-- 在从节点加入swarm集群
docker swarm join --token SWMTKN-1-3e3cne19my7mcmtv8u3v74j0pvyqbyk0yt2rzp48rozftoobh3-0h0pbf3bxxkqeqk9axfqetfux 172.30.171.123:2377
-- 在任意节点查看swarm
docker info
-- 在主节点创建一个overlay网络
docker network create overlaynet1 --driver overlay --subnet 172.45.0.0/16 --gateway 172.45.0.1
-- 查看swarm群节点
docker node ls
如果创建swarm集群服务,没有指定网络,将会默认连接到ingress网络。建议可以为每个系统的工作应用单独创建overlay网络。
-- 创建docker容器服务测试
docker service create -t --replicas 2 --network overlaynet1 --name alpine-overlay2 alpine:latest
-- 在主节点可以查看
-- 在从节点,可以看到有容器启动起来
-- 删除服务和删除网络
docker service rm my-nginx
docker network rm nginx-net
当前,越来越多的任务是跑在虚拟机上,而虚拟机会发生迁移(从一台物理服务器迁移到另一台),为保障业务不中断,要求虚拟机迁移过程后IP地址保持不变,但实际底层的物理链路可能已发生变化,需要overlay网络和集群虚拟机构建大二层网络。
在Linux中,网络命名空间是独立的、隔离的逻辑空间;可通过lsns查看命名空间
集群中的每个 pod 都有一个在后台运行的隐藏容器,被称为 pause,负责创建和维持网络命名空间。
深入理解lan、vlan、vxlan《OpenStack 网络》-阿里云开发者社区
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。