业务需求:公网Client通过访问服务器虚地址来实现对内部服务器的负载均衡,本期实验采用FTP协议进行模拟业务,业务访问路径如下:Client访问100.1.1.100虚地址,流量转发至LB设备上后,通过SNAT将Client源地址替换为SNAT-POOL池内地址,然后将流量转发至实服务器。
回包路径:实服务器根据转换后的地址,将报文转发至LB,LB收到报文后,根据负载均衡的SNAT表项,做目的地址转换,将目的地址转为CLIENT地址。
LB配置:
# sysname LB # nqa template tcp ftp_server # 配置探测模板,可以采用ftp模板,由于模拟器,没有配置ftp用户名与密码,实际场景中建议采用ftp登录方式进行健康检查,不建议采用单独端口探测 # 本次采用单接口方式接入,出入流量全部采用一个接口,或者可以通过三层子接口方式来区分出入流量。 interface GigabitEthernet1/0/0 port link-mode route combo enable copper ip address 10.0.12.2 255.255.255.252 # ip route-static 0.0.0.0 0 10.0.12.1 ip route-static 192.168.20.0 24 NULL0 # 该步骤需要配置,否则实服务器无法正常回包,由于设备是FW模拟LB,没发现snat-pool可以产生路由的命令 # loadbalance snat-pool 192.168.20.0 # 配置snat池,这里池的作用是替换访问的源地址为池内地址,然后转发至实服务器,在旁路模式中主要用于流量牵引 ip range start 192.168.20.0 end 192.168.20.254 # server-farm ftp_server # 配置实服务器组 predictor least-connection # 设置负载均衡算法为最小连接数 snat-pool 192.168.20.0 # 设置snat-pool池 probe ftp_server # 关联探测模板 # real-server ftp_server_192.168.10.1 # 配置实服务器,关联服务端口及实服务器组 ip address 192.168.10.1 port 21 server-farm ftp_server # real-server ftp_server_192.168.10.2 ip address 192.168.10.2 port 21 server-farm ftp_server # real-server ftp_server_192.168.10.3 ip address 192.168.10.3 port 21 server-farm ftp_server # virtual-server vs_ftp_100.1.1.100 type tcp # 配置虚服务器,关联实服务器组和做路由通告,否者不会产生直连路由。 virtual ip address 100.1.1.100 default server-farm ftp_server route-advertisement enable service enable # return
其他交换机配置就不展示了,配置内容较为简单,本篇主要为LB配置。
配置结果:
从交换机模拟访问虚拟服务器,可以看到端口正常可达。
看抓包结果:
根据抓包结果可以明显看到,访问虚拟服务器后,LB将源地址进行替换,替换为192.168.20.66后访问实服务器,实服务器回包给LB,LB做目的地址转换后将报文转发至交换机。