Как очистить таблицу маршрутизации из кеша в Linux |

Как очистить таблицу маршрутизации из кеша в Linux

Мануал

В этой статье я расскажу, как очистить таблицу маршрутизации в Linux с помощью команд терминала.

Таблица маршрутизации в компьютерных сетях – это таблица данных, которая хранится на маршрутизаторе или сетевом сервере, который перечисляет маршруты к конкретным сетевым адресам.

Обычно каждый статический маршрут имеет связанную с ним метрику.

Эта метрика используется сетевыми устройствами для определения маршрута, который должен быть выбран для пакетов, предназначенных для конкретной сети.

Говоря в контексте Linux, они также поддерживают таблицу маршрутизации, в основном, когда сервер имеет более одного активного сетевого интерфейса.

В какой-то момент вам может понадобиться очистить таблицу маршрутизации или обновить ее, чтобы вы могли получить доступ к некоторым сетям.

Сеть (сети) может быть локальной в вашей организации или где используется обход общего интернета.

Большинство дистрибутивов Linux предоставляют два основных инструмента, используемых для этой задачи: инструменты ip и route.

Очистить таблицу маршрутизации с помощью команды ip

ip – это инструмент командной строки Unix / Linux, используемый для отображения и управления маршрутизацией, сетевыми устройствами, интерфейсами и туннелями.

Это замена обычно используемого инструмента ifconfig.

Этот инструмент может выполнять практически все виды сетевых конфигураций Linux для интерфейса.

Прежде чем очищать любые маршруты, сначала вам нужно проверить текущую таблицу маршрутизации, используя команду :

$ ip route 
default via 192.168.0.1 dev wlp1s0 proto dhcp metric 600 
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.16 metric 600

Как вы можете видеть из моего вывода, мой маршрут по умолчанию установлен в 192.168.0.1.

Это означает, что все пакеты, предназначенные для сетей, отличных от моей локальной подсети 192.168.0.0/24, будут перенаправлены через 192.168.0.1.

Этот IP 192.168.0.1 предназначен для моего маршрутизатора.

Для демонстрационных целей я собираюсь запустить службу Docker на своем ноутбуке.

Docker имеет свою собственную подсеть. мы будем использовать это, чтобы продемонстрировать использование команды ip.

$ sudo systemctl start docker
$ ip route 
default via 192.168.0.1 dev wlp1s0 proto dhcp metric 600 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.16 metric 600

Очистить определенный маршрут

Теперь у меня есть другой маршрут для подсети 172.17.0.0/16 через 172.17.0.1.

Если я хочу очистить этот маршрут, я буду использовать такую команду:

$ sudo ip route flush 172.17.0.0/16
$ ip route 
default via 192.168.0.1 dev wlp1s0 proto dhcp metric 600 
192.168.0.0/24 dev wlp1s0 proto kernel scope link src 192.168.0.16 metric 600
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp1s0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp1s0

Вы можете подтвердить, что маршрут удален из таблицы маршрутизации.

Очистить все маршруты

Чтобы очистить все маршруты в таблицах маршрутизации, используются параметры ip-команды route flush table main.

Полные команды:

$ sudo ip route flush table main

$ ip route show 

Повторная проверка таблицы маршрутизации должна быть пустой.

Эту команду следует использовать с осторожностью, так как она может выбить вас из сервера, если вы не находитесь на прямом подключении или не имеете других методов доступа, таких как консоль, модем и т.д.

Очистить кеш маршрутизации

Ядро Linux обычно ссылается на кеш маршрутизации перед извлечением нового маршрута из таблиц маршрутизации.

Этот кеш можно очистить с помощью команды:

$ sudo ip route flush cache

Подтвердите все доступные кешированные маршруты:

$ sudo ip route show cache

Отображение статистики из кеша маршрутизации

Если вы хотите получить дополнительную информацию о кешированных маршрутах. используйте команды:

$ sudo ip -s route show cache

Дается дополнительная информация, такая как поле «used», которое указывает количество обращений к этому маршруту в кеше маршрутизации.

Для постоянного статического маршрута вы можете размещать маршруты в любом из следующих файлов:

/etc/sysconfig/static-routes or /etc/sysconfig/network-scripts/route-<interface>  # Red Hat and its derivatives - CentOS, Fedora e.t.c
/etc/network/interfaces # Debian and its derivatives

Примером постоянных маршрутов для CentOS 7 является:

# cat /etc/sysconfig/network-scripts/route-eth0

GATEWAY0=192.168.1.254
NETMASK0=255.255.255.0
ADDRESS0=192.168.5.0

GATEWAY1=10.10.10.1
NETMASK1= 255.255.255.240
ADDRESS1=10.164.234.132

Строка на Ubuntu / Debian будет выглядеть следующим образом:

up route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.254
down route del -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.1.254

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий