Tech Study/Network2024. 12. 6. 02:27

 

할당 갱신 (Refreshing an Allocation)

Refresh 메소드는 두가지 용도로 사용된다.

  • 만료 시간 업데이트
  • '할당' 제거

클라이언트는 만료 시간 대략 1분 전에 Refresh를 발생시켜야 한다.
'할당'이 더이상 필요하지 않은 경우 삭제를 하는 것이 좋다.
Refresh는 언제든 수행할 수 있다.

 

할당 갱신 요청 (Sending a Refresh Request)

Refresh 메시지를 통한 '할당'의 갱신 또는 제거에 대해 아래의 속성을 구성한다.

  • 제거
    • LIFETIME 속성에 0을 기재하여 요청
  • 갱신
    • 새로운 만료 시간으로 갱신하려면 LIFETIME 속성에 초 단위 값을 입력
    • 기본 만료 시간으로 갱신 시 LIFETIME 속성 생략 (※ 분석자 주 : 추론임. 규격엔 명시되어 있지 않음)

 

이중 할당(dual allocation, IPv4/IPv6 주소를 둘 다 가진)에 대해 REQUESTED-ADDRESS-FAMILY 속성을 포함하여 family를 명시할 경우 해당 family만 처리할 수 있다.
REQUESTED-ADDRESS-FAMILY를 포함하지 않는 경우에는 모든 family에 대해 처리한다.

 

할당 갱신 요청 수신 (Receiving a Refresh Request)

서버에서의 처리를 기술함

  • REQUESTED-ADDRESS-FAMILY의 값이 현 '할당'에 존재하지 않는 family라면 443 에러 응답해야 함
  • 희망 만료 시간(desired lifetime)을 아래와 같이 계산함
    • LIFETIME 속성이 있는 경우
      • 값이 0일 경우에는 0
      • 값이 서버의 기본 만료 시간보다 크고, 최대 허용 만료 시간보다 작으면 LIFETIME 값
    • 그 외의 경우에는 모두 기본 만료 시간
  • 위에서 계산한 desired lifetime 값에 대해 아래의 처리
    • 0일 경우 할당 삭제
    • 그 외에는 할당의 만료 시간을 해당 값으로 갱신
  • 처리된 desired lifetime 값을 응답 내 LIFETIME 속성에 입력

 

할당 갱신 응답 수신 (Receiving a Refresh Response)

Refresh 성공 응답에는 LIFETIME 속성이 항상 포함되며, 클라이언트의 요청 LIFETIME까지 서버에서 고려해서 결정한 실제 LIFETIME 값이 실린다.
(※ 분석자 주: 할당 삭제에 대한 성공 응답이 명시되어 있지 않다. 다만, 응답 내 LIFETIME이 0인 경우로 유추해 볼 수 있다.)

에러 응답일 경우에는 아래 코드가 포함될 수 있다.

  • 437 (Allocation Mismatch) : 갱신 요청한 '할당'이 더이상 존재하지 않을 때. 삭제 요청일 경우에는 성공으로 판단해도 된다.
  • 438 (Stale Nonce) : 인증 관련 문제. nonce 값을 새로 받아서 재시도 해 볼 수 있다.
Posted by JMAN