iT邦幫忙

0

不同地點不同內網網段不同WAN出入問題

  • 分享至 

  • xImage

因目前個人需求要做遊戲伺服器,外網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為主

https://ithelp.ithome.com.tw/upload/images/20210714/20106656OvoB3evZvt.jpg

這張圖感覺就是想自己做 CDN 吧,只是這個機制實際如何運作還是要樓主自己研究看看,小弟也不太懂,但看的出來應該是想做 CDN,但不知該如何著手,或是我想差了,樓主考慮的是資安問題,要求記錄每一個玩家的IP位址,老實說這真的沒有意義,你不如讓遊戲本身產生一些唯一碼,看你要綁裝置還是綁啥,再去看怎麼做,或是做多因子認證,確認玩家身分,但什麼遊戲需要這麼複雜的機制,就說一般家庭萬一有五個人玩,每個人都走同一個IP出來,或是某遊戲公會待在某個地方幾十個人都走同一個IP出來,你怎麼靠單一IP去辨認哪個玩家呢,這很困難吧
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

3
Ray
iT邦大神 1 級 ‧ 2021-07-14 16:44:41

你忘了一件事:
從 OVH 的虛擬主機往外面送封包的時候, 他會穿越 OVH 外圍的防火牆, 上面又幫你做了一次 SNAT, 導致你原始端的 IP 遺失, 只留下 OVH 閘口的 IP...

要避開這個問題, 你的主機和 OVH 之間, 要建一個 GRE Tunnel, 把用戶端送來的封包, 先封裝在 GRE 裡面, 透過 Tunnel 傳送回來, 到達之後再解開還原, 這樣才不會被改掉 Source Address...

再不然, 你就要把整台主機都搬進去 OVH 裡面, 才不會被他改掉 Source...

其實我有測試RouterOS的PPTP功能,裡面有GRE通道,
但目前就是卡在怎麼從抗DDoS端轉送回來,玩家都在台灣然後要求低延遲,所以伺服器放OVH是暫時沒辦法/images/emoticon/emoticon20.gif

我要發表回答

立即登入回答