특정 하드웨어 인터페이스를 통해 모든 VPN 트래픽을 라우팅하는 방법은 무엇입니까?

특정 하드웨어 인터페이스를 통해 모든 VPN 트래픽을 라우팅하는 방법은 무엇입니까?

두 개의 eth 인터페이스와 하나의 wlan 인터페이스가 있는 컴퓨터가 있습니다. VPN(openvpn)에도 연결되어 있으므로 tun0 인터페이스도 있습니다. 이제 모든 VPN 트래픽이 이더넷이 아닌 WLAN 인터페이스를 사용하여 전송되는지 확인하고 싶습니다. 기본적으로 실행에서 볼 수 있듯이 eth1을 통해 전송됩니다 iftop. 내 라우팅 테이블은 다음과 같습니다.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         Teltonika.lan   0.0.0.0         UG    100    0        0 eth1
default         192.168.222.1   0.0.0.0         UG    600    0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 eth0
172.89.0.0      *               255.255.255.0   U     0      0        0 tun0
192.0.2.1       192.168.222.1   255.255.255.255 UGH   600    0        0 wlan0
192.168.0.0     *               255.255.0.0     U     100    0        0 eth1
192.168.3.0     *               255.255.255.0   U     100    0        0 eth0
192.168.222.0   *               255.255.255.0   U     600    0        0 wlan0

답변1

ip ruleLinux에서는 및 명령을 사용하여 라우팅 규칙을 조정할 수 있습니다 ip route. 후자는 명령에 대한 고급 버전입니다 route.

귀하의 경우 wlan0인터페이스의 기본 게이트웨이가 존재하는 유일한(또는 선호하는) 기본 게이트웨이 인 별도의 라우팅 테이블을 갖고 tun0인터페이스에서 들어오는 모든 트래픽이 사용되도록 명시하는 라우팅 규칙을 설정하여 원하는 동작을 얻을 수 있습니다. 이 별도의 라우팅 테이블.

예를 들어 다음 두 명령을 통해 얻을 수 있습니다.

ip route add default via 192.168.222.1 table 100  # <-- 100 is an arbitrary number for the separate routing table
ip rule add iif tun0 table 100

이를 정리하려면 다음을 사용하십시오.

ip rule del iif tun0 table 100
ip route flush table 100

VPN을 설정한 후 실시간으로 명령을 테스트하고 모든 것이 의도한 대로 작동하는지 확인할 수 있습니다.

그런 다음 필요할 때 해당 명령(또는 전체 설정에 가장 적합한 명령)을 실행하도록 할 수 있습니다 openvpn. 가장 간단한 방법은 해당 명령을 두 개의 스크립트(각각)에 넣은 다음 OpenVPN route-uproute-pre-down후크를 통해 호출하는 것입니다.

실제로 OpenVPN을 사용하는 방법에 따라 명령줄에서 및 (및 가능하면 ) openvpn지정을 실행하거나  터널의 OpenVPN 파일 에 이러한 구성을 추가 해야 합니다 .--route-up script-that-adjusts-routing.sh--route-pre-down script-that-undoes-routing.sh--script-security 2.conf

route-up이미 및 스크립트가 있는 경우 route-pre-down기존 스크립트에 조정 명령을 추가해야 하며, 이 스크립트의 기능에 따라 추가적인 주의가 필요할 수 있습니다.

관련 정보