IP TTL ile kurcalamak neden tehlikelidir?


51

İptables kılavuz sayfasını okudum (yatmadan önce yapılan okuma) ve 'TTL' hedefine rastladım, ancak şöyle uyarıyor:

TTL alanını ayarlamak veya artırmak potansiyel olarak çok tehlikeli olabilir

ve

Yerel ağınızdan ayrılan paketlerdeki değeri hiçbir zaman ayarlamayın veya artırmayın!

TTL'nin düşürülmesinin veya düşürülmesinin belki de varış yerine ulaşmadan önce paketlerin düşmesine neden olabileceğini görebiliyorum, ancak artan etkinin ne etkisi olabilir?

Yanıtlar:


67

Bir yönlendiriciden geçerken TTL azalır. Bu, eğer paketler dairelerde dolaşıyorsa, sonunda öleceğinden emin olur.

IP v4 paketinin TTL alanı 8 bitlik bir alandır (255 ondalık). Bu nedenle, başlangıçta yüksek ayar yapmak önemli değildir, çünkü iyi biçimlendirilmiş bir pakette o kadar büyük olamaz (Her ne kadar bazı şeyler hatalı biçimlendirilmiş IP paketlerini kabul edebilir).

Bununla birlikte, eğer bir şey onu arttırırsa ve artış aşaması döngünün bir parçasıysa , paket hiç sıfıra ulaşmadan çevrelerde devam edebilir. Zamanla (çok kısa veya kademeli bir sızıntı olabilir), bu döngüyü içeren sistemde aşırı yüklenmesine neden olan paketler oluşabilir.


20

Paketlerdeki TTL, temel olarak yönlendirme mantığını koruyor. Bir paket çok büyük bir TTL'ye sahipse ve bir nedenden dolayı dairesel bir rotada yakalandıysa, tonlarca bir trafiğe ("paket fırtınası" denir) neden olabilir ve normal işlemlere müdahale edebilir. Çok düşük TTL, hedefe ulaşmadan önce paketi kaybedeceğinizden dolayı bağlantı kaybına neden olur.


Bu, TTL'nin sona ermesiyle ilgili daha fazla, ancak söyledikleriniz hakkında biraz daha ayrıntıya giriyor
NickW 22:13

5

Cevapların cevapsız göründüğü, ancak tamamıyla akademik olacağı bir nokta var (internette kaç tane atlatma gerektiğine bağlı olarak): eğer bir paket normalde süresi dolan TTL nedeniyle hedefine ulaşamazsa, Paketin hedefine ulaşmasına izin verir, ancak iade edilen paketleri etkilemez ve ağınıza ulaşmadan önce sona erer.

GÜNCELLEME: Wikipedia'da bu sayfaya göre :

Teoride, IPv4 altında, yaşam süresini saniye cinsinden ölçülür, ancak datagramı geçen her ana bilgisayarın TTL'yi en az bir birim azaltması gerekir. Uygulamada, TTL alanı her atlamada bir azalır. Bu uygulamayı yansıtmak için, alan IPv6'da atlama sınırı olarak adlandırılır.

GÜNCELLEME 2: Birisi yazımı güncelledi ve Vikipedi'ye referans verdiğinde, RFC'nin kendisine referans vermenin en iyisi olabileceğini düşündüm - http://www.ietf.org/rfc/rfc791.txt - Sadece orada TTL'yi arayın ve oldukça açıklamak için iyi bir iş:

Bu alan, datagramın internet sisteminde kalmasına izin verilen maksimum süreyi gösterir ... bir datagramı işleyen her modül, datagramı bir saniyeden kısa sürede işlemesine rağmen, TTL'yi en az bir oranında düşürmelidir.

2
Bununla birlikte - ağınızdaki paketleri, yönlendiricinizden geldiklerinde elde ettikleri değere yükseltirseniz, iade paketleri yönlendiricinize ulaşır (ve daha sonra bunları istemciye gönderirken bunları artırabilirsiniz). yerel ağ)
Random832 22:13

Romanın yaklaşım hakkındaki görüşünü beğendim ve bunun için benim oyumu alıyorsun. Bununla birlikte, TTL başlangıçta ağda harcanan paketin yanı sıra her atlama için bir saniye azaltılmak istendi. Bu tarihsel tanım bugünlerde büyük ölçüde göz ardı ediliyor - ancak iki düğüm arasındaki yolun simetrik olduğu, hatta bir paket iletisinden diğerine aynı olduğu varsayılamaz.
PP.

Doğru. Eğer paket x, paket y'dan farklı bir rotaya giderse, bazen tracert kullanarak çok tuhaf sonuçlar alabilirsiniz. Ayrıca, izleme süresi hakkındaki bilgiler için de teşekkürler, bunu bilmiyordum (eğer paketler üzerinde tutulan bir yönlendirici olmasa bile azaltılabilecek paketler zaman damgalı olmasa da?)
Matthew Steeples

@PP. TTL'nin başlangıçta saniyede bir kez azaltılması gerektiği iddiasıyla ilgili bir referansınız var mı? İnternetin ilk günlerinde kesinlikle pek yaygın olmayan yüksek hassasiyetli senkronize saatler olmadan (bir sürü ev sahibinin yalnızca yerel zamanı idare etmesine izin vermeyin), bunun nasıl güvenilir bir şekilde yapılabileceğini anlamıyorum.
bir CVn

3
@ MichaelKjörling IPv4'ü tanımlayan RFC 791'de tanımlanmıştır.
Michael Hampton

3

Tek bir program biliyorum, bu daha yüksek bir TTL değeri kullanabilirdi ve bu traceroute. Adından da anlaşılacağı gibi, TTL değerini değiştirerek rotayı bir hedef ana bilgisayara izler. Standart maksimum atlama sayısı 20'dir, ancak bunu artırabilirsiniz.


2
(Çoğu uygulama) traceroute ayrıca bir paketin hedefine ulaşıp ulaşmadığını bildiren ICMP Zaman Aşıldı mesajlarına da güvenir . Bir kenara, Zaman Aşan mesajlar, ICMP'nin tamamen engellenmesinin çok kötü bir fikir olmasının bir nedenidir.
55'te CVn

0

Bir paketi işleyen her yönlendirici, paket hedefine ulaşana veya TTL sıfıra ulaşıp ölene kadar TTL değerini azaltır.

Diğerlerinin de söylediği gibi, negatif bir döngü varsa, TTL'yi arttırmak asla ölmeyen paketlere neden olabilir. Genel olarak, eğer bir TTL değeri yeterince büyük değilse, daha büyük bir TTL denemesinin mantığı muhtemelen uçtan uca müşteriler tarafından kullanılmalıdır.

Bir yönlendiricinin bir döngüde olmadığından eminseniz (ağaç benzeri topoloji), teoride TTL değerini güvenle artırabilirsiniz. Standarttan daha fazla şerbetçiye izin vermenin dış ağda tıkanıklığı daha muhtemel hale getirebileceğini söyleyerek. Dahili ve harici ağlar arasında uzun bir yönlendirici zinciriniz varsa, döngü olmadıkça, daha büyük bir TTL değeri yardımcı olabilir. Bunu söylerken, birinin ağa bir kenar eklemesi ve bir döngü oluşturması oldukça kolay olabilir, bu nedenle ilk başta gelen paketin çok daha güvenli olduğu daha büyük bir TTL değeriyle başlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.