有关Redhat默认网关的问题
网络结构如下图:
希望达到的效果是公网可以通过
http://122.xxxx
访问服务器上的网站
移动专线用来向服务器写入数据。
注意此时服务器的默认网关是192.168.2.1,这个时候
http://122.xxxx
不能访问,并且服务器本省也不能上网。
route-n:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
我将默认网关修改为192.168.1.1之后,服务器可以上网了,并且 http://122.xxx 也可以访问了。
为什么?
我能够理解将网关设置为192.168.1.1之后,服务器可以通过路由器进而连到电信网从而访问互联网,也就是数据可以出去了,但是为什么 http://122.xxxx 也能够访问了?
Answers
LZ首先要搞清楚两个概念:SNAT和DNAT,其次要了解Linux下数据包调试的利器tcpdump,用它来抓下数据包。
路由器上不是做了端口转发吗? http://122.xxxx 能访问是正常现象。其实要想使用默认网关192.168.2.1走电信网络都是可以的,做下策略路由就行。
最后强调下,数据包是有“去”也有“回”的,而且“去”的路线可以和“回”的路线不同。