VPN 클라이언트를 통해 나가는 트래픽을 제외한 모든 트래픽을 라우팅 하고 싶습니다 computer_X
(더 쉬운 경우 클라이언트에 VPN 서버를 설치할 수도 있습니다).
기본적으로 들어오는 연결(예: 웹 서버 :80, :443 또는 ssh :22에 대한 요청)은 여전히 내 WAN 인터페이스를 통해 라우팅되지만 나가는 연결(예: 내 :80의 요청)은 computer_X
VPN 클라이언트를 통해 라우팅되어야 합니다.
항상 사용하는 규칙을 추가했습니다WAN 게이트웨이내에서 시작되는 패킷의 기본 경로로WAN 인터페이스. 바라보다:
# ip route show table 42
default via WAN_GATEWAY dev eth0
# ip rule list
0: from all lookup local
32765: from WAN_IP lookup 42
32766: from all lookup main
32767: from all lookup default
# ip r
default via WAN_GATEWAY dev eth0 onlink
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
WAN_SUBNET/26 via WAN_GATEWAY dev eth0
WAN_SUBNET/26 dev eth0 proto kernel scope link src WAN_IP
# ip a
eth0: inet WAN_IP ...
tun0: inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
이제 내 경로를 통해 나가는 모든 트래픽을 라우팅하고 싶습니다.Tun0ip route add default via 10.8.0.1
하지만 터널 자체를 라우팅할 수 없기 때문에 할 수 없습니까 ?
하지만 아마도 기본 경로를 계속 사용할 수 있을 것입니다.
ip route default via 10.8.0.1
하지만 이와 같이 VPN 연결을 위한 특정 경로도 만드시겠습니까?
ip route add table 32 default via WAN_IP
ip rule add from 10.8.0.0/8 table 32
VPN이 자체적으로 라우팅되지 않는 것을 방지할 수 있기를 바랍니다.
아니면 10.8.0.0/8을 제외한 모든 서브넷에 대한 모든 경로를 수동으로 추가해야 합니까(터널이 자체적으로 터널링하지 않도록 하기 위해)?
ip route add 128.0.0.0/1 via 10.8.0.1
ip route add 64.0.0.0/2 via 10.8.0.1
ip route add 32.0.0.0/3 via 10.8.0.1
ip route add 16.0.0.0/4 via 10.8.0.1
ip route add 12.0.0.0/6 via 10.8.0.1
ip route add 11.0.0.0/7 via 10.8.0.1
ip route add 9.0.0.0/8 via 10.8.0.1
답변1
OpenVPN은 기본적으로 기본 경로 테이블의 OpenVPN 서버에 경로를 추가합니다. 가장 일치하는 규칙에 따라 라우팅 결정이 내려지며, 일치하는 규칙이 없으면 기본 게이트웨이가 사용됩니다. OpenVPN 서버에는 더 정확한 규칙이 있으므로 기본 경로 대신 사용됩니다.
OpenVPN을 통해 모든 트래픽을 라우팅하려면 기본 구성을 사용한 다음 특별한 경우에 대한 예외를 구성해야 합니다.
별도로 구성할 수 있습니다.네트워크 네임스페이스자체 라우팅 구성을 갖고 그 안에서 서비스를 실행합니다. 이를 위해서는 네임스페이스에 별도의 IP 주소를 할당하거나 네임스페이스 간에 NAT 구성을 사용해야 할 수도 있습니다.
별도의 네트워크 네임스페이스에 대한 대안은 다음을 사용하는 것입니다.정책 라우팅패킷 태그 포함.
소스 포트에서 들어오는 패킷을 iptables
표시 하는 데 사용됩니다.10
80,443화그리고번호 22:
iptables -t mangle -A OUTPUT -p tcp -m multiport --sports 80,443,22 -j MARK --set-mark 10
라우팅 테이블을 구성합니다. 기본 경로 테이블을 사용하는 OpenVPN 구성(터널 자체를 제외한 OpenVPN 터널을 통과하는 모든 트래픽) 태그가 지정된 트래픽에는 별도의 라우팅 테이블이 있습니다.
# add new routing table 100 and set its default routing to your default gw
ip route add table 100 default via $DEFAULT_GW
# add rule to use the new table for packets marked 10
ip rule add fwmark 10 table 100
# flush routing cache
ip route flush cache