IP의 TTL을 변조하는 것이 왜 위험한가요?


51

나는 iptables 맨 페이지 (라이트 취침 시간 읽기)를 읽었으며 'TTL'목표를 발견했지만 경고합니다.

TTL 필드를 설정하거나 늘리면 잠재적으로 매우 위험 할 수 있습니다

로컬 네트워크를 떠나는 패킷의 값을 설정하거나 늘리지 마십시오!

TTL을 낮추거나 낮추면 대상에 도달하기 전에 패킷이 삭제되는 방법을 알 수 있지만, 어떤 효과가 증가 할 수 있습니까?

답변:


67

라우터를 통과 할 때 TTL이 감소합니다. 이것은 패킷이 원형으로 돌아 다니면 결국 죽을 수 있도록합니다.

IP v4 패킷의 TTL 필드는 8 비트 필드 (십진수 255)입니다. 따라서 처음에는 높게 설정하면 제대로 구성된 패킷에서는 실제로 그렇게 크지 않을 수 있으므로 큰 문제가되지 않습니다 (일부는 IP 패킷을 잘못 받아 들일 수 있음).

그러나 무언가가 증가하고 증가 단계가 루프의 일부인 경우 패킷은 0에 도달하지 않고 계속 원을 그리며 갈 수 있습니다. 시간이 지남에 따라 (매우 짧거나 누수가 발생할 수 있음) 해당 루프가 포함 된 시스템에 패킷이 쌓여 과부하가 발생할 수 있습니다.


20

패킷의 TTL은 기본적으로 라우팅을 정상 상태로 유지합니다. 패킷이 매우 큰 TTL을 가져야하고 어떤 이유로 순환 경로에 걸린 경우, 많은 트래픽 ( "패킷 스톰"이라고 함)이 발생하여 정상적인 작동을 방해 할 수 있습니다. TTL이 너무 낮 으면 대상에 도달하기 전에 패킷이 손실되므로 연결이 끊어집니다.


이것은 TTL 만료에 대한 자세한 내용이지만 cisco.com/web/about/security/intelligence/ttl-expiry.html
NickW

5

응답이 누락 된 것처럼 보이지만 인터넷에 필요한 홉 수로 인해 순수한 학문적 인 점이 있습니다. 패킷이 일반적으로 TTL 만료로 인해 대상에 도달하지 못하면 증가합니다. 패킷이 목적지에 도달 할 수는 있지만 반송되는 패킷에는 영향을 미치지 않으며 네트워크에 도달하기 전에 만료됩니다.

업데이트 : Wikipedia 의이 페이지에 따르면 :

이론적으로 IPv4에서 라이브 타임은 초 단위로 측정되지만 데이터 그램을 통과하는 모든 호스트는 TTL을 최소한 1 단위 줄여야합니다. 실제로, TTL 필드는 매 홉마다 하나씩 감소합니다. 이 관행을 반영하기 위해 IPv6에서 필드 이름이 홉 제한으로 변경되었습니다.

업데이트 2 : - 사람이 업데이트로 내 게시물 및 참조 위키 백과, 나는 그것이 RFC 자체를 참조하는 것이 가장 될 줄 알았는데 http://www.ietf.org/rfc/rfc791.txt을 - 그냥 거기에 TTL을 검색하고 꽤 않습니다 그것을 설명하는 좋은 직업 :

이 필드는 데이터 그램이 인터넷 시스템에 머무를 수있는 최대 시간을 나타냅니다.

2
그러나 네트워크에서 시작된 패킷을 라우터에서 시작했을 때의 값으로 증가시킨 경우 반환 패킷은 라우터에 도달합니다 (그리고 패킷을 클라이언트로 보낼 때 증가시킬 수 있음). 로컬 네트워크)
Random832

나는 접근법에 대한 참신한 견해를 좋아하고 당신은 그것에 대한 나의지지를 얻는다. 그러나 TTL은 원래 네트워크에서 소비 된 패킷과 모든 홉마다 1 초마다 한 번씩 감소되도록 설계되었습니다. 이 역사적 정의는 오늘날 거의 무시되고 있습니다. 그러나 두 노드 사이의 경로가 대칭이거나 한 패킷 전송에서 다른 패킷 전송으로 동일하다고 가정 할 수는 없습니다.
PP.

참된. 패킷 x가 패킷 y와 다른 경로를 취하는 경우 때때로 tracert를 사용하여 매우 이상한 결과를 얻을 수 있습니다! 또한 추적 시간에 대한 정보 덕분에 나는 알지 못했습니다 (패킷이 타임 스탬프되지 않은 경우 라우터가 그것을 보유 할 수 없다면 감소 될 수 있습니까?)
Matthew Steeples

@PP. TTL이 원래 1 초에 한 번씩 감소되었다는 주장에 대한 언급이 있습니까? 인터넷 초창기에는 평범하지 않은 고정밀 동기화 시계가 없다면 (많은 호스트가 현지 시간 만 처리 했음에도 불구하고) 어떻게 그렇게 믿을 수 있는지 알 수 없습니다.
CVn

3
@ MichaelKjörling IPv4를 정의하는 RFC 791에서와 같이 정의됩니다.
Michael Hampton

3

더 높은 TTL 값을 사용할 수있는 하나의 프로그램 만 알고 있습니다 traceroute. 이름에서 알 수 있듯이 TTL 값을 수정하여 대상 호스트에 대한 경로를 추적합니다. 표준 최대 홉 수는 20이지만 증가시킬 수 있습니다.


2
(대부분의 구현) traceroute는 ICMP Time Exceeded 메시지를 사용하여 패킷이 목적지에 도달했는지 여부를 알려줍니다. 또한, Time Exceeded 메시지는 ICMP를 완전히 차단하는 것이 매우 나쁜 이유 중 하나 입니다.
CVn

0

패킷을 처리하는 각 라우터는 패킷이 대상에 도달하거나 TTL이 0에 도달하여 죽을 때까지 TTL 값을 감소시킵니다.

다른 사람들이 말했듯이, TTL을 늘리면 마이너스 사이클이 있으면 패킷이 죽지 않을 수 있습니다. 일반적으로 TTL 값이 충분히 크지 않으면 종단 간 클라이언트가 더 큰 TTL을 시도하는 논리를 처리해야합니다.

라우터가주기 (트리와 같은 토폴로지)에 있지 않다고 확신하면 이론적으로 TTL 값을 안전하게 늘릴 수 있습니다. 그러나 표준보다 많은 홉을 허용하면 외부 네트워크에서 혼잡이 발생할 가능성이 높아집니다. 내부 네트워크와 외부 네트워크 사이에 긴 라우터 체인이있는 경우주기가없는 한 큰 TTL 값이 도움이 될 수 있습니다. 그럼에도 불구하고 누군가가 네트워크에 에지를 추가하고주기를 만드는 것이 매우 쉬울 수 있으므로 처음부터 시작된 패킷이 훨씬 더 안전한 TTL 값으로 시작하는 것이 훨씬 안전합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.