Обновить таблицу маршрутизации linux

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

В этой статье я покажу, как обновить таблицу маршрутизации в Linux с помощью команд терминала. Таблица маршрутизации в компьютерной сети — это таблица данных, хранящаяся на маршрутизаторе или сетевом сервере, в которой перечислены маршруты к определенным сетевым адресатам. Как правило, с каждым статическим маршрутом связана метрика. Сетевые устройства используют эту метрику, чтобы определить, какой маршрут выбрать для пакетов, предназначенных для конкретной сети. Говоря в контексте системы Linux, они также поддерживают таблицу маршрутизации, в основном, если сервер имеет несколько активных сетевых интерфейсов.

В какой-то момент вам может понадобиться обновить или обновить таблицу маршрутизации, чтобы вы могли получить доступ к определенным сетям. Сеть может быть локальной в вашей организации или проходить через общедоступный Интернет. Большинство дистрибутивов Linux предоставляют два основных инструмента для этой задачи, а именно ip,И инструменты командной строки маршрутизации.

Обновите таблицу маршрутизации с помощью команды 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. Это означает, что все пакеты, предназначенные для сетей, отличных от моей локальной подсети 92.168.0.0/24, будут пересылаться через 192.168.0.1. Этот IP 192.168.0.1 используется для моего маршрутизатора.

В демонстрационных целях я запущу службу докера на своем ноутбуке. Докер имеет свою подсеть. Мы будем использовать его для демонстрации использования команды 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

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

Читайте также:  Linux untar one file

Сбросить все маршруты

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

$ sudo ip route flush table main $ ip route show

При повторной проверке таблица маршрутизации должна вернуться пустой. Используйте эту команду с осторожностью, так как она может выкинуть вас с сервера, если вы не подключены напрямую или не имеете другого метода доступа (например, консоли, модема и т. д.).

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

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

$ sudo ip route flush cache

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

Отображать статистику в кэше маршрутов

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

$ sudo ip -s route show cache

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

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

/etc/sysconfig/static-routes or /etc/sysconfig/network-scripts/route- # 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

Пожалуйста, дайте нам знать ваши комментарии к этой статье.

Также читайте:

  • Как использовать IP-команды в Linux на примере
  • Как использовать команду Linux Route Add

Источник

Настройка сетевых маршрутов в Linux (CentOS)

date

13.04.2020

user

VyacheslavK

directory

CentOS, Linux

comments

Один комментарий

В этой статье мы рассмотрим особенности настройки маршрутизации и управления маршрутами в Linux (просмотр таблицы маршрутизации, добавление/удаление статических маршрутов и т.д.) на примере CentOS с помощью утилиты ip. Статья применима и для любого другого дистрибутива Linux с утилитой ip (Red Hat, Fedora и т.д.).

Читайте также:  Очистить папку tmp linux

Для управления маршрутизацией в Linux предпочтительно исопльзовать утилиту ip , а не route . Команда route не позволяет настраивать расширенные возможности маршрутизации (например, политики маршрутизации), и не покажет специальные настройки маршрутизации, если они уже сделаны через ip.

Просмотр таблицы маршрутизации в Linux

Чтобы вывести текущую таблицу маршрутизации в Linux выполните команду:

вывести таблицу маршрутизации в linux centos ip router

  • default via 192.168.1.1 dev enp0s3 – шлюз по умолчанию, в данном примере работающий через интерфейс enp0s3. Если для target адреса в таблице маршрутизации отсутствует маршрут, то такой пакет отправляется через данный шлюз (маршрут по умолчанию)
  • 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 — статический маршрут для сети 192.168.1.0/24 через адрес 192.168.1.201, который прописан на интерфейсе
  • proto kernel – маршрут создан ядром ( proto static – маршрут добавлен администратором)
  • metric – приоритет маршрута (чем меньше значение metric, тем выше приоритет). При наличии двух маршрутов с одинаковой метрикой (не стоит так делать!), ядро начинает выбирать маршруты случайным образом.

Чтобы узнать через какой интерфейс (шлюз) должен маршрутизироваться трафик к определенному IP адресу используется команда:

192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201

Вы можете использовать ваш Linux сервер с двумя и более интерфейсами как маршрутизатор или интернет-шлюз. Чтобы разрешить маршрутизацию пакетов между несколькими интерфейсами, нужно включить параметр ядра net.ipv4.ip_forward = 1.

Как добавить или удалить статический маршрут?

Чтобы добавить новый маршрут к определенной IP подсети в таблицу маршрутизации Linux, нужно выполнить следующую команду:

# ip route add 192.168.0.0/24 via 192.168.1.1

Таким образом, мы добавим маршрут для IP сети 192.168.0.0/24 через шлюз 192.168.1.1.

Формат команды ip route очень похоже на синтаксис в Cisco IOS. Здесь также можно исопльзовать сокращений, например вместо ip route add можно написать ip pro ad .

Читайте также:  Linux which codec pack

добавление маршрута в centos

Также можно добавить отдельный маршрут для одного IP адреса (хоста):

# ip route add 192.168.1.0 via 192.168.1.1

Можно сделать аналог null route маршрута в Cisco (ip route null0), пакеты в такую сеть удаляются по причине No route to host:

# ip route add blackhole 10.1.20.0/24

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

Чтобы удалить созданный вручную маршрут, выполните:

удалить маршрут из таблицы маршрутизации в linux centos

Как видите, маршрут удален из таблицы маршрутизации.

Чтобы добавить постоянный маршрут, нужно создать файл для этого маршрута, либо добавить правило в файл rc.local (выполняется при загрузке сервера).

Чтобы добавить постоянный (статический) маршрут, нужно знать имя сетевого интерфейса, который будет использоваться для маршрутизации. Узнать имя сетевого интерфейса можно командой:

В моем случае, интерфейс enp0s3.

сетевые интерфейсы в centos

Далее открываем следующий файл:

И добавляем туда строку с маршрутом:

После добавления маршрута в файл нужно перезапустить сервис network:

добавить постоянный (persistent) маршрут в centos linux

После перещаауска сетевого сервиса, в таблице маршрутизации появился статический маршрут.

Также можно добавить команду добавления нового маршрута в файл rc.local, чтобы он автоматически добавлялся при загрузке сервера. Откройте файл:

И укажите команду добавления маршрута:

# ip route add 192.168.0.0/24 via 192.168.1.1

добавление persistent маршрута через rc.local

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

Изменить маршрут в Linux

Чтобы изменить уже существующий маршрут, можно использовать команду ip route replace:

# ip route replace 192.168.0.0/24 via 192.168.1.1

изменитть маршрут ip route replace

Чтобы сбросить все временные маршруты в таблице маршрутизации, просто перезапустите сетевой сервис:

Restarting network (via systemctl): [ OK ]
default via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.0.0/24 via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 metric 100

Изменить маршрут по умолчанию

Вы можете удалить маршрут по-умолчаню с помощью команды ip route del:

# ip route del default via 192.168.1.1 dev enp0s3

Чтобы указать новый маршрут по-умолчанию в CentOS используется команда:

# ip route add default via 192.168.1.2 (маршрут через IP адрес шлюза)

# ip route add default via enp0s3 (маршрут через имя устройства)

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

# ip route replace default via 192.168.1.2

ip route replace default

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Источник

Оцените статью
Adblock
detector