Linux : CentOS 6.2 x86_64
Device : DL320 G5
雙網卡,
eth0 連接ISP公司
eth1 連接LAN side (192.168.128.254) 並作為GATEWAY (已設置NAT, DNS forwarder)
LAN內所有 192.168.128.xxx CLIENT'S(包括接下來的WEB SERVER) GATEWAY 已設為 eth1 IP..
已建立LVS + keepalived ..
並以 LVS/NAT 建立, 以 RealIP eth0 IP 作 Director 的 IP..
[root@Web00 ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 0x9xxx1x4x9x.ctinets.com:htt rr
-> 192.168.128.109:http Masq 100 0 0
-> 192.168.128.110:http Masq 100 0 0
-> 192.168.128.111:http Masq 100 0 0
街外現在已可正常連接..
但內部無法作 NAT LOOPBACK..
也無法使用以下的這個方法進行LOOPBACK..
iptables -t nat -A PREROUTING -d x9.xxx.1x4.9x -m tcp -p tcp --dport 21 -j DNAT --to-destination 192.168.128.21
iptables -t nat -A POSTROUTING -d 192.168.128.21 -s 192.168.128.0/24 -j SNAT --to-source 192.168.128.254
這方法可以使內部CLIENT輸入 External IP 進入FTP時轉發到 192.168.128.21 ( FTP SERVER )
但LVS的DIRECTOR不是 192.168.128 內的 IP..
救求..
我研究了整整1星期了..
原本是架設 LVS / Direct Route .. 並建立 Virtual IP 的..
但沒辦法 ROUTE 這個 VIP 至 External IP ..
(當時的 VIP : 192.168.128.100)
已經試過了在每一部Real Server的 iptables 設置 :
iptables -t nat -A PREROUTING -p tcp -d 192.168.128.100 --dport 80 -j REDIRECT
再在NAT的這台SERVER設 :
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 59.148.184.98 --dport 80 -j DNAT --to 192.168.128.100:80
但也沒法連接..
結果暫時轉為架設 LVS/NAT ..
現在外面可以連進了. 但內部卻連不到..
如果有大大可以幫我解決使用 direct route 也可以令 external IP 連接的話,
小弟感激不盡..
另外現在最重要還是要令 LAN 中的 CLIENT 可以連到 external IP 的 director
為什麼 FTP 可以,Web 卻不可以?那是因為 FTP 的 .21 是內部 IP,而 Web 的 .254 卻是 Gateway 本身,iptables 規則因而沒作用。
你可以隨便拿一台真實 Web server (比如 .111) 當成內部連線的目的 server,依照 FTP 的iptables 規則設定,應該就會通了。
=_=! 現在就是一定要連接 director IP ... 一定要經過 blancer 再進入 apache 經過 virtual 的處理再顯示..
一定要令 LAN 中的 CLIENT 也可使用 external IP 連接上去..
這麼堅持啊?
內部網路使用,應該是小量吧?一定要通過 LVS 讓封包轉到最忙的 Gateway 再繞進來,老實說根本浪費頻寬跟 LVS 資源。
老闆會檢查內網來的 request 一定要通過 LVS 嗎?
不是.. 是PHP當中有通訊.. 而這個通訊一定要用到DOMAIN...
所以非常頭痛..
http://phorum.study-area.org/index.php/topic,67329.0.html
有一位大大說用DNS可以解決..
但我完全不清楚可解決的原理..= =!
這更另我奇怪,有 php 應該更好解決才對,為什麼一定得是連外網 IP 才能 work?我不瞭解。
說用 DNS 可以解的方式,是比如外網用 http://somewhere.com 來連你的網站,外網 DNS 查到的是外網 IP。而內網就架一個 DNS 專門給內網用,當內網電腦連 http://somewhere.com 時,內網 DNS 回應的 IP 是內網 .254,這樣內網就可以連,而不用從外網 IP loopback 回來。
不過這得試過才知道是否可解。有可能還是會如我所說的,因為 .254 本身是 gateway 而不通。
不是, 是我採用了 ucenter 作會員中心, 所以一定需要從內網連到外網..