OpenVPN 서버가 tun0 패킷을 로컬 네트워크로 전달하도록 하는 방법은 무엇입니까?

OpenVPN 서버가 tun0 패킷을 로컬 네트워크로 전달하도록 하는 방법은 무엇입니까?

TUN 연결을 통해 조정하려는 기계가 세 대 있습니다.

FREEBSD VPN의
로컬 서브넷 10.0.202.1/24에서 OpenVPN 서버(tun) 10.0.200.21/24를 실행하는 상자

REMOTE

VPN의 공용 IP 10.0.202.6/24

WEBSERVER
로컬 서브넷의 10.0.200.31/24

REMOTEOpenVPN을 통해 VPN에 연결할 수 FREEBSD있으며 연결은 양호하지만 잘못 구성되었습니다. 의 브라우저 에 의 IP 주소를 입력하여 REMOTE에서 까지 연결하려고 하면 에 연결할 수 없습니다. 로컬 서브넷에 직접 연결하면 도달 가능합니다 .WEBSERVERWEBSERVERREMOTEWEBSERVERREMOTE

문제를 해결하는 동안 다음을 배웠습니다.

  • REMOTEFREEBSD과 SSH도 가능합니다.
  • FREEBSD의 이더넷 포트 에 설정된 패킷 캡처는 REMOTE의 VPN IP 10.0.202.6과 주고받는 패킷을 캡처하지 않습니다. 따라서 REMOTE의 패킷은 로컬 서브넷에 도달하지 않습니다.
  • 그만큼openvpn.log파일에 FREEBSD다음 줄이 있습니다.GET INST BY VIRT: 10.0.200.31 [failed]

FREEBSD따라서 OpenVPN은 TUN 장치에서 수신된 패킷을 '의 이더넷 어댑터로 전달하고 로컬 서브넷으로 전달 하지 않는 것 같습니다 .

내 server.conf 파일에 다음 줄이 있습니다.
push "route 10.0.200.0 255.255.255.0"

이 줄을 추가하려고 시도했지만 도움이 되지 않았습니다.
route 10.0.200.0 255.255.255.0


라우팅 테이블은 다음과 같습니다.FREEBSD

라우팅 테이블

인터넷:
대상 게이트웨이 플래그 참조 Netif Expire 사용
기본값 10.0.200.1 UGS 0 4306 re0
10.0.200.0 링크#9 U 0 61582 re0
10.0.200.21 링크#9 UHS 0 41 lo0
10.0.201.0 10.0.200.1 UGS 0 0 re0
10.0.202.0 10.0.202.2 UGS 0 0 tun0
10.0.202.1 링크#12 UHS 0 0 lo0
10.0.202.2 링크#12 UH 0 0 tun0
로컬호스트 링크#11 UH 0 193743 lo0


메시지 에 대해 온라인에서 읽었 GET INST BY VIRT: 10.0.200.31 [failed]으며 Linux 시스템에서는 다음 명령을 실행하는 것이 좋습니다. 나는 그것을 이해하지 못하고 이상한 구성에
echo 1 > /proc/sys/net/ipv4/ip_forward
들어가고 싶지 않기 때문에 그것을 실행하는 것이 두렵습니다 . FREEBSD또한 저는 OpenVPN이 닫힐 때 적절하게 관리되고 제거되도록 필요한 구성을 자동으로 생성하도록 server.conf 파일을 수정하는 솔루션을 강력히 선호합니다.

이 문제에 대한 해결책은 무엇입니까?

답변1

문제를 발견했습니다. 위에서 언급한 FreeBSD 기반 NAS 어플라이언스 소프트웨어인 FreeNAS는 0으로 설정 FREEBSD되어 있는 것으로 나타났습니다 net.inet.ip.forwarding. 이는 명령을 사용하여 볼 수 있습니다 sysctl -a | grep net.inet.ip.forwarding. 패킷을 전달하려면 sysctl net.inet.ip.forwarding=1.

이 변경 사항은 재부팅 후에도 유지되지 않습니다. /etc/rc.conf 파일을 사용하여 set 해야 할 수도 있을 것 같은데 gateway_enable="YES", 지금까지 이 설정은 재부팅할 때까지 처리되지 않는 것으로 나타났으며, 불행히도 FreeNAS에서는 재부팅할 때마다 rc.conf가 덮어쓰이는 것 같습니다. 이 변수를 시스템의 기본값을 저장하고 rc.conf의 사용자 정의 구성으로 덮어쓰는 /etc/defaults/rc.conf에 쓰는 것이 가능할 수 있지만 /etc/defaults/rc.conf 파일 상단에 편집하지 말라는 경고가 있습니다.

따라서 이 문제가 완전히 해결된 것은 아니지만 적어도 문제가 무엇인지 파악했습니다. 이제 이 내용을 이해했으므로 로컬 서브넷에서 https 웹 관리 어플라이언스에 로그인하는 데 문제가 있음을 알게 되었습니다. 그것은 해결해야 할 또 다른 문제가 될 것입니다.

답변2

좋습니다. VPN 클라이언트에는 네트워크에 연결되는 경로가 있고 10.0.200.0/24VPN 서버에도 경로가 있습니다. 하지만 문제는 귀하의 웹 서버가 네트워크 10.0.200.31에 접근할 수 있는 경로를 가지고 있느냐는 것입니다.10.0.202.0/24

freebsd 상자에서 tcpdump를 수행하십시오. 호스트 의 트래픽이 전달되는 것을 볼 수 있지만 10.0.202.6반환 트래픽은 표시되지 않습니다.

관련 정보