999的demo 发表于 2024-3-20 18:02

解决AD旁路部署存在的SNAT转换问题

本帖最后由 999的demo 于 2024-3-18 21:32 编辑

旁路部署存在的问题
为什么旁路部署时需要SNAT转换当AD旁路部署时,并且对外提供虚拟服务的场景,此时配置SNAT时为了保持回包路径一致,client-AD-server,server-AD-client(由于在AD上会将目的地址-虚拟IP转为真实的Server地址,如果此时AD没有做SNAT,则Server直接以自己的真实地址为源发往AF,此时AF没有关于Server真实地址的NAT映射表,只有关于虚拟IP的NAT映射表,此时就造成了Server的数据包无法发送出去)
2527971AD旁路部署时做SNAT会对用户的业务造成什么影响?如果内网有安全设备做了策略或服务器配置了强策略,则针对于从外网访问服务器的源IP都为同一个,无法知道请求的真实IP,无法进行策略防护

在AD旁路部署并配置了SNAT场景下,如何知道请求的真实IP?AD上不配置SNAT,通过其它方式来解决来回路径不一致的问题,避免真实IP被隐藏/转换l在服务器上的网关/内网的AF上做引流,不在AD上做SNAT如果AD还是配置了SNAT,可以通过XFF字段来得到真实的请求IP地址l通过XFF字段识别真实源IP,不过XFF字段的内容是容易伪造的;只针对于HTTP/HTTPS服务X-Forwarded-For 是一个 HTTP 扩展头部,携带的内容为(客户请求的真实源,代理1的地址,代理2的地址)AD上不配置SNAT(使得数据由AD转发给服务器后,服务器直接交由网关出去)lAD使用三角传输模式(不进行SNAT转换,不修改目的IP地址,将报文的目的MAC替换为真实服务器的MAC),即Server回应的数据包的源就是虚拟IP,即使Server直接将数据传给AF,AF收到后也是有关于该虚拟IP的NAT映射的,可以直接将数据包发给用户;需要AD和Server为二层网络
三角传输
三角传输模式只支持四层模式的虚拟服务(4层TCP或4层UDP),但是不支持七层类型的虚拟服务发布三角传输又称为DR(Direct Route)或DSR(DirectServer Return)模式AD设备收到客户端的请求,转发报文时,不改变目的IP地址,而将报文的目的MAC替换为真实服务器的MAC后直接把报文转发给真实服务器此时服务器的响应报文不经过AD,直接通过前端网关设备转发出去回给客户端具体的数据包交互流程AF将外网用户发来的数据包的目的地址转换为AD提供的虚拟IP地址,当虚拟IP地址到达AD后,AD不会讲虚拟IP转为真实服务器IP,而是直接将报文的目的MAC替换为真实服务器的MAC将其调度到真实服务器。
此时真实服务器收到的报文的源为外网IP,目的为虚拟IP,当服务器回包时的源也为虚拟IP,目的为外网IP,此时当数据包到达AF后,AF就根据NAT映射表转为公网地址发给外网用户2527973主要实现以下两个功能1、分流,减轻AD的流量负担,因为回来的数据包不经过AD设备,而是通过路由器转发回客户端2、旁路模式下且服务器网关不为设备地址,服务器需看到客户端真实IP地址   三角传输模式,客户端请求的源IP地址不会改变,服务器收到的请求即为客户端的请求,该模式下服务器看到源IP为客户端真实IP,前提条件为客户端到AD之间没有经过源地址转换配置的注意事项虚拟服务发布时只能选择TCP服务对外发布的虚拟服务端口要和真实服务器的端口一致服务器上添加Loopback Adapter虚拟网卡,并且设置网卡IP地址为虚拟IP地址旁路模式部署需要WAN口设置多IP,第一个IP不能是虚拟服务发布的IP,否则节点监视器无法监视节点。因为三角传输发布的虚拟服务的IP是服务器上loopback IP,如果AD设备以这个loopback IP发给服务器时,服务器会无法回包给AD
页: [1]
查看完整版本: 解决AD旁路部署存在的SNAT转换问题