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.