本文的内容较基础,将演示几个常见的局域网设计,供大家组网的时候参考。
1. 最简陋的网络结构
很难说这个结构里包含了“局域网”——单PC直接接入互联网,甚至它连“内部”这种位置都很难去定义。这种结构极其少见,即使在家用环境中也至少包含了一个最简陋的路由器,接入一台或多台设备(PC、手机、PAD)。
但并不是完全不能这样设计,比如家里只有一台电脑需要联网,那完全可以拿掉路由器这个多余的设备,虽然会面临来自互联网的安全威胁,但不能否认的是,它能正常工作。另外一个显得更合理的场景是专线接入(比如接入上级机构/政府专用网络),右侧不再是Internet,而是需要接入的专用网络(不过事实上,有基本安全性规定时,上级机构会要求在中间加入一台防火墙,或者VPN设备进行拨号)。
2. 相较而言,下面是更为常见的一种简单网络结构
这个网络使用单出口接入互联网,内部结构也相当简单,只有一个网段,往往局域网内的设备数量也非常少。防火墙/路由器外侧配置Internet连接,同时提供NAT服务将内网接入互联网,PC/设备(们)使用防火墙LAN侧作为网关进行联网。
3. 局域网包含多个网段的结构
当出于业务/安全/便利性考量,希望将局域网按一定标准进行划分时,经常会使用上面的结构(外层和例2一样,内层会做更细的规划):划分多个VLAN -> 不同设备按划分标准接入网络 -> 甚至多个VLAN之间还有ACL进行访问控制。当网络规模较大时,网络中的交换机还会按不同位置划分为:接入层(负责接入终端)、汇聚层(相近地区的设备进行汇总)、核心层(最核心部分的主交换),当然由于网络规模的不同,这三层的边界有时会变得比较模糊。
4. 多出口网络
现在把注意力从内网暂时移到外网,看一下如果需要接入多条外网链路时,应该如何规划。
在这个网络里,外网的多条链路(f1, f2, f3)既可以是物理上的(比如同时接入一家ISP或多家ISP的链路),也可以是逻辑上的(比如只接了一个ISP的链路,但是由于未做限制,可以做单线多拨)。
此时,规划网络里需要重点考虑的一个地方是:这么多条线路如何规划,以向局域网提供互联网服务?
这个问题并没有标准答案,在满足实际业务需求的前提下,可供发挥的地方比较多:
- 比如,所有内网设备一视同仁,均有相同的网络访问权限,那就可以将f1, f2, f3三条线路进行负载均衡,按一定的负载比例进行流量分发;
- 上一条需求同样也可以用设备分组的形式进行设计,将内网设备按一定规则分组,同时在防火墙的NAT策略里,按源地址进行出口选择,如果防火墙支持,还可以为出口进行优先级配置(如,某一个分组的设备,主出口f1,同时添加failover策略将f2作为standby角色,以便在f1接口离线时由f2接替工作,得到更健壮的网络);
- 某些场景中,会对特定的一台或多台设备做限制,流量只能从指定链路出站,这时可以参考b场景进行设置,将这些受限设备分组,同样做源地址策略,保证他们只会从指定出口访问互联网;
- 以上场景中,如果没有特别要求,建议相同IP地址从相同出口访问互联网(类似反向代理中的IP_HASH策略)。
5. 多出口网络,但需要进行隔离的结构
第4条多出口网络的演示其实也可以实现多个外网的隔离,以及内部设备隔离(即f1, f2, f3互相隔离、内部指定设备做VLAN/ACL进行隔离),但是在要求更高的场景下,需要做到专网专用、物理隔离。
6. 更健壮的网络
链路层和交换机
当网络规模需要进行扩展时,可以借助交换机的堆叠、Trunk、端口汇聚技术达到目的,同时这些技术也使我们的网络在链路上更为健壮:当一个端口出了问题,甚至一个交换机出了问题,网络依然可以正常运转。所以不管是设备的冗余还是端口的冗余,都是不错的选择(甚至可以同时做端口和设备的冗余:多台设备堆叠,并将不同设备的端口做汇聚,同时还能获得更高的接口带宽)。
网络层和路由器
二层的冗余可以通过交换机来实现,那么三层的冗余,就可以借助热备份相关的路由协议(如HSRP、VRRP),由防火墙/路由器来实现了。一般会进行如下规划:
- 多台防火墙/路由器协同,组成一台虚拟路由器,此时,虚拟路由器会有自己的一个VIP;
- 内网将VIP作为网关;
- 按照策略中的权重设置,其中一台路由器会作为Master提供服务,另一台作为Standby角色进行待命(有时甚至可以起多个虚拟服务,由不同的路由器担任不同虚拟服务的Master)。
更高层的冗余
更高层的冗余选择比较多,可以由服务本身来提供,也可以由负载均衡或反向代理(HA、 NGINX)之类的软件进行4层或7层的冗余/负载。这种冗余办公网络几乎用不到,多用于业务网络中对服务进行水平扩展,典型案例可以参考我之前写的文章:虚拟化环境网络结构规划(本地设备环境的混合网络)。