Yönlendirme tablosu Linux çekirdeğinde dahili olarak nerede saklanır?


12

Yürüttüğümde route -n, structgörüntülenen bilgiler tam olarak nereden (hangi s) alınır?

Çalıştırmayı denedim strace route -nama depolandığım doğru yeri bulmama yardım etmedim.



Hafızada saklanır. Bulunduğu bellek adresini mi arıyorsunuz?
Bandrami

@Bandrami Bilgiyi tutmaktan neyin structsorumlu olduğunu görmek istiyorum .
sözdizimi

Diskteki dosyayı arayan herkes için, ya DHCP sunucusunun verdiği her şeyden ya da /etc/sysconfig/network-scripts/ifcfg-${DEV}basit durumlarda neyin bulunabileceğinden ve / veya /etc/sysconfig/network-scripts/route-${DEV}daha kıvrımlı durumlarda neyin bulunabileceğinden (Red Hat / CentOS durumunda) 7). İkinci dosya çıktısını içerir ip -r. Bkz . CentOS'ta Statik Rota Ekleme .
David Tonhofer

Yanıtlar:


17

routeYa ipyarar denilen bir sözde dosya sistemi kendi bilgi alabilirsiniz procfs. Normalde altına monte edilir /proc. /proc/net/routeÇekirdeğin IP yönlendirme tablosunu görebileceğiniz adlı bir dosya var. Bunun catyerine yönlendirme tablosunu yazdırabilirsiniz , ancak IP adresleri onaltılı olarak saklandığından, rota yardımcı programı çıktıyı okunabilir şekilde biçimlendirir.

Bu dosya sadece normal bir dosya değil. Proc dosya sistemindeki tüm dosyalar gibi, her zaman tam olarak okuma girişimi ile oluşturulur.

Ben bu dosyanın nasıl yazıldığını interessted, o zaman çekirdek kaynaklarına bakmak gerekir: Bu fonksiyon , yönlendirme tablosu çıktılar. En bakınız çizgi 2510 , yönlendirme tablosunun başlığı basılır. Yönlendirme tablosu çoğunlukla ip_fib.h, satır 98fib_info başlık dosyasında tanımlanan yapıda görünüyor .

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.