특정 네트워크 인터페이스를 통해 원격 피어에 연결하도록 Wireguard 인터페이스를 어떻게 구성합니까?

특정 네트워크 인터페이스를 통해 원격 피어에 연결하도록 Wireguard 인터페이스를 어떻게 구성합니까?

gateway인터넷에 공개적으로 표시되고 appserverNAT/방화벽 뒤에 숨겨져 있는 두 개의 서버가 있다고 가정합니다 . 또한 이 두 서버 각각에완전히 별도의 인터넷 업링크에 연결된 인터페이스(아래 다이어그램 참조)

두 서버 중 하나가 실패할 경우 서버 연결을 유지한다는 목표로 두 서버 사이에 두 개의 독립적인 Wireguard 터널을 설정하고 싶습니다.

                   |     Internet     |        
[ gateway ]        |                  |        [appserver]
                   |                  | 
   (wg0) <-----> (ens1) < - - - - > (ens1) <----> (wg0)
                   |                  | 
                   |                  | 
                   |                  |        
   (wg1) <-----> (ens2) < - - - - > (ens2) <----> (wg1)
                   |                  | 
                   |                  | 

기본적으로 Wireguard는 시스템의 기본 게이트웨이를 통해 모든 트래픽을 라우팅하는 것으로 보입니다. 따라서 appserver에 연결을 시도 하면 gateway다음 두 인터페이스 중 하나만 사용됩니다.

                   |     Internet     |        
[ gateway ]        |                  |        [appserver]
                   |                  | 
   (wg0) <--+--> (ens1) < - - - - > (ens1) <--+--> (wg0)
            |      |                  |       |
            |      |                  |       |
            |      |                  |       | 
   (wg1) <--+    (ens2)      X      (ens2)    +--> (wg1)
                   |                  | 
                   |                  |

일부 네트워크 도구에서는 네트워크 트래픽을 보낼 때 사용할 특정 네트워크 인터페이스를 설정할 수 있으므로 Wireguard도 동일한 작업을 수행할 수 있습니까? 즉, 기본 경로 메트릭을 통해서만 트래픽을 보내 ens1거나 이에 관계없이 트래픽을 보내시겠습니까? ens2그렇지 않다면 대신 이 작업을 수행하도록 Linux의 네트워킹 시스템을 어떻게 설정할 수 있습니까?

답변1

Wireguard 자체가 특정 인터페이스를 통해 연결되도록 하는 방법을 찾을 수 없었기 때문에 결국 의 라우팅 테이블 ens2에 새 경로를 추가하여 단순히 트래픽을 라우팅하는 것으로 결정했습니다.appserver

ip route add $GATEWAY_ESN2_ADDR/32 via $APPSERVER_ESN2_ADDR_GW metric 50

APPSERVER_ESN2_ADDR_GWappserver의 게이트웨이 라우터 주소입니다 .

FwMark이를 조사하는 동안 Wireguard를 사용하면 아래 필드를 설정하여 특정 Wireguard 인터페이스에 속하는 나가는 트래픽에 fwmark를 설정할 수 있다는 것을 알았습니다 [Interface]. Wireguard는 이 글을 쓰는 시점(2021-09) 현재 피어별로 이 표시를 설정하는 것을 지원하지 않습니다.

*누군가가 적절한 해결책을 발견할 경우를 대비해 이 질문을 열어 두겠습니다.

관련 정보