本帖最后由 adds 于 2016-6-28 22:38 编辑
故障描述:客户内网新上线了业务系统,需要内外网用户通过公网IP进行访问,但配置完策略后,发现外网用户可以正常访问,但内网用户无法正常访问。
版本:AD-5.4 内网服务器IP:172.16.11.190 映射到公网的IP:58.118.156.50 AD设备LAN口IP:192.168.0.254 排错步骤: 一、查看配置策略 1、查看端口映射是否配置正确。 路径:网络配置--端口映射 1)观察策略是否启用。---策略的状态要为“启用”。 2)发布服务器是否勾选。---勾选“发布服务器”。 3)目的IP和映射的目的IP是否配置正确。 *这里一定要注意勾选“发布服务器”,否则需求肯定无法实现。
2、查看内到内的源地址策略是否配置 路径:网络配置--源地址转换 配置一条源是内网网段,目的地址所有,下一跳为内网口的源地址转换策略。 配置原因:保持数据包的来回路径一致。简单说一下内网用户通过公网IP访问内网服务器的数据流向,内网用户发起访问服务器的请求,数据包到达AD,经过AD的策略转换后,数据包的源IP转换为AD的内网口IP,这样,内网服务器看到请求数据包的源IP是AD,回包就会回给AD,保证了来回数据流向的一致性。如果不配置源地址转换,内网服务器看到的请求数据包的源IP是内网发起数据的真实IP,当内网服务器回包时,数据包会直接到达内网用户,而内网用户并没有与内网服务器建立连接,导致数据通信失败。
3、测试 从公网使用50的IP地址访问,访问正常;从内网使用190的地址访问,访问正常。但从内网使用50的IP地址访问,无法访问。证明问题确实存在。
4、排查 1)使用pshell工具登录后台,查看AD的LAN口是否接收到内网发往50IP的数据包。 命令:tcpdump -i eth1 host 172.18.2.123 and host 58.118.156.50 -nn *从图中可以看出,没有抓取到两者之间的数据包,也就是说内网用户发往58.118.156.50的数据包没有到达AD的LAN口。 注:pshell截图中的命令为400远程操作。
2)DOS下使用tracert命令,查看数据包走向。 命令:tracert -d 58.118.156.50 *从图中可以看到,数据包在到达255.1之后,没有下一跳地址,也就是没有路由。 总结:问题的原因就是发往58.118.156.50的数据包没有到达AD的LAN口,导致内网用户无法通过公网IP访问内网服务器。
5、配置核心交换机 1)查看配置 问题就是出在核心交换机,原因就是发往58.118.156.50的数据包没有给到AD的LAN口,只要保证核心路由正常就行。 客户核心是一台某公司-12006交换机。 查看路由:show ip route static *从静态路由看,58.118.156.50的数据给到了AD。 查看全部路由:show ip route *图中蓝线指出了问题所在,到58.118.156.50的数据发往了VLAN 30。 根据某公司的路由选路原则,先精确匹配,如果掩码一致,管理距离低的优先。所以,优先走VLAN 30。 2)更改配置 添加路由:ip route 58.118.156.50 255.255.255.255 192.168.0.254 最后,输入wr保存即可。
经过测试,客户实现了内网用户通过公网IP访问内网服务器的需求。 Day:6月28日 |