OpenVPN 및 경로 테이블에 대한 많은 질문과 비슷해 보이지만 다른 질문과는 다르다고 생각합니다. 또는 적어도 아직 중복된 질문을 찾지 못했습니다.
제 경우에는 OpenVPN 서버에 연결한 후 기본 게이트웨이가 255.255.255.0(예, 마스크가 아닌 게이트웨이)으로 변경된 것을 확인했습니다. 아래는 제 라우팅 테이블입니다.
OpenVPN 서버에 연결하기 전에:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.15.254 0.0.0.0 UG 20600 0 0 wlp0s20f3
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp0s20f3
172.16.8.0 0.0.0.0 255.255.248.0 U 600 0 0 wlp0s20f3
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-8c249cf54f1c
OpenVPN 서버에 연결한 후:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 255.255.255.0 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 172.16.15.254 0.0.0.0 UG 600 0 0 wlp0s20f3
10.8.0.0 255.255.255.0 255.255.255.0 UG 0 0 0 tun0
128.0.0.0 255.255.255.0 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp0s20f3
172.16.8.0 0.0.0.0 255.255.248.0 U 600 0 0 wlp0s20f3
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-8c249cf54f1c
192.168.100.0 255.255.255.0 255.255.255.0 UG 0 0 0 tun0
_VPN_server_IP_ 172.16.15.254 255.255.255.255 UGH 0 0 0 wlp0s20f3
255.255.255.0 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
예상대로 작동합니다. OpenVPN은 모든 인터넷 트래픽을 서버를 통해 라우팅하고 모든 트래픽을 원격 LAN(192.168.100.0/24)으로 라우팅합니다. 게이트웨이가 255.255.255.0인 것을 보고 혼란스러웠습니다. 넷마스크가 255.255.255.0인데 게이트웨이가 255.255.255.0으로 설정되어 있다면 이해할 수 있습니다. 이것을 이해하는 방법?
첫 번째 항목을 삭제하면 ip route del 0.0.0.0/1 via 255.255.255.0 dev tun0
인터넷은 VPN을 통한 라우팅을 확실히 중단합니다. 다시 추가하여 가지고 놀아 보았습니다.
ip route add 0.0.0.0/1 via _VPNserver_IP_ dev tun0
또는 VPN 서브넷(10.8.0.0/24)의 서버 IP를 사용하세요.
ip route add 0.0.0.0/1 via 10.8.0.1 dev tun0
둘 다 작동하지 않습니다. 그래서 저는 이것이 OpenVPN이 서버로 연결하기 위해 사용하는 일종의 트릭이라고 생각합니다. 어떤 조언이라도 대단히 감사하겠습니다.
답변1
@AB가 추측했듯이 이는 실제로 구성 오류로 인한 것입니다. 토폴로지를 서브넷으로 지정하는 것을 잊었으므로 기본값은 net30입니다. 결과적으로 로그에 다음 경고가 표시됩니다.
"Fri Apr 29 22:38:56 2022 WARNING: Since you are using --dev
tun with a point-to-point topology, the second argument to
--ifconfig must be an IP address. You are using something
(255.255.255.0) that looks more like a netmask. (silence this
warning with --ifconfig-nowarn)".
서브넷으로 변경한 후 문제가 해결되었습니다. 내 라우팅 테이블에 포함된 항목은 다음과 같습니다 tun0
.
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.0.0 10.8.0.1 255.255.0.0 UG 0 0 0 tun0