이 작업을 수행하는 방법을 찾지 못했습니다.
openconnect 및hostapd와 다음 vpn iptables 규칙을 사용하는 VPN 액세스 포인트가 있습니다.
pi@raspberrypi:~ $ cat /etc/iptables.ipv4.vpn.nat
# Generated by iptables-save v1.4.21 on Sun Sep 4 02:28:21 2016
*filter
:INPUT ACCEPT [2:152]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2:152]
-A FORWARD -i tun0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan1 -o tun0 -j ACCEPT
COMMIT
# Completed on Sun Sep 4 02:28:21 2016
# Generated by iptables-save v1.4.21 on Sun Sep 4 02:28:21 2016
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [5:380]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
# Completed on Sun Sep 4 02:28:21 2016
다음과 같은 VPN이 아닌 액세스 포인트
# Generated by iptables-save v1.4.21 on Sun Sep 4 02:28:21 2016
*filter
:INPUT ACCEPT [2:152]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2:152]
-A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o wlan1 -j ACCEPT
COMMIT
# Completed on Sun Sep 4 02:28:21 2016
# Generated by iptables-save v1.4.21 on Sun Sep 4 02:28:21 2016
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [5:380]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o wlan1 -j MASQUERADE
COMMIT
# Completed on Sun Sep 4 02:28:21 2016
VPN 내부에서 접근할 수 없는 IP도 있기 때문에 xxxx, xxxy를 제외한 모든 트래픽을 VPN을 통해 보내고 싶습니다. 해당 트래픽의 경우 VPN 대신 액세스 포인트를 통해 액세스할 수 있도록 주기적으로 NAT를 사용하고 싶습니다.
어떻게 할 수 있는지 아시나요?
답변1
당신은 이 문제를 지나치게 생각하고 있습니다.
두 개의 인터페이스에 대해 두 개의 게이트웨이를 고려합니다(인터페이스 자체의 IP 주소가 아닌 게이트웨이).
gweth0=192.168.1.254
gwtun0=10.1.1.1
이렇게 라우팅할 수 있습니다.
route add default gw $gwtun0
route add -host x.x.x.x gw $gweth0
route add -host x.x.x.y gw $gweth0
전체 서브넷을 라우팅할 수도 있습니다.
route add -net a.b.c.d/24 gw $gweth0
iptables ... MASQUERADE
이는 IP 주소를 다시 작성해야 하는 경우에만 필요합니다. 단일 고객에게는 불가능합니다.