OpenVPN - 라우팅 테이블 이해 + VPN을 통해 특정 IP로만 트래픽을 라우팅하는 방법

OpenVPN - 라우팅 테이블 이해 + VPN을 통해 특정 IP로만 트래픽을 라우팅하는 방법

OpenVPN을 사용하여 VPN 서비스에 연결하고 있는데 모든 것이 잘 작동합니다. 연결하면 자동으로 설정되는 규칙은 다음과 같습니다.

root@linux:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:AA:1B:01:AC:FB  
          inet addr:192.168.1.201  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:46867 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:37977382 (36.2 MiB)  TX bytes:5098121 (4.8 MiB)
          Interrupt:16 

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.7.7.126  P-t-P:10.7.7.125  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:23284 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5817 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:31366374 (29.9 MiB)  TX bytes:308591 (301.3 KiB)

root@linux:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.7.7.125      128.0.0.0       UG    0      0        0 tun0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
5.120.121.114   192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
10.7.7.1        10.7.7.125      255.255.255.255 UGH   0      0        0 tun0
10.7.7.125      *               255.255.255.255 UH    0      0        0 tun0
128.0.0.0       10.7.7.125      128.0.0.0       UG    0      0        0 tun0
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

내가 이해한 내용은 다음과 같습니다.

  • 내 로컬 IP 주소는 192.168.1.201입니다.
  • 로컬 게이트웨이는 191.168.1.1입니다.
  • 5.120.121.114는 VPN 공용 IP입니다.
  • tun0은 VPN 터널이고 내 컴퓨터의 주소는 10.7.7.126입니다.
  • 10.7.7.125는 VPN의 다른 "끝"인 것으로 알고 있는 ptp 주소입니다.

라우팅 테이블과 관련하여 나는 다음을 이해합니다.

  • 기본적으로 모든 트래픽은 tun0 인터페이스의 10.7.7.125를 통해 전송됩니다(그런데 마스크가 왜 그런가요?)
  • 10.7.7.1은 tun0을 통해 연결할 수 있습니다.
  • VPN의 공개 IP는 eth0을 통해 연결할 수 있습니다.

두 번째 기본 게이트웨이를 이해하지 못합니다. 이는 VPN이 활성화되지 않은 경우의 기본값입니다. 단순히 우회하는 것인가요?

10.7.7.1은 어떻습니까? VPN 게이트웨이인거 같은데..

왜 대상이 128.0.0.0입니까?

OpenVPN은 이러한 모든 규칙을 자동으로 생성합니다. 하지만 그것들은 무엇을 기반으로 만들어지는 걸까요?

VPN의 서버 측을 제어할 수 없고 클라이언트 구성만 제어할 수 있습니다.

이제 다음을 수행하고 싶다면 어떻게 해야 할까요?

  • 216.58.213.174에 대한 모든 트래픽이 VPN tun0을 통과하도록 강제하고 나머지는 모두 eth0을 통과하도록 하시겠습니까?
  • VPN을 시작할 때 자동으로 설정되도록 할 수 있나요?

이를 이해할 수 있도록 귀하의 제안과 지원에 감사드립니다.

한국, dk

편집하다:

root@linux:~# ip route list
0.0.0.0/1 via 10.7.7.125 dev tun0 
default via 192.168.1.1 dev eth0 
5.152.210.249 via 192.168.1.1 dev eth0 
10.7.7.1 via 10.7.7.125 dev tun0 
10.7.7.125 dev tun0  src 10.7.7.126 
128.0.0.0/1 via 10.7.7.125 dev tun0 
192.168.1.0/24 dev eth0  src 192.168.1.201 

답변1

두 번째 기본 게이트웨이를 이해하지 못합니다. 이는 VPN이 활성화되지 않은 경우의 기본값입니다. 단순히 우회하는 것인가요?

이는 기본 게이트웨이를 유지하면서 터널을 통해 트래픽을 라우팅하는 OpenVPN의 해킹 중 하나입니다. 0.0.0.0/1 및 128.0.0.0/1 경로는 모든 주소와 일치하면서도 더 구체적이므로 0.0.0.0/0 경로보다 우선합니다. 자세한 내용은 OpenVPN 설명서에서 "def1"을 검색하세요.

10.7.7.1은 어떻습니까? VPN 게이트웨이인거 같은데..

아마도 그렇습니다.

OpenVPN은 이러한 모든 규칙을 자동으로 생성합니다. 하지만 그것들은 무엇을 기반으로 만들어지는 걸까요?

아마도 서버에서 푸시되었을 것입니다. 구성 파일과 함께 클라이언트가 시작되는 동안 클라이언트의 출력을 제공할 수 있다면 더 많은 정보를 제공할 수 있습니다.

VPN의 서버 측을 제어할 수 없고 클라이언트 구성만 제어할 수 있습니다.

네, 하지만 클라이언트는 서버가 클라이언트에서 수행하기를 원하는 거의 모든 작업을 재정의할 수 있도록 고도로 구성 가능합니다. 하지만 연결하려면 공급자의 기본 요구 사항을 충족해야 합니다. 또한 공급자를 화나게 하지 않도록 공급자의 "이용 약관"을 확인해야 합니다.

이제 다음을 수행하고 싶다면 어떻게 해야 할까요?

216.58.213.174에 대한 모든 트래픽이 VPN tun0을 통과하도록 강제하고 나머지는 모두 eth0을 통과하도록 하시겠습니까?

네, 구성에 "경로 216.58.213.174 255.255.255.255 10.7.7.125"를 포함하세요. 그러면 원하는 경로가 설정됩니다. 구성에서 "redirect-gateway" 옵션을 제거하여 다른 경로를 그대로 유지할 수 있습니다.

VPN을 시작할 때 자동으로 설정되도록 할 수 있나요?

응, 위를 봐

제가 설명한 모든 옵션과 더 많은 옵션은 OpenVPN의 온라인 설명서에서 찾을 수 있습니다. https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage

관련 정보