因目前個人需求要做遊戲伺服器,外網IP做DNS地理Load balance
目前打算租OVH的抗DDoS虛擬主機以及其他家的虛擬主機來做封包轉運
目前使用Iptables Forwarding遇到的問題是遊戲伺服器上沒辦法顯示玩家的真實IP,只會顯示虛擬主機的IP
Iptables指令如下
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DORP
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -A FORWARD -p tcp -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -A FORWARD -p tcp -d xxx.xxx.xxx.xxx -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to-destination xxx.xxx.xxx.xxx:25565
iptables -t nat -A POSTROUTING -p tcp -d xxx.xxx.xxx.xxx --dport 25565 -j MASQUERADE
我知道問題出在MASQUERAD,但找了很多文章都沒有相關問題
自己最近也在測試透過RouterOS 點對點PPTP VPN
想說透過dstnat的方式把A路由器收到的封包轉到B路由器,但其實沒有效果
想問各位大大有想法或點子嗎?
最主要是IP能看得到玩家真實IP為主
你忘了一件事:
從 OVH 的虛擬主機往外面送封包的時候, 他會穿越 OVH 外圍的防火牆, 上面又幫你做了一次 SNAT, 導致你原始端的 IP 遺失, 只留下 OVH 閘口的 IP...
要避開這個問題, 你的主機和 OVH 之間, 要建一個 GRE Tunnel, 把用戶端送來的封包, 先封裝在 GRE 裡面, 透過 Tunnel 傳送回來, 到達之後再解開還原, 這樣才不會被改掉 Source Address...
再不然, 你就要把整台主機都搬進去 OVH 裡面, 才不會被他改掉 Source...