OpenVPN을 사용하여 여러 LAN을 연결하는 것은 네트워크 환경을 확장하고 안전한 연결을 제공하는 데 유용합니다. 이 예제에서는 OpenVPN 서버가 있고 해당 서버 뒤에 LAN(10.10.2.0/24)이 있으며, 두 개의 클라이언트가 각각 LAN 뒤에 있습니다.
- 클라이언트 1 (10.10.1.0/24 LAN)
- 클라이언트 2 (10.10.3.0/24 LAN)
목표는 이 3개의 LAN에 속한 장치들이 터널(루팅) 설정을 통해 서로 통신할 수 있도록 하는 것입니다.
단계별 처리 및 명령어
1. LAN 뒤에 있는 모든 기기는 IP 전달을 활성화해야 합니다. 이 예에서는 서버와 client1/client2가 해당됩니다. 이를 위해 다음 명령어를 사용합니다.
- 서버의
server.conf
파일에 다음 라우팅 명령어를 추가합니다.
route 10.10.1.0 255.255.255.0
route 10.10.3.0 255.255.255.0
push "route 10.10.2.0 255.255.255.0"
push "route 10.10.1.0 255.255.255.0"
push "route 10.10.3.0 255.255.255.0"
client-to-client
route
명령어는 서버의 커널 라우팅 테이블에 각 LAN 네트워크를 VPN 터널 인터페이스 및 OpenVPN으로 라우팅하도록 지시합니다.push
라우팅은 클라이언트가 연결될 때 추가되며 해당 네트워크를 VPN으로 라우팅하도록 클라이언트에 알립니다.
2. iroute
를 사용하여 OpenVPN 서버에게 각 클라이언트가 어떤 네트워크를 처리해야 하는지 알려줍니다. 이것은 커널의 라우팅 테이블을 우회하거나 변경하지 않지만, 커널이 OpenVPN 인터페이스로 향하는 라우팅을 허용합니다. iroute
명령어는 ccd
(Client Configuration Directory) 항목에 추가됩니다.
client-config-dir
를 서버 설정 파일에 다음과 같이 추가하여ccd
항목을 활성화합니다.
client-config-dir /path/to/ccd/
3. 각 클라이언트에 대한 ccd
항목을 생성합니다. 예를 들어, 10.10.1.0 LAN을 소유하는 클라이언트1의 경우 ccd/client1
파일에 다음 내용을 추가합니다.
ifconfig-push 10.10.2.2 255.255.255.255
iroute 10.10.1.0 255.255.255.0
4. 클라이언트2 (10.10.3.0 LAN을 소유)의 경우, ccd/client2
파일에 다음 내용을 추가합니다.
ifconfig-push 10.10.2.3 255.255.255.255
iroute 10.10.3.0 255.255.255.0
이렇게하면 각 클라이언트가 자체 LAN 네트워크를 처리하도록 설정됩니다.
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i eth+ -o tun+ -j ACCEPT
-A FORWARD -i tun+ -o eth+ -j ACCEPT
COMMIT
외부에서 추가해야 할 라우팅
만약 각 LAN에 대한 OpenVPN 라우터가 아닌 다른 장치에서 OpenVPN을 실행 중이라면, 추가 라우팅을 설정해야 합니다.
- 서버가 10.10.2.10이고 기본 라우트가 10.10.2.1인 경우, 2.x LAN이 VPN을 통해 접근 가능하거나 VPN을 통해 접근할 수 있게 하려면 2.1에 다음과 같이 라우트를 추가해야 합니다.
route add -net 10.10.1.0 netmask 255.255.255.0 gw 10.10.2.10
route add -net 10.10.3.0 netmask 255.255.255.0 gw 10.10.2.10
route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.10.2.10
이것은 10.10.2.1이 10.10.1.x 및 10.10.3.x와 VPN 내부 네트워크(예: 10.8.0.x)에 대한 트래픽을 10.10.2.10으로 보내도록 설정합니다.
- VPN 클라이언트는 소스 주소가 10.8.0.6인 10.10.2.20으로 트래픽을 보냅니다.
- VPN 서버(10.8.0.1 및 10.10.2.10)는 트래픽을 수신하고 IP 전달을 활성화한 후 트래픽을 10.10.2.20으로 전달합니다.
- 10.10.2.20이 이를 받고 10.8.0.6에 응답을 시도하지만 라우팅 테이블에 항목이 없습니다.
- 10.10.2.20에는 10.8.0.6에 대한 경로가 없기 때문에 기본 게이트웨이인 10.10.2.1로 트래픽을 보냅니다.
- 10.10.2.1은 라우팅 테이블을 확인하고 10.8.0.6에 대한 경로가 없으며 ISP일 가능성이 있는 기본 게이트웨이로 트래픽을 보냅니다.
- ISP는 RFC 1918 IP(LAN 전용)이므로 이를 무시합니다.
이렇게 하면 모든 연결하려는 LAN에 대해 이러한 라우트를 추가해야 합니다.
- Windows에서 라우트 추가 문제가 있는 경우, OpenVPN-GUI를 관리자 권한으로 실행하지 말고 OpenVPNServiceInteractive 서비스가 실행 중인지 확인하세요.
- Windows에서 추가 옵션을 사용해야 할 수도 있습니다. 예를 들어,
route-method exe
및route-delay
옵션을 사용할 수 있습니다.
위 단계를 따르면 OpenVPN을 사용하여 여러 LAN을 효과적으로 연결하고 안전한 통신을 구축할 수 있습니다. 이러한 구성은 네트워크 확장과 분리된 LAN 간의 안전한 데이터 교환을 지원합니다.
댓글