OpenVPN에서 이러한 클라이언트 정적 IP 할당이 실패하는 이유는 무엇입니까?


8

OpenVPN 서버를 실행 중이며 특정 클라이언트에 고정 IP를 할당하려고합니다.

이것은 내 server.conf입니다. 나는 생각 이 10.5.24.209에서 10.5.24.223에 스팬 가상 IP가 풀을 구성합니다.

port 443
proto tcp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.5.24.208 255.255.255.240
#This netmask should span IPs .208-.223.
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 168.xx.xx.xx"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
client-to-client
client-config-dir ccd

이 내용은 /etc/openvpn/ccd/W7LocalVMW7LocalVM이 내 클라이언트의 일반 이름입니다. 이 지시문의 기능을 잘 이해하지 못하지만 첫 번째 IP는 클라이언트의 원하는 고정 IP 여야하고 두 번째 IP는 서버의 IP 여야한다고 생각합니다.

ifconfig-push 10.5.24.210 10.5.24.209

그러나이 서버 구성으로 클라이언트를 연결하려고하면 다음 오류가 발생합니다.

Mon Aug 07 14:07:34 2017 Set TAP-Windows TUN subnet mode network/local/netmask = 10.5.24.208/10.5.24.210/10.5.24.209 [SUCCEEDED]
Mon Aug 07 14:07:34 2017 MANAGEMENT: Client disconnected
Mon Aug 07 14:07:34 2017 ERROR: --ip-win32 dynamic [offset] : offset is outside of --ifconfig subnet
Mon Aug 07 14:07:34 2017 Exiting due to fatal error

IP 10.5.24.210이 서버 측에 정의 된 서브넷 내에있을 것이라고 생각했는데 왜이 오류가 발생하는지 이해할 수 없습니다. 아무도 나를 도울 수 있습니까?


1
대신 서버 결함에 대해 묻는 것이 좋습니다. 해당 사이트는 서버 관리 문제 전용이므로 피드백에 더 도움이 될 수 있습니다.
— EJoshuaS-복원 Monica Monica

확인. 감사합니다. 그 공동체에 대해 몰랐습니다. 게시물을 다시 게시해야합니까, 아니면 게시물을 마이그레이션 할 수있는 기능이 있습니까?
— Magnus

1
중재자의 중재를 표시하고 마이그레이션을 요청할 수 있습니다. (수퍼 유저와 같은 일부 사이트의 경우 커뮤니티에서 마이그레이션을 위해 투표 할 수 있지만 해당 사이트로의 마이그레이션은 중재자가 수행해야합니다).
— EJoshuaS-복원 모니카

답변:


4

openvpn이 ifconfig 옵션을 ip와 서브넷 마스크로 구문 분석하려고하기 때문에이 문제가 발생합니다.

매뉴얼 페이지에 따르면 :

-토폴로지 모드

...

서브넷---dev 탭 및 이더넷 브리징 모드에서 사용되는 토폴로지와 유사한 로컬 IP 주소 및 서브넷 마스크로 툰 인터페이스를 구성하여 지점 간 토폴로지가 아닌 서브넷을 사용합니다. 이 모드는 연결 클라이언트 당 단일 IP 주소를 할당하며 Windows에서도 작동합니다. 서버와 클라이언트가 OpenVPN 2.1 이상이거나 --topology 지시문 코드로 수동으로 패치 된 OpenVPN 2.0.x 인 경우에만 사용할 수 있습니다. Windows에서 사용하는 경우 버전 8.2 이상의 TAP-Win32 드라이버가 필요합니다. * nix에서 사용될 때, tun 드라이버는 원격 엔드 포인트 IP 주소 대신 서브넷을 설정하는 ifconfig (8) 명령을 지원해야합니다.

이 옵션은 OpenVPN 2.1 이상에 존재합니다.

참고 : --topology 서브넷을 사용하면 --ifconfig 인수의 해석이 더 이상 "로컬 원격"이 아니라 "주소 넷 마스크"를 의미하도록 변경됩니다.

--ifconfig l rn

TUN / TAP 어댑터 매개 변수를 설정하십시오. l은 로컬 VPN 엔드 포인트의 IP 주소입니다. 지점 간 모드의 TUN 장치의 경우 rn은 원격 VPN 끝점의 IP 주소입니다. TAP 장치 또는 --topology 서브넷과 함께 사용되는 TUN 장치의 경우 rn은 작성되거나 연결되는 가상 네트워크 세그먼트의 서브넷 마스크입니다 . --topology net30 또는 p2p 모드에서 사용되는 가상 지점 간 IP 연결을 용이하게하는 TUN 장치의 경우 --ifconfig의 올바른 사용법은 기존 서브넷의 구성원이 아닌 두 개의 개인 IP 주소를 사용하는 것입니다 사용 중입니다. IP 주소는 연속적 일 수 있으며 원격 피어에서 순서가 반대로되어 있어야합니다. VPN이 설정되면 ping을 ping하면 VPN을 핑 (ping)합니다.

을 제공하는 TAP 장치의 경우 ...

서버 코드 내부에서 토폴로지를로 설정 subnet한 다음 server명령문을 사용 하여 토폴로지를 클라이언트로 푸시합니다 .

위의 문서에 따르면 "local", "remote"주소를 사용하여 ifconfig를 푸시하는 대신 "/ etc / openvpn / ccd / W7LocalVM"에 다음을 추가해야합니다.

ifconfig-push 10.5.24.210 255.255.255.252
push route 10.5.24.210 255.255.255.252
# ifconfig 10.5.24.209 255.255.255.252

마지막 줄은 필요하지 않을 수도 있지만 ifconfig-push가 연결을 작동시키기 위해 서버 측에서 "해야 할"작업의 예로 남아 있습니다.


여기에 클라이언트 당 4 개의 IP 할당을 제안한 이유를 묻는 의견이 있지만 FAQ에서 그에 대한 답변을 찾을만큼 부지런했습니다. 수수께끼를 해결해 주셔서 감사합니다!
— Magnus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.