krb5p 보안을 사용하는 NFS 마운트 시스템이 있습니다. 시간이 뒤로 이동하는 경우(몇 시간 정도, 정확한 임계값은 확실하지 않음)를 제외하고는 모든 것이 잘 작동하는 것 같습니다. 시계가 뒤로 이동하면 마운트를 시도할 때(autofs 사용) 공유에서 "해당 파일 또는 디렉터리가 없습니다"라고 보고합니다. 어딘가의 암호화 검사 중 하나가 역방향 시간을 확인하고 중단된다고 가정하면 이는 정상적인 기본 동작입니다.
클라이언트/서버가 동일한 시스템이고 일부는 별도의 시스템을 사용하여 동일한 결과를 갖는 테스트 사례가 있습니다. 모든 시간은 NTP를 통해 동기화됩니다. 이 테스트 사례에서는 모든 사람이 사용하는 NTP 서버를 뒤로 이동했습니다.
약간 이상한 테스트 케이스를 발견했지만 이것은 완전히 오프라인 환경이고 소프트웨어는 운영자가 NTP를 올바르게 구성하지 않은 것(오타 등)과 같은 모든 종류의 이상한 입력을 처리하도록 설계되었으며 이는 단지 가장자리를 테스트하는 것입니다. 사례.
시계를 현재나 미래로 되돌리면 kdestroy/kinit 주기 후에 공유가 다시 작동하기 시작합니다.
새로운 kinit로 kdestroying을 시도하고, sssd 캐시를 지우고, kadmin/k5rb-server 서비스를 다시 시작하고, 시스템을 완전히 재부팅했지만(/tmp가 손상됨) 아무것도 작동하지 않는 것 같습니다.
나는 시스템에 대한 완전한 제어권을 갖고 있어 무언가를 "다시 설치"하거나 구성/데이터 파일을 지울 수 있습니다. 하지만 Kerberos나 NFS가 미래의 시간이 있다는 사실을 잊어버리게 만드는 항목을 저장할 장소를 찾을 수 없습니다. 이론도 정확합니다.)
시스템: RHEL7.9
매우 감사합니다.
고쳐 쓰다 아래에서 주제에서 약간 벗어났기 때문에 시간을 거꾸로 가는 것은 이상한 상황이라는 것을 이해하고 있음을 분명히 하고 싶습니다. 모든 제안 사항은 논의할 가치가 있지만 이 질문은 이 상황을 처리하기 위해 소프트웨어를 수정하는 방법에 중점을 둡니다. 하드웨어로 이 문제를 해결할 수 있다는 것을 알고 있지만, 처음에 실패를 방지하는 방법(그게 말이 된다면)보다 구체적으로 실패하는 이유와 복구 방법이 더 궁금합니다. 이 극단적인 경우의 가능성을 제한하는 일부 하드웨어 솔루션이 있지만 적어도 현재 시스템 제한으로 이를 0으로 낮출 수 있는 솔루션은 없으며 불행히도 하드웨어 옵션은 실현 가능하지 않습니다. 소프트웨어 옵션도 실현 가능하지 않을 수 있지만 이해하려고 노력하십시오. 지금까지 효과가 있는 것으로 보이는 한 가지 해결책은 시스템의 이미지를 다시 만드는 것이지만 덜 과감한 방법이기를 바랍니다.
답변1
시간을 저장하지 않고 vdso 시스템 호출을 수행하여 운영 체제 커널에서 시간을 추출합니다. 동기화되지 않은 경우 실패합니다. 오프라인인 경우 GPS 모자로 RPi를 보고 이를 시간 소스로 사용합니다.
답변2
잘못된 경우가 있습니다.NTP 디자인처음 배치할 때를 제외하고는 시계를 거꾸로 돌리지 마십시오. 그렇더라도 마스터 시계가 복구할 수 없을 정도로 잘못된 경우에만 점프합니다.
시간을 거꾸로 거슬러 올라가면 많은 애플리케이션의 기반이 무너질 수 있으므로 실제로는 선택 사항이 아닙니다. 데이터베이스, Kerberos, 심지어 프로그램 개발까지 마음속에 떠오르는 세 가지가 있습니다.
NTP는 앞이나 뒤로 점프하는 것보다 시계 변경을 선호합니다. 따라서 귀하의 예에서는 뒤로 점프하는 대신 시계 속도를 늦추려고 합니다. 또한 NTP 구현에서는 ntpd
커널이 로컬 하드웨어 시계 판독값을 해석해야 합니다. 즉, 빠르게 실행하기를 좋아하는지 느리게 실행하기를 원하는지 이해하고, 시계 없이 합리적으로 정확한 시간을 얻기 위해 시계 값을 오프셋할 정도를 커널에 알려야 합니다. . 외부 시간 소스.
또한 시간을 몇(5)분 이상 앞당기면 부양가족을 데리고 갈 수 없으며 수동으로 시계를 재설정해야 합니다.
기본적으로 시간을 건너뛰면 Kerberos의 작동이 중지됩니다. 다른 결과는 오류입니다.