원격 건물에있는 여러 개의 LAN을 연결하고 싶습니다.
"중앙"사이트에는 OpenVPN을 실행하는 Linux 컴퓨터가 있습니다. 각 원격 사이트는 OpenVPN도 실행합니다.
- 중앙 사이트의 LAN 번호는 192.168.0.0/24입니다.
- 여러 원격 사이트에도 번호가 192.168.0.0/24입니다.
- LAN 번호 매기기를 수정하거나 할 수 없거나 원하지 않는 것
- 대부분의 원격 OpenVPN을 제어 할 수 없습니다
다음을 수행해야합니다.
1. 가상 LAN 정의
2. 각 사이트에 대해 1 : 1 NAT 구성
3. 중앙 라우터에서 1 : 1 NAT 구성
.
따라서 각 사이트에는 10.10.x.0 / 24 LAN이 있습니다.
사이트 12에서 192.168.0.44에 도달하려는 컴퓨터는 10.10.12.44로 paquet을 보내면됩니다.
VPN 운영은 문제가되지 않습니다. 현재 60 개 이상의 사이트를 연결하고 있습니다. 그러나이 1 : 1 NAT를 수행하는 간단한 방법을 찾지 못했습니다.
다음은 중앙 사이트에서 원격 사이트로 전송 된 패킷 및 해당 응답 패킷의 예입니다.
iptables NETMAP으로 몇 가지 테스트를했지만 라우팅 결정 후 소스 + 대상을 수정할 수있는 방법을 찾지 못했기 때문에 작동시킬 수 없습니다.
새로운 --client-nat
OpenVPN의 기능 을 피하고 싶습니다 .
어쩌면 내가 강제로 라우팅해야 ip route
합니까? 또는 veth
? 를 사용하여 네트워크 스택에 두 번 반복합니다 .
참고 : 가장 무도회를 사용하고 싶지 않습니다. 1/1 NAT 만
편집 :
정기적 인 openVPN 설정으로는 불가능합니다. 원격 사이트의 패킷은 다른 사이트의 패킷과 구별 할 수 없기 때문에 소스 및 대상 주소가 비슷하며 모두 동일한 툰 (또는 탭) 인터페이스에서 가져옵니다. 따라서 소스 NAT를 사용할 수 없습니다.
해결 방법 1 : 원격 사이트에서 NAT를 수행하십시오. 내 경우에는 불가능합니다. 나는 중앙 사이트에서만해야합니다.
해결 방법 2 : 각 원격 사이트에 대해 하나의 VPN을 설정하십시오. 그래서 나는 각각에 대해 하나의 툰을 가질 것입니다. 나는 이것이 괜찮을 것이라고 생각한다. 메모리 효율성은 좋지 않지만 괜찮습니다.
해결 방법 3 : 각 사이트의 VPN 내에 (암호화되지 않은) 터널을 설정하십시오. 이것은 각각에 대해 하나의 인터페이스를 제공합니다. 간단한 터널은 크로스 플랫폼이 아닙니다 (내 지식으로). 예를 들어 Linux의 경우 GRE 또는 ipip 또는 sit가 정상이지만 일부 원격 사이트는 하나의 Windows 컴퓨터 만 실행하므로 openVPN이 설치되어 있습니다. 간단한 터널을 설정하는 것은 불가능합니다. 다른 옵션은 더 복잡한 터널을 사용하는 것인데 (?) 시스템과 sysadmin의 오버 헤드는 여러 VPN을 사용하는 것보다 클 수 있습니다
해결 방법 4 : 1 : 1 NAT 기능이 포함 된 최신 openVPN을 컴파일하십시오. 이번 주에 테스트합니다.