Linux에서 Kerio: 서버가 기대하는 MAC을 kvnet에 부여하기
kvnet는 연결할 때마다 다시 만들어지므로 일회성 주소 변경은 사라집니다. 클라이언트가 기록한 값을 읽고 연결 후 훅에서 적용하십시오.
Kerio 터널이 트래픽을 실어 나르려면 세 가지가 일치해야 합니다: kvnet 인터페이스의 주소, 클라이언트가 로그에 기록한 값, 그리고 서버 정책이나 DHCP가 기대하는 값입니다. 이것들이 일치하지 않아도 터널은 여전히 인증되고 여전히 올라오며, 바로 그 점이 실패를 혼란스럽게 만듭니다. 인터페이스는 연결마다 만들어지므로 손으로 설정한 주소는 그 세션에만 속하고 다른 것에는 속하지 않습니다. 이것이 문제의 형태이고, 해결책은 구성 파일이 아니라 훅입니다. 나머지는 값을 어디서 읽고 어디에 적용할지입니다.
주소가 계속 되돌아가는 이유
kvnet는 연결이 시작될 때 클라이언트가 만들고 끝날 때 제거하는 가상 어댑터입니다. 따라서 수동 ip link set은 적용된 세션만큼만 유지되고, 다음 연결은 클라이언트가 할당하는 값에서 시작합니다. 클라이언트가 기대하는 주소를 적용하지 못하는 머신에서는 재연결마다 같은 불일치가 다시 생기고, 임대 또는 접근 규칙이 기기를 다시 거부합니다.
그 패턴 자체가 진단 정보입니다. 한 세션에서는 작동하고 다음 세션에서 실패하는 터널은, 연결 사이에 바뀌지 않는 자격 증명의 문제가 아닙니다.
값은 인터페이스가 아니라 클라이언트에서 읽으십시오
Linux 클라이언트는 협상 세부 정보를 디버그 로그에 기록하며, 사용하려는 주소는 연결 시퀀스의 마지막 주소 형태 토큰으로 그곳에 나타납니다. 이를 커널이 실제로 보유한 값, 즉 readlink 하나면 확인되는 값과 비교하십시오: cat /sys/class/net/kvnet/address.
둘이 다르면 클라이언트는 올바른 값을 알면서도 적용하지 못한 것이고, 인터페이스가 생긴 뒤에 그 값을 적용하는 훅이 이 간격을 메웁니다. 로그에 주소가 전혀 없다면 문제는 더 앞쪽에 있으며, 스크립트가 아니라 클라이언트 버전이나 서버 프로필에 속합니다.
인터페이스가 생긴 뒤에 적용하십시오
NetworkManager 사용자는 해당 dispatcher 디렉터리에 스크립트를 두고 VPN 인터페이스가 올라올 때만 동작할 수 있지만, systemd가 관리하는 클라이언트는 더 세심한 처리가 필요합니다. 서비스 시작 시 실행되는 drop-in은 보통 어댑터가 생기기 전에 발동하므로, 훅은 어댑터를 가정하지 말고 인터페이스를 기다려야 합니다. 그때 주소를 설정하고, 링크가 올라간 상태에서 커널이 거부하면 내렸다가 주소를 설정하고 다시 올리십시오. 추출한 토큰은 ip link에 넘기기 전에 MAC 패턴으로 다시 읽어, 예상치 못한 로그 줄이 인자가 되지 않게 하십시오.
클라이언트 로그에서 root로 실행되는 모든 것은 root 소유의 파일, 다른 사람이 쓸 수 없는 상태, 검증된 주소 외에는 셸 보간이 없다는 점에서 좁은 소유권을 가져야 합니다. 패턴 검사는 스크립트 안에 두십시오. 로그 내용이 어느 명령을 실행할지 결정하게 두지 마십시오.
링크가 아니라 임대를 검증하십시오
ip -4 -o addr show dev kvnet는 기대 범위의 주소를 보여야 하고, ip neigh show dev kvnet는 게이트웨이를 보여야 하며, VPN 뒤의 서비스 하나가 응답해야 합니다. 그다음 한 번 연결을 끊었다 다시 연결했을 때 주소가 되돌아가면, 훅이 잘못된 이벤트에서 실행되거나 전혀 실행되지 않는 것입니다.
올바른 주소로 나타나지만 임대를 전혀 받지 못하는 인터페이스는 서버 쪽을 가리킵니다. 그것은 다른 점검이며 보통 다른 팀의 일입니다. 훅을 다시 수정하기 전에 계정이 허용되었는지와 풀에 아직 주소가 있는지 확인하십시오.
업그레이드 후 우회 방법을 다시 검토하십시오
주소를 올바르게 설정하는 클라이언트 빌드는 훅이 오래된 값을 적용하게 남겨 두며, 이는 수정이 들여온 새로운 결함입니다. 다른 머신이나 포럼 게시물에서 MAC을 복사하지 말고, 이 클라이언트가 이 계정에 대해 기록한 값을 사용하며 검증한 날짜를 적어 두십시오.
스크립트는 한 번에 읽을 수 있을 만큼 짧게 유지하십시오. 로그를 해석하는 우회 방법은 본질적으로 임시입니다. 살아남는 것은 원래 스레드 없이도 미래의 독자가 이해할 수 있는 것입니다.