上一期中,我们详细介绍了内部承载云网络中的NAT技术应用,本文重点讨论内部承载云网络中的路由设计。
一、网络拓扑架构
内部承载云的主要应用需求是实现内部服务器向外部用户提供访问服务,同时服务器也有主动访问外部网络的业务需求,当同一业务存在多台服务器的时候,需要负载均衡设备实现服务器的负载均衡。因此在内部承载云的网络中,除了交换部分外,还有防火墙(FW)和负载均衡(LB)插卡设备,典型的网络逻辑拓扑架构设计如下:
在这个逻辑拓扑架构中,业务系统的网关统一设在核心交换机上,交换机与负载均衡设备、防火墙设备、外部网络均采用三层互联。负载均衡设备放在防火墙的下面,实现服务器的负载均衡。
1、为什么不把业务系统的网关设在负载均衡设备或防火墙上?
在平台资源池中,在防火墙上既有实现服务器映射的NAT SERVER需求,又有服务器主动访问外部网络的NAT Outbound的需求。对于第一类需求,主要由外部网络用户发起,经防火墙转换后再进入内网网络,而第二类需求则由服务器主动发起,经防火墙地址转换后进入外网。负载均衡设备的主要作用是对存在多台服务器的业务系统,由负载均衡设备实现服务器负载均衡。这里可以看出,经过负载均衡设备的业务流量必然是第一类需求,为从外部网络发起的访问流量。当然,如果业务系统的服务器数量只有一台,那么这部分流量也不需要经过负载均衡设备。
若把业务系统的网关设置在负载均衡设备上,对不需要经过负载均衡设备的流量也会上到负载均衡设备,增加了负载均衡设备的压力,属多此一举。若把业务系统的网关设置在防火墙上,那么就需要对业务系统分别设计网关,网络维护压力剧增。另外平台资源池中业务系统比较多,因此负载均衡设备或防火墙可能存在多组(两台设备,主备设备为一组),如果将网关设在负载均衡设备或防火墙上,就要对业务系统进行分类,将不同类的业务系统网关设在不同的设备组上。这种设计就更为复杂了,网络维护非常困难。如果网关统一设计在交换机上,结构上来说更为清晰,维护也更简单。
2、为什么负载均衡不和防火墙直接用三层互连?
在上面的拓扑设计中,LB与交换机用两个三层端口互连,FW也通过两个三层端口与交换机互连,为什么不把LB与FW直接三层互连(即去掉图中交换机上的蓝色三层接口,交换机做二层)?LB与FW直接三层互连,从互连角度上看可以实现,且逻辑架构更简单,但是在云平台中一般都存在多组LB与FW,若直接三层互联,那么要规划一个较大的网段IP用于互连,这样所有的LB和FW都处于同一个广播域中,而LB组、FW组之间通过VRRP实现主备功能,VRRP协议报文会在广播域中广播,所有LB和FW都会收到这些VRRP报文。一旦出现VRRP报文攻击或其他网络攻击,则会对所有的LB和FW产生影响。因此不建议负载均衡和防火墙直接用三层互连。
3、为什么防火墙不直接与外部网络三层互连?
云平台中存在多组防火墙,如果防火墙直接与外部网络用三层互连,那么外部网络的设备要有用多组互连IP,外网设备设计较为复杂,且防火墙的调整同时要调整外部设备,维护不便。由交换机直接与外部网络三层互连,那么云内网络的调整不会涉及到外部网络,同时结构更为清晰。
二、上行流量(从服务器到外部网络)路由设计
以防火墙的位置为分界点,将网络划为内网区域和外网区域,如下图所示。
上行流量的路由设计如下:
l 服务器的网关设置在核心交换机内网接口上;
l 交换机配置策略路由到LB组的VRRP虚地址,将流量引到LB;
l 对于不用上LB的流量,配置默认路由指向FW组的内网VRRP虚地址;
l LB配置默认路由指向交换机与LB的互联接口地址;
l 交换机配置静态默认路由指向FW;
l FW配置默认路由指向交换机与FW互联接口地址;
l 交换机配置默认路由指向163,配置明细静态路由指向DCN网和CN2
1、交换机上存在两条默认路由,下一跳分别为防火墙和外网163设备,存在冲突?
从以上设计可以看出,交换机上要配置两条默认路由,一条指向防火墙,一条指向163外网,这两条静态默认路由是存在冲突的。如何规避这个冲突?此时需要使用到核心交换机的VPN功能,将内网区域和外网区域分别设置一个VPN,通过VPN来隔离内外网区域的路由,即内网VPN负责NAT前的转发,维护一张独立的路由表,外网VPN负责NAT后的转发,维护一张独立的路由表。
2、为什么流量转发到负载均衡设备时,采用策略路由?
通过上面的业务需求分析我们知道,业务系统的流量可以分为两大类:外网用户访问内部服务器的流量和服务器主动访问外网的流量。从流经设备角度又可以分为两类:经过负载均衡设备的的流量和不经过负载均衡设备的流量。对于经过负载负载均衡的流量,其特征是明确的,是外部用户访问业务系统的流量,且同一业务系统存在多台服务器。在上行路由设计上,只要把这部分流量引到负载均衡设备即可,实现的方式就是通过策略路由。另外,当存在多组负载均衡设备时,则需要利用策略路由根据源IP进行分类,将流量分别引到不同的负载均衡组。
3、为什么外网部分使用静态路由而不用动态路由协议?
在外网区域,一般都有三个出口,分别是163、DCN和CN2,其中DCN和CN2网络的IP地址段是明确的。在外网区域,也可以使用动态路由协议,比如OSPF或ISIS等,这与外网设备路由设计相关,且动态路由协议的路由控制相对复杂。使用静态路由,相对比较简单,且由于DCN、CN2的网段明确,设备配置上也比较简洁。
三、下行流量(从外部网络到业务系统)的路由设计
下行流量路由设计相对于上行流量而言较为简单,设计如下:
l 外网设备(163、DCN、CN2)配置目的地址为NAT后IP的静态路由,指向核心交换机的外网VPN互连IP地址;
l 交换机配置目的地址为NAT后IP的静态路由,指向FW外网VRRP虚地址;
l FW配置目的地址为LB虚服务地址和业务服务器网段的路由,指向与交换机内网VPN互连接口地址
l 交换机配置指向LB虚服务IP的路由,指向LB接口地址;
l LB配置业务网段路由,指向交换机的互连接口地址;
l 交换机作为业务服务器的网关,根据直连路由转发;
1、外网区域的设备为什么配置目的地址为NAT后IP的静态路由?
内部承载云的业务服务器一般都采用私网地址,外部网络不能直接访问,只能通过防火墙进行NAT转换。因此在外部区域设备上,在配置前往内网服务器的路由时,该路由的目的地址只能是NAT后的地址。
业务资源池中的服务器在访问外部网络时,其目的地址都是固定的,因此在防火墙上做NAT Outbound转换时,也有明确的转换后地址池。例如某个业务系统访问DCN网,则会转换成DCN网的IP地址,若访问163网,则会转换成163网的IP地址。外部区域的设备配置到内网的路由时,只要根据转换后的地址池,配置明确的静态路由即可。
2、为什么防火墙上要同时配置目的地址为LB虚服务地址和业务服务器网段的路由?
业务系统服务器的流量分为两类,一类需要经过LB,一类则不需要,因此在上行方向的时候,通过在交换机上配置策略路由实现部分流量上LB,部分直接上防火墙。下行方向上,则由防火墙来完成部分流量回LB,部分流量直接给交换机。由于LB通过虚服务的方式对外提供服务,因此回LB的路由,其目的地址只能是虚服务的IP。对于 不回LB的流量,则直接配置目的地址为业务服务器网段的路由即可。