Time-to-Live에 대해 알아보겠습니다.
TTL
Time-to-Live(TTL)
- 인터넷 프로토콜에서 8비트 크기의 필드. 데이터그램의 송신자가 설정
- 각 패킷에는 네트워크를 통해 얼마나 더 계속 이동해야 하는지를 결정하는 숫자 값을 저장하는 위치가 있음
- 값은 IP 데이터그램이 인터넷 시스템(네트워크) 내에서 존재할 수 있는 시간의 상한선 또는 홉의 양
- 컴퓨터 네트워크에서 패킷의 무한 순환을 방지하는 역할
라우터
- 패킷을 수신할 때마다 TTL 값에서 1을 빼고 네트워크의 다음 위치로 전달
- 목적지까지의 전송 경로에서 거치는 모든 라우터들에 의해 TTL 값이 감소
- TTL이 0이 되면 라우터는 패킷을 폐기하고 ICMP 메시지를 원래 호스트로 다시 보냄
- ICMP 에러 데이터그램
11 - Time Exceeded
가 송신자에게 전송
IP 패킷
IPv4에서의 TTL
- IPv4 헤더에서 20 옥텟 중 8번째 옥텟
- TTL 값의 단위는 초
- 이론적으로 목적지까지의 경로에서 경유하게 되는 모든 호스트에서 1 이상의 양만큼 감소 가능
- 실제로 TTL 값은 매 홉(hop)마다 1씩만 감소
IPv6에서의 TTL
- IPv6 헤더에서 40 옥텟 중 8번째 옥텟
- 해당 필드의 명칭이 홉 리미트(hop limit)로 변경
DNS 레코드
DNS에서 사용되는 TTL
- DNS에서 권한있는(authoritative) 네임서버는 특정 리소스 레코드의 TTL 값을 설정
- 재귀적 캐시 네임 서버가 권한있는 네임서버에 질의를 보낼 때, 캐시 네임서버는 그 레코드를 TTL 값에 해당하는 시간 동안 캐시에 저장
- 추후 스터브 리졸버(stub resolver)가 캐시 네임서버에 동일한 레코드에 대한 질의를 보낸 경우,
- 해당 레코드의 TTL 값이 아직 만료되지 않았다면 캐시 네임서버는 권한있는 네임서버에 질의를 보낼 필요 없이 캐시에 저장된 정보를 이용해 바로 응답
- 네임버서는 NXDOMAIN 응답에 대해서도 TTL 값을 가질 수 있음
- NXDOMAIN 응답: 특정 도메인이 존재하지 않음
- 이 경우에는 일반적으로 그 값이 최대 3시간 정도로 짧음
짧은 TTL 값
- 단점: 권한있는 네임서버에 가해지는 부하가 커짐
- 장점: 주소 변경에 민감한 서비스에 적합
- 메일 교환 레코드(mail exchange record) 등
- 특정 서비스의 주소가 옮겨지는 경우 혼란을 최소화하기 위해 DNS 관리자는 관련 레코드의 TTL 값을 낮춤
DNS에서 사용되는 TTL 값의 단위는 초
- 과거에 주로 사용된 값은 86400초(24시간)
- 권한있는 네임서버가 DNS 레코드를 변경했을 때 전 세계에 흩어진 DNS 서버들이 최대 24시간 동안 업데이트되지 않은 옛 주소를 가질 수 있음
오늘날의 새로운 DNS 방식
- 재해 복구 시스템의 일부분으로서 의도적으로 매우 낮게 설정된 TTL 값을 가질 수 있음
- TTL 값이 300초일 경우 해당 레코드는 5분 후에 만료되어 빠르게 갱신될 수 있음
- 이를 통해 관리자는 레코드를 제때 수정하고 업데이트 가능
TTL 값은 레코드 단위로 할당
전 세계의 모든 표준 DNS 값은 특정 레코드의 TTL 값을 개별적으로 설정하는 것을 허용
이런 경우 다수의 DNS 네임서버들이 권한있는 네임서버로부터 받은 레코드에 관계 없이 각자 TTL을 설정할 경우 TTL이 만료된 이후 그 하위 DNS 서버들이 새로운 레코드를 제대로 업데이트 받지 못할 가능성이 생긴다는 문제가 있음
참고
[time to Live(TTL)란? | TTL의 정의](https://www.cloudflare.com/ko-kr/learning/cdn/glossary/time-to-live-ttl/) |