
환경
- 우분투 18.04.3 LTS
- ZeroTier 1.4.6(최신 안정 패키지)
- Wine 4.17(최신 개발 패키지)
내 시스템에서 Red Alert 3 LAN 세션(와인 사용)을 호스팅하려고 하는데 CGNAT 설정을 사용하고 있으므로 zerotier를 사용하고 싶습니다.
Zerotier는 동일한(zerotier) 네트워크에 있는 다른 시스템과 연결하는 한 완벽하게 작동합니다. 그런데 네트워크 로비에서는 다른 플레이어의 모습을 볼 수 없습니다. Wireshark를 사용하여 RA3가 제대로 작동하는 데 필요한 UDP 패킷이 LAN 인터페이스에서만 전송되고 0티어 네트워크 인터페이스로는 전혀 전달되지 않는다는 사실을 발견할 수 있었습니다.
이에 대한 다음 시도는 와인이 0티어 인터페이스를 사용하도록 강제하는 도구를 사용하는 것이었습니다.
- LD_PRELOAD를 사용하여 로드할 수 있는 C의 작은 바인드 프로그램
- 스크립트를 사용하여 네임스페이스를 생성하고 여기에 인터페이스를 바인딩
-
동일한 순서로 실패한 이유:
UDP를 지원하지 않았기 때문에
- 이것은 처음에는 작동했습니다. 하지만 안정적이지 않았고 일관성도 없었습니다. 때로는 다른 플레이어가 로비에서 나를 볼 수 있지만 나는 그들을 볼 수 없습니다. 그리고 다른 때에는 그 반대였습니다. 또한 이것을 루트로 실행해야 했는데, 이는 와인을 사용하는 동안에는 좋지 않습니다. 따라서 이 옵션은 도움이 되지 않았지만 몇 가지 사항을 이해하는 데 도움이 되었습니다.
- 해당 인터페이스에 바인딩할 수 있었지만 안타깝게도 동일한 IP를 사용할 수 없었고(동일한 서브넷에 다른 IP가 생성됨) 옵션 #2를 사용할 때처럼 출력을 얻지 못했습니다. UI 에서 zerotier 네트워크 인터페이스에 IP 주소를 추가해 보기도 했습니다
my.zerotier.com
. 도움이 되지 않았습니다.
이 외에도 많은 iptables 구성을 시도했지만 도움이 되지 않았습니다. sysctl을 통해 ipv4 전달도 활성화했습니다. 나는 아직도 이 문제가 iptables를 통해 해결될 수 있다고 생각합니다.이것내가 지금까지 가지고 있는 최신 시도입니다(bash 스크립트 형식).