OpenWRT 라우터에서 실행 중인 OpenVPN 서버가 있고 이를 사용하고 싶습니다.게이트웨이로서의 OpenVPN 클라이언트내 라우터에 연결된 일부 로컬 컴퓨터의 경우.
내가 한 일/성공한 일:
- OpenWRT 라우터(
192.168.0.1
/10.0.0.1
)에서 OpenVPN 클라이언트( /10.0.0.6
)에 ping 및 ssh를 보낼 수 있습니다. - 나는 라우터에 다음과 같은
tunnelpi1
새로운 라우팅 테이블을 설정했습니다 ./etc/iproute2/rt_tables
#
# reserved values
#
128 prelocal
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
10 tunnelpi1
192.168.0.217
10.0.0.6
클라이언트 IP를tunnelpi1
테이블에 추가하고 이 테이블에 대한 기본 경로를 설정하여 OpenVPN 클라이언트를 통해 로컬 클라이언트()의 트래픽을 라우팅하도록 라우터를 구성했습니다 .
ip rule add from 192.168.0.217/32 table tunnelpi1
ip route add default via 10.0.0.6 dev tun table tunnelpi1
- 로컬 클라이언트()에서 경로를 추가하면
192.168.0.217
더 이상 핑할 수 없으며, 제거하면 다시 핑할 수 있습니다. 따라서 규칙이 뭔가를 하고 있는 것처럼 보입니다(다른 클라이언트는 영향을 받지 않으므로 괜찮습니다).8.8.8.8
8.8.8.8
- OpenVPN 클라이언트(
10.0.0.6
)에는 자체 를 통해 완전히 작동하는 인터넷 연결이 있습니다eth0
.ping 8.8.8.8
문제없이 작동했습니다. 기본 게이트웨이는 VPN(tun0
)이 아니라eth0
제가 원하는 인터페이스입니다. - OpenVPN 클라이언트에서 IP 전달을 활성화하고 iptables를 통해 NAT 규칙을 추가하여 다음을 통해 모든 것을 전달했습니다
eth0
.
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
**작동하지 않는 것: 트래픽이 192.168.0.217
통과하기를 원 10.0.0.6
하지만 그런 일이 발생하지 않는 것 같습니다. 테이블 규칙을 추가한 후에는 아무 것도 핑할 수 없습니다. OpenVPN이 무언가를 차단하고 있거나 openvpn-client의 iptables 설정이 잘못된 것 같습니다. 여기서부터 어떻게 진행해야 할지 모르겠습니다.
어떤 제안이 있으십니까?