나의 장면-
S1과 S2라는 우분투를 실행하는 두 개의 서버가 있습니다. S1에는 공용 IP 주소가 있으며 openvpn 서버를 실행 중입니다. S2에는 openvpn 클라이언트가 설치되어 있고 openvpn 서버에 연결됩니다. S1 공용 IP(eth1): 47.88.240.xxx, Openvpn IP(tun0): 10.8.0.1 및 S2 OpenvpnIP(tun0): 10.8.0.2
S2의 UDP 포트 28015에서 실행되는 게임 서버가 있습니다.
S2의 IP 테이블을 다음으로 업데이트했습니다.
10.8.0.1을 통한 0.0.0.0
S2 기본 게이트웨이를 통한 47.88.240.xxx
- S1에서 다음 명령을 사용하여 모든 인터넷 트래픽을 S2에서 S1로 라우팅했습니다.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
S2에서 인터넷을 탐색하는 동안 Whatismyip.com의 IP 주소를 확인했는데 47.88.240.xxx가 표시되었습니다.
또한 S2에서 Google의 DNS 서버를 추적했는데 첫 번째 홉은 10.8.0.1이었고 추적 경로는 성공했습니다.
따라서 S2의 모든 인터넷 트래픽은 S1을 통과한다고 확신합니다.
포트를 전달하기 위해 S1에서 다음 명령을 사용하고 있습니다.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A 사전 라우팅 -d 47.88.240.xxx -p udp --dport 28015 -j DNAT --to-dest 10.8.0.2:28015
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 28015 -j SNAT --to-source 10.8.0.1
이 방법을 사용할 때, 집에 있는 컴퓨터에서 게임 서버(47.88.240.xxx:28015)에 쿼리하면 게임 서버가 나오는데, 몇 번(아마 5번 정도) 지나면 한동안 응답이 없고, 잠시 후 다시 응답합니다.
그래서 SNAT 부분을 S2에서 설명한 방법으로 교체했습니다.https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System
이렇게 하면 필요한 만큼 게임 서버에 쿼리할 수 있으며 응답이 멈추지 않습니다.
- 두 가지 기본 게이트웨이 방법을 모두 사용하여 게임 서버에 안정적으로 연결되었으나 게임 서버가 게임의 메인 서버 목록에 나열되지 않지만 수동으로 게임 서버에 연결할 수 있습니다. 게임 서버에서 게임 메인 서버로 나가는 트래픽에 문제가 있는 것 같습니다. 올바른 IP가 전송되지 않거나 게임 서버가 어떤 이유로 메인 서버에 접속할 수 없습니다.
왜 이런 일이 발생하는지 아시나요?