ifconfig-push: net30의 피어 주소인가, subnet의 넷마스크인가?
ifconfig-push의 두 번째 인수는 net30에서 피어 주소이고 topology subnet 아래에서는 넷마스크입니다. CCD 파일을 편집하기 전에 실행 중인 토폴로지를 비교하십시오.
동적 클라이언트는 연결되고 라우팅도 정상적으로 동작하지만, 고정 주소를 가진 단 하나의 클라이언트가 서버에 전혀 도달하지 못합니다. 방화벽에서는 아무것도 바뀌지 않았고 CCD 줄도 그럴듯해 보입니다. 흔한 원인은 서버가 실행 중인 TUN 토폴로지와 다른 토폴로지를 위해 작성된 두 번째 인수입니다. 실패는 조용하고, 클라이언트는 주소를 받아 올라오고 서버는 연결을 수락하지만, 트래픽은 전혀 지나가지 않습니다.
net30에서는 그 필드가 피어 주소이고, subnet에서는 넷마스크입니다. 두 형식은 대안일 뿐 결코 연속이 아닙니다.
두 형식을 나란히
전통적인 net30 배포에서는 각 클라이언트가 네트워크 주소, 사용 가능한 주소 두 개, 브로드캐스트 주소로 이루어진 /30 블록 하나를 소유합니다. ifconfig-push은 클라이언트 주소와 피어 주소를 받으며, 피어는 같은 블록의 다른 사용 가능한 주소로 포인트 투 포인트 링크의 서버 측이 사용합니다.
# net30: client address and its peer
ifconfig-push 10.99.0.6 10.99.0.5
# topology subnet: client address and the pool netmask
ifconfig-push 10.99.0.20 255.255.255.0
topology subnet 아래에서 클라이언트는 서버와 하나의 subnet을 공유하며, 같은 지시문이 주소와 넷마스크를 받습니다. 서버 자신의 주소는 server 지시문에서 오며 두 번째 필드에서 오지 않습니다. 형식을 섞으면 클라이언트는 자신이 포인트 투 포인트 링크에 있다고 믿지만 서버는 이를 subnet 호스트로 라우팅합니다, 또는 그 반대입니다. 그래서 넷마스크를 net30과 함께 써서는 안 됩니다.
블록의 두 줄은 모두 CCD 파일용 단일 줄입니다. 각 클라이언트는 그중 정확히 하나를 받습니다.
서버가 실제로 실행 중인 토폴로지를 읽으십시오
패키지 기본값이 아니라, 몇 년 전에 설정되어 그대로 복사되었을 수 있는 실행 중인 구성을 읽으십시오. topology subnet 또는 그 부재를 찾은 다음 server 줄이 주소를 어떻게 할당하는지 확인하십시오. 토폴로지를 전혀 언급하지 않는 구성은 subnet을 설정하는 구성과 같지 않습니다.
그다음 클라이언트가 받은 설정을 읽으십시오. 보고하는 주소, 마스크, 피어를 보면 서버가 어떤 해석을 적용했는지 알 수 있습니다.
고정 주소를 동적 풀 밖에 두십시오
고정 주소는 동적 풀 밖에 있어야 하며, 그렇지 않으면 두 클라이언트에 같은 주소가 주어질 수 있습니다. subnet 토폴로지에서는 server 줄의 nopool이 자동 풀을 억제하고, 명시적인 ifconfig-pool 범위가 동적 클라이언트가 받는 것을 정의합니다.
dev tun
topology subnet
server 10.99.0.0 255.255.255.0 nopool
ifconfig-pool 10.99.0.100 10.99.0.210 255.255.255.0
client-config-dir /etc/openvpn/ccd
서버는 10.99.0.1을 자신에게 할당하고, 고정 클라이언트 주소는 풀 범위 밖에 있습니다. CCD 파일은 프로필 파일 이름이 아니라 유효한 클라이언트 ID의 이름을 따서 명명되며 추가 확장자를 갖지 않습니다. username-as-common-name이 활성화되어 있으면 인증된 사용자 이름이 일치시켜야 할 ID입니다. 하나의 ID를 공유하는 두 장치는 고정 주소도 공유하며, 이는 라우팅이 아니라 정책 문제입니다.
클라이언트가 실제로 받은 할당을 확인하십시오
다른 무엇을 확인하기 전에 의도한 클라이언트를 다시 연결하고 어떤 CCD 파일이 선택되었는지 확인하십시오. 그다음 주소, 마스크 또는 피어와 서버로 돌아가는 경로를 확인하십시오. subnet 배포에서 피어 주소를 표시하는 클라이언트는 여전히 잘못된 형식을 사용하고 있습니다.
토폴로지 변경은 모든 클라이언트와 모든 재정의에 영향을 주므로 한 클라이언트의 수리가 아니라 마이그레이션으로 다루십시오. 이미 사용 중인 토폴로지에 맞게 정적 줄을 수정하는 것이 보통 더 작은 변경입니다. server-options 참조 는 도우미와 클라이언트별 재정의를 문서화합니다.