Intereting Posts
Почему piping find и grep ничего не возвращает? Замена параметров mysql с помощью sed Прочитать весь файл в памяти? Как использовать перенаправление с помощью sudo Инструменты Linux для удаления резервных копий, когда они становятся слишком старыми? Как загрузить изображение бродяг? Если firebase database CVE перечисляет мою версию OpenSSH как уязвимую, возможно ли, что она была исправлена, но сохраняет номер версии? Используйте «дружественную» метку на дисках или разделах во FreeBSD напечатать второй столбец в транспонированной строке zsh: отключить «файл существует:» предупреждение с перенаправлением лучший язык программирования для интенсивных задач ввода / вывода Как увеличить масштаб приложения Java под KDE4? SSH туннель к маршрутизатору периодически зависает. Проблема с TCP? Разрешение имени хоста занимает 5 секунд Ищете карту xinit / startx rabbithole

Где хранится таблица маршрутизации, хранящаяся внутри ядра Linux?

Когда я выполняю route -n , откуда точно (из какой struct s) выводится информация, отображаемая?

Я попробовал выполнить strace route -n но я не помог мне найти нужное место, где он хранится.

route или утилита ip получают свою информацию из псевдо файловой системы, называемой procfs . Он обычно монтируется под /proc . Существует файл под названием /proc/net/route , где вы можете увидеть таблицу IP-маршрутизации ядра. Вместо этого вы можете распечатать таблицу маршрутизации с помощью cat , но утилита маршрута форматирует выходную информацию, читаемую человеком, поскольку IP-адреса хранятся в шестнадцатеричном формате.

Этот файл не является обычным файлом. Он генерируется всегда в тот момент, когда он открывается с попыткой прочитать, как и все файлы в файловой системе proc.

Я вас интересует, как этот файл написан, тогда вам нужно посмотреть на источники ядра: эта функция выводит таблицу маршрутизации. Вы видите на строке 2510 , печатается заголовок таблицы маршрутизации. Таблица маршрутизации представляется в основном в struct fib_info которая определена в файле заголовка ip_fib.h, строка 98 .