하나의 인터페이스(기본 게이트웨이)에서 OpenVPN/tun0을 통해 모든 트래픽 라우팅 - 소스 주소/인터페이스에 따라 정책 기반 라우팅

하나의 인터페이스(기본 게이트웨이)에서 OpenVPN/tun0을 통해 모든 트래픽 라우팅 - 소스 주소/인터페이스에 따라 정책 기반 라우팅

나는 2개의 인터페이스 myvpnserver와 다음 을 갖춘 Debian Linux VPN 라우터를 가지고 있습니다 eno1:eno2

  • eno1LAN 및 인터넷 라우터에 연결합니다. 고정 IP 주소가 있는 이 인터페이스에는 myvpnserver기본 게이트웨이(인터넷으로 연결)가 있습니다. OpenVPN은 이 인터넷 연결을 사용하여 VPN 서버에 연결합니다.
  • eno2스위치에 연결되었습니다. DHCP 서버는 이 인터페이스에서 실행됩니다. 연결된 클라이언트의 모든 트래픽이 eno2VPN/tun0을 통해 라우팅되기를 원합니다 .

기본 설정이 잘 작동합니다. 내가 연결된 호스트에서 eno2VPN LAN의 원격 호스트(예 10.123.0.0/24: )에 액세스할 수 있습니다.

다음 목표는 myvpnserver소스 주소나 인터페이스를 기반으로 라우팅하는 것입니다.

myvpnserver인터넷(예 ftp.debian.org: VPN 호스트) 에 연결되어 있는 경우 기본 게이트웨이를 사용해야 합니다 eno1. 연결하려는 클라이언트가 eno2동일한 인터넷 호스트(예: ftp.debian.org)에 연결하려는 경우 트래픽은 기본 게이트웨이 tun0가 아닌 VPN/을 통해 myvpnserver라우팅되어야 합니다.

// For Incoming Traffic:
If( InputInterface = eno2 ) Then
    default_gateway = 172.17.100.1
Else
    default_gateway = gateway as declared in /etc/network/interfaces
End If

내가 찾은정책 기반 라우팅가야 할 길인 것 같습니다. "일반" 라우팅은 대상에만 기반을 두는 반면, 정책 기반 라우팅은 입력 인터페이스나 소스 IP 범위와 같은 다른 측면을 고려할 수 있다고 합니다.

어떤 조치를 취해야 합니까? (저는 Debian 11/Bulseye를 사용하고 있습니다.)

1000 vpntunnel1.) 에 한 줄을 추가했습니다 /etc/iproute2/rt_tables.

무엇 향후 계획? 구성 예를 들어주실 수 있나요?

어떤 조언이라도 진심으로 감사드립니다!

답변1

다음 단계는 정책 규칙과 라우팅 테이블 항목을 추가하는 것만큼 간단할 수 있습니다.

당신은 시도 할 수 있습니다:

ip route add default via 172.17.100.1 table 1000
ip rule add type unicast iif eno2 table 1000 pref 30000

나는 172.17.100.1이 VPN 터널의 다른 쪽 끝이라고 가정합니다. 표에서는 값 1000을 사용했지만 "vpntunnel"이라는 항목을 추가했으므로 해당 이름을 사용할 수 있습니다.

VPN에 내 권장 사항과 충돌할 수 있는 일부 구성 설정이 이미 있을 수 있습니다. " ip rule show" 및 " " 의 출력이 ip route show table all이 문제에 유용할 수 있습니다. 또한 기존 iptables 구성을 권장 솔루션으로 변경해야 할 수도 있습니다.

관련 정보