软件定义数据中心
发布日期:2017-02-23 16:44:00来源:新纵横 浏览次数:次
Overlay的技术标准
IETF在Overlay技术领域提出VXLAN、NVGRE、STT三大技术方案。大体思路均是将以太网报文承载到某种隧道层面,差异性在于选择和构造隧道的不同,而底层均是IP转发。VXLAN和STT对于现网设备而言对流量均衡要求较低,即负载链路负载分担适应性好,一般的网络设备都能对L2-L4的数据内容参数进行链路聚合或等价路由的流量均衡,而NVGRE则需要网络设备对GRE扩展头感知并对flow ID进行HASH,需要硬件升级;STT对于TCP有较大修改,隧道模式接近UDP性质,隧道构造技术属于革新性,且复杂度较高,而VXLAN利用了现有通用的UDP传输,成熟性极高。
所以总体比较,VLXAN技术具有更大优势,而且当前VLXAN也得到了更多厂家和客户的支持,已经成为Overlay技术的主流标准,所以本文的后续介绍均以VXLAN技术作为标准进行介绍,NVGRE、STT则不再赘述。
VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是基于IP网络、采用“MAC in UDP”封装形式的二层VPN技术,具体封装的报文格式如图2所示。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联功能,主要应用于数据中心网络。
图1 VXLAN报文
VXLAN在原始二层数据帧外添加:
· 20字节IP头,目的IP为隧道对端VTEP地址或组播地址。
· 8字节UDP头,UDP头的目的端口号缺省为4789。源端口可按流分配;为了使VXLAN充分利用承载网络路由的均衡性,VXLAN通过将原始以太网数据头(MAC、IP、四层端口号等)的HASH值作为UDP的号。
· 8字节VXLAN头:
Flags:“I”位为1时,表示VXLAN头中的VXLAN ID有效;
“I”位为0时,表示VXLAN ID无效。其他位保留未用(为0)。
VXLAN ID:用来标识一个VXLAN网络,长度为24比特。
Overlay网络基础架构
Overlay网络的基础架构如图2所示:
Overlay网络到非Overlay网络
Overlay网络到非Overlay网络的流表建立和路由发布如图3所示:
图3 Overlay网络到非Overlay网络的流表建立和路由发布
创建VM的时候,会同时分配IP和MAC信息。然后VM发送ARP请求报文,该报文会通过Packet-in被上送到控制器。控制器做IP-MAC防欺骗处理确认报文合法后,通过ARP代答功能构建ARP应答报文并通过Packet-out下发。
VM收到从ARP应答报文后,封装并发送IP首包。OVS收到IP首报后发现没有对应流表,就将该IP首包通过Packet-in上送控制器。控制器通过OpenFlow通道收到Packet-in报文后,判断上送的IP 报文的IP-MAC为真实的。然后根据报文中的目的IP查询目的端口,将IP首包直接发送到目的端口,同时生成相应流表下发OVS。若没有查询到目的端口,曾查询物理网关的MAC 和VTEP IP,把目的MAC替换成网关MAC,源MAC替换成虚机MAC,生成转发流表下发OVS, IP首包也同时被packet out到OVS匹配流表转发。
流表下发到OVS后,而后续的IP报文就会根据OVS上的流表进行转发,而不再需要上送控制器。
从overlay网络到非overlay网络的路由处理需要用户首先在网管上预配置路由协议引入静态路由,然后控制器创建subnet并通过Netconf将subnet静态路由下发到GW,最终由GW将overlay子网路由发布到非overlay网络。
Overlay网络转发流程
· 报文所属VXLAN识别
VTEP只有识别出接收到的报文所属的VXLAN,才能对该报文进行正确地处理。
VXLAN隧道上接收报文的识别:对于从VXLAN隧道上接收到的VXLAN报文,VTEP根据报文
中携带的VNI判断该报文所属的VXLAN。
本地站点内接收到数据帧的识别:对于从本地站点中接收到的二层数据帧,VTEP通过以太网服务实例(Service Instance)将数据帧映射到对应的VSI, VSI内创建的VXLAN即为该数据帧所属的VXLAN。
· MAC地址学习
本地MAC地址学习:指本地VTEP连接的本地站点内虚拟机MAC地址的学习。本地MAC地址通过接收到数据帧中的源MAC地址动态学习,即VTEP接收到本地虚拟机发送的数据帧后,判断该数据帧所属的VSI,并将数据帧中的源MAC地址(本地虚拟机的MAC地址)添加到该VSI的MAC地址表中,该MAC地址对应的出接口为接收到数据帧的接口。
远端MAC地址学习:指远端VTEP连接的远端站点内虚拟机MAC地址的学习。远端MAC学习时,VTEP从VXLAN隧道上接收到远端VTEP发送的VXLAN报文后,根据VXLAN ID判断报文所属的VXLAN,对报文进行解封装,还原二层数据帧,并将数据帧中的源MAC地址(远端虚拟机的MAC地址)添加到所属VXLAN对应VSI的MAC地址表中,该MAC地址对应的出接口为VXLAN隧道接口。
图8 Overlay网络到非Overlay网络的转发流程
虚拟机构造发送到物理机的报文,目的MAC为OVS的MAC,目的IP为要访问的物理机的IP,报文从虚拟机的虚拟接口发出。
OVS接收到虚拟机发送的报文,根据报文中的目的IP匹配OVS上的流表表项。匹配到流表表项后,修改报文的目的MAC为VX-GW的MAC,源MAC为OVS的MAC,并从指定的隧道接口发送。从指定的隧道接口发送报文时,会在报文中添加VXLAN头信息,并封装隧道外层报文头信息。
VX-GW从隧道口接收到VXLAN隧道封装报文,隧道自动终结,得到内层报文。在VX-GW上已配置VNI和VPN的映射关系,根据隧道报文的VNI信息,确定对应的VPN。在指定的VPN中,根据内层报文的目的IP按照FIB(非流表)进行报文三层转发,从出接口发送的报文为普通报文,其目的MAC为物理机MAC,源MAC为GW MAC,源IP为虚拟机IP,目的IP为物理机IP。
报文按照传统网络的转发方式继续转发。物理机接收到VX-GW转发的报文,实现虚拟机到物理机的访问。
图9 非Overlay网络到Overlay网络的转发流程
物理机构造发送到虚拟机的报文,在传统网络中通过传统转发方式将报文转发到VX-GW。VX-GW接收该报文时,报文的目的MAC为VX-GW的MAC,目的IP为虚拟机的IP地址,从物理机发送出去的报文为普通报文。
VX-GW接收报文,根据报文的入接口VPN,目的IP和目的MAC匹配转发流表。匹配到流表后,修改报文的目的MAC为OVS的对应全局MAC(00163FAAAAA),源MAC为GW的MAC,并从指定的VXLAN隧道口发送。从隧道口发送报文时,根据流表中的信息添加VXLAN头信息,并对报文进行隧道封装。从GW发送报文为封装后的Overlay报文。
OVS接收到报文后,隧道自动终结。根据报文VNI和目的IP匹配转发流表。匹配到流表后,修改报文目的MAC为虚拟机MAC,修改报文源MAC为OVS的MAC,并从指定的端口发送。从OVS发送的报文为普通报文。
根据报文的目的MAC,虚拟机接收到物理机发送的报文,实现物理机到虚拟机的访问。
Overlay网关高可靠性
Overlay网关的高可靠性原理如图4所示:
图4 Overlay网关高可靠性
网关组中网关的VTEP IP和GW VMAC 相同,均通过路由协议对内网发布VTEP IP对应路由。
网关组内部,采用无状态转发设计,所有网关信息同步。
在处理OVS发往GW的流量时,动态选择GW组中的一个GW,可以很好地起到负载分担的作用。
网关故障后,流量切换到分组内其它网关,保证业务平滑迁移。
网关与内外网设备连接,采用聚合或ECMP方式,某链路故障,网关自动切换链路,无需人工干预。单个网关设备采用双主控,原主控故障,新主控接管设备管理,所有处理网关自动完成。转发层面和控制层面分离, VCF Controller不感知,网关上流量转发不受影响。
Overlay网络安全部署
如图5所示,Overlay网络的安全部署有三种模式,这三种模式既可以独立部署,也可以配合部署:
图5Overlay网络的安全部署
· 旁挂部署
主要形态:硬件安全资源。
安全资源旁挂在核心/汇聚设备旁侧(部分安全资源也可选作为L3网关)。
安全资源关注VXLAN<->VLAN的安全访问控制。
· 服务器侧部署
主要形态:软件安全资源。
安全资源以VM形态部署在服务器内部,可以作为其他VM的网关。
如果安全资源支持VXLAN,可以完成VXLAN<->VLAN的安全访问控制。
全硬件VXLAN方案不推荐使用。
· 专用安全区部署
主要形态:软件或硬件安全资源。
安全资源集中部署在某一个TOR设备下,重点关注不同VXLAN ID之间互访的安全控制。
如果安全资源支持VXLAN,就直接配置VXLAN ID的互访策略。
如果安全资源不支持VXLAN,需要TOR完成VXLAN到VLAN的转换,然后安全资源上配置不同VLAN互访的安全策略。