| 10、 同一个网络内的Destination NAT。 |
| 假如您要对同一个网络做端口转发,您需要确认任何以后的包和回应包都通过NAT服务器(这样他们才能被修改)。NAT代码现在(自2.4.0-test6),会屏蔽掉同组的被NAT的包送出的ICMP重定向,但是收到的服务器会继续尝试直接响应客户。(不会理解这个回应) |
| 经典的情况是,内部人员试图访问您的“公用”Web服务器,而他实际上从公用地址(1.2.3.4)被DNAT到内部机器(192.168.1.1),例如: |
| # iptables -t nat -A PREROUTING -d 1.2.3.4 -p tcp --dport 80 -j DNAT --to 192.168.1.1 |
| 一种办法是运行一台内部DNS服务器,他知道您的公用(外部)Web服务器的真实的(内部)IP地址,并转发任何其他请求到外部DNS服务器。也就是说您的Web服务器能够记录真实的内部IP地址。 |
| 另一种办法是让NAT服务器映射那些连接的源地址到他自己,让服务器通过他发出响应。例如,我们能够这样做(假设NAT服务器内部IP地址是192.168.1.250): |
| # iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 -p tcp --dport 80 -j SNAT --to 192.168.1.250 |
| 因为PREROUTING规则会首先运行,对内部Web服务器来说,包的去向早已确定。我们能够确定好源IP地址。 |
|
| 11. Thanks |
| Thanks first to WatchGuard, and David Bonn, who believed in the netfilter idea enough to support me while I worked on it. And to everyone else who put up with my ranting as I learnt about the ugliness of NAT, especially those who read my diary. |
| 首先感谢在我工作期间相信netfilter设想并支持我的WatchGuard和David Bonn。连同任何对NAT提出指正的朋友,尤其是读过了我的日记的。 |
| Rusty. |
All pages ended here. |
|
|
|
|
|
|
|
|