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 서버구성에 따라 서버 측 서브넷 또는 서버 자체에서. 이더넷 브리징을 구성하려면 먼저 운영 체제의 브리징 기능을 사용하여 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하고 인스턴스 간에 균등하게 배포합니다.

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

관련 정보