NAT LOOPBACK DNAT - Linux

By Catherine
at 2014-02-18T14:13
at 2014-02-18T14:13
Table of Contents
※ 引述《NKill (可樂戒指)》之銘言:
: 我有一台Linux ,設定 dhcp 跟 NAT
: PCA
: Linux <--->
: PCB
: Linux WAN ip 1.2.3.4
: LINUX LAN ip 192.168.1.1
: PCA ip 192.168.1.2
: PCB ip 192.168.1.3
: PCA上面裝了 http server
: AP 設定 Port Forward 到 PCA
: 我希望能從PCB 打 AP的 WAN IP 就能存取 PCA的網頁
: 1. iptables -t nat -I PREROUTING -i br0 -d 1.2.3.4 -j DNAT --to 192.168.1.2
: 2. iptables -t nat -I POSTROUTING -s 192.168.1.1/24 -o br0 -d 192.168.1.2 -j SNAT --to 192.168.1.1
: iptables -L -vn -t nat 看到 1. pkg 會增加 但是 2.pkg 不會增加
: ip_forward 1
: 請各位指點一下迷津 謝謝
我後來想一想,封包不經過 rule 2 是合理的,
因為在 PREROUTING 時,該筆連線已經記錄於 connection tracking table 裡了,
該連線之後的封包在連線追蹤機制下,都不會經過 rule 1 及 rule 2,
且,網路的區段規劃為 PCA 與 PCB 都在同一個網段中,
所以若 PCB 連線至 AP,再導向給 PCA,
封包 IP 位址的變化應為 :
PCB 送出 PCA 收到
[SRC IP: PCB/DST IP: AP] [SRC IP: PCB/DST IP: PCA]
因此,由於SRC IP: PCB 與 PCA 是同網段,
PCA 應在 ARP table 中即能得知 PCB 的 MAC/IP,
一般就不會送給 default route gateway AP,而是直接送給 PCB
但是 PCB 收到的封包位址變成這樣 [ SRC IP: PCA/DST IP: PCB ]
PCB 不會知道這個封包是原本送給 AP 的回應 [SRC IP: PCB/DST IP: AP] ,
照理說,這樣網頁應該是不會通。
應該將 PCB 與 PCA 的 IP 規劃為不同的子網路或網段。
--
Tags:
Linux
All Comments

By John
at 2014-02-23T12:47
at 2014-02-23T12:47

By Isabella
at 2014-02-26T08:27
at 2014-02-26T08:27

By Margaret
at 2014-02-26T10:37
at 2014-02-26T10:37

By Barb Cronin
at 2014-02-27T12:25
at 2014-02-27T12:25

By Doris
at 2014-02-27T21:33
at 2014-02-27T21:33

By Madame
at 2014-03-01T04:13
at 2014-03-01T04:13

By Daniel
at 2014-03-02T21:07
at 2014-03-02T21:07

By Una
at 2014-03-05T00:40
at 2014-03-05T00:40
Related Posts
ubuntu + virtualbox 調整大小

By Damian
at 2014-02-17T18:13
at 2014-02-17T18:13
fedora 17 安裝ffmpeg的問題

By Ina
at 2014-02-17T17:02
at 2014-02-17T17:02
NAT LOOPBACK DNAT

By Anthony
at 2014-02-17T16:19
at 2014-02-17T16:19
NAT LOOPBACK DNAT

By Liam
at 2014-02-17T16:04
at 2014-02-17T16:04
有類似新注音輸入法嗎(centos5.6)

By Hazel
at 2014-02-17T14:09
at 2014-02-17T14:09