OpenVPN은 풀에서 IP를 제외합니다.

OpenVPN은 풀에서 IP를 제외합니다.

Linux Ubuntu 상자에서 실행되는 OpenVPN 서버가 있습니다. 여러 클라이언트가 이 서버(500+)에 연결되므로 서버 브리지 옵션을 다음과 같이 설정합니다.

server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.210.254

이것은 완벽하게 작동합니다. 클라이언트는 동적 IP 주소를 얻게 되며, 클라이언트 수가 255개를 초과하면 200블록에서 201블록으로 이동합니다.

이러한 클라이언트에 연결하는 내부 애플리케이션이 있지만 이 애플리케이션은 IP 주소 10.0.200.255 및 10.0.201.0에서 충돌합니다.

이 IP 주소는 내가 제공한 범위 내에 있지만 사용할 수 없습니다.

내 풀에서 제외할 수 있는 방법이 있나요?

아니면 설정을 변경해야 합니까?

답변1

단일 구성 파일을 사용하는 OpenVPN의 내장 DHCP 서버에서는 여러 IP 범위를 사용하거나 특정 IP를 제외하는 것이 직접적으로 가능하지 않습니다.

나는 3가지 가능한 해결책을 제안합니다:

  • 해결 방법하지만 작동이 보장되지는 않습니다.
  • DHCP 프록시 모드, 간단하고 깨끗하며 기타 다양한 옵션
  • 다중 인스턴스, 더 복잡하고 성능상의 이점이 있을 수 있습니다.

하지만 문제의 근본 원인인 내부 애플리케이션에 결함이 있는 부분을 수정하는 것이 좋습니다.

해결 방법

서버 구성 파일에 다음을 추가합니다.

server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.210.254
ifconfig-pool-persist ipp.txt 0

0지시어 끝에 있는 는 읽기 전용 구성 파일로 ifconfig-pool-persist취급됩니다 .ipp.txt

파일 만들기 /etc/openvpn/ipp.txt:

reserved-not-used-cn-1,10.0.200.255
reserved-not-used-cn-2,10.0.201.0
reserved-not-used-cn-3,10.0.201.255
...

예약된 IP 주소를 모두 이 파일에 추가합니다 <Common-Name>,<IP-address>. 형식은 . 필드 값의 경우 <Common-Name>클라이언트 인증서에서 절대 사용되지 않는 값을 선택하십시오.

OpenVPN 맨페이지에 명시된 대로 항상 작동한다고 보장할 수는 없습니다.

이 파일의 항목은 OpenVPN에서 일반 이름과 IP 주소 간의 과거 연결을 기반으로 한 제안으로만 처리됩니다. 주어진 일반 이름이 항상 주어진 IP 주소를 수신한다는 것을 보장하지 않습니다. 할당을 보장하려면 다음을 사용하세요.--ifconfig-push

DHCP 프록시 모드

당신이 사용하고 있기 때문에수도꼭지설정, 이것이 최선의 해결책일 수 있습니다. 모든 기능을 갖춘 기능을 사용할 수 있습니다.DHCP 서버구성에 따라 서버 측 서브넷 또는 서버 자체에 있습니다. 이더넷 브리징을 구성하려면 먼저 OS의 브리징 기능을 사용하여 TAP 인터페이스를 다른 인터페이스와 브리징해야 합니다.

오픈VPN서버 구성:

server-bridge

이 지시문은 다음과 같이 확장됩니다.

mode server
tls-server
push "route-gateway dhcp"

DHCPD서버 구성:

subnet 10.0.100.1 netmask 255.255.0.0 {
  range 10.0.200.1 10.0.200.254;
  range 10.0.201.1 10.0.201.254;
  range 10.0.202.1 10.0.202.254;
  range 10.0.203.1 10.0.203.254;
  ...
}

다중 인스턴스

대안은 /24여러 구성 파일을 사용하여 각 서브넷에 대해 별도의 openvpn 인스턴스를 생성하는 것입니다. 하지만 이를 위해서는 인스턴스마다 다른 포트를 사용해야 합니다.

인스턴스 1 구성 파일:

port 11941
server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.200.254

인스턴스 2 구성 파일:

port 11942
server-bridge 10.0.100.1 255.255.0.0 10.0.201.1 10.0.201.254

...

이를 위해서는 다음이 필요합니다.

  • 해당 포트 번호가 있는 IP 범위별 클라이언트 구성,
  • iptables또는 예를 들어 포트에서 들어오는 연결에 대해 로드 밸런싱을 사용 1194하고 이를 인스턴스 전체에 균등하게 배포합니다.

이 솔루션은 설명된 대로 성능상의 이점을 가질 수 있습니다.여기.

관련 정보