как посмотреть таблицу маршрутизации linux
Таблица маршрутизации в Linux
Администратор создает так называемую таблицу маршрутизации, в ней описаны различные маршруты пакетов.
Любому из маршрутизаторов необходимо понимать на какой хост отправлять следующий пакет. Вот про это и будет идти речь в данной статье. Сегодня мы раскроем вопрос про маршрутизацию в Линукс, функциональность, настройку правил и правильное функционирование.
Когда хосту необходимо послать пакет другому хосту он просматривает таблицу маршрутизации. В данной таблице указаны IP-address конечного пункта назначения, метрика, название интерфейсов, адреса маршрутизаторов по которые могут отправить пакет конечному получателю.
В случае отсутствия маршрута для узла, применяется так называемый default шлюз, default маршрут. Подобное можно наблюдать на маршрутизаторе. Он сравнивает необходимый IP-address с таблицей маршрутизации, затем посылает дальше.
Ниже будем рассматривать проверку проходящих маршрутов в системе, процесс настройки новых.
Способы просмотра таблицы маршрутизации в Линукс
Для просмотра таблицы в ОС Линукс можно использовать команду:
Как видно из скриншота выше, команда показала всего две записи. В первой записи указан шлюз (gateway) 192.168.168.254, вторая запись говорит о наличии доступа в подсеть 192.168.168.0 на интерфейсе eth0.
Бывает, выводимых данных route и netstat недостаточно, так как в них выводится легкая информация, ее не хватает для понимания всей картины. Чтобы получить более подробную таблицу, можно воспользоваться утилитой «routel».
В этой информации содержится:
Наиболее подходящий метод для просмотра таблицы маршрутизации в ОС Линукс – использовать утилиту «ip».
$ ip route
Подробней про «ip» можно посмотреть в другой статье: https://www.vseprolinux.ru/komanda-ip
Настройка
Для настройки таблицы маршрутизации будем использовать команду ip route. Добавим временный статический маршрут 192.168.22.0/24 через шлюз 192.168.168.254.
ip route add 192.168.22.0/24 via 192.168.168.254
ВАЖНО! При выполнении такой команды добавиться временный статический маршрут, после перезагрузки системы он сотрется.
Для проверки необходимо проверить, проходит ли пакет из сети 192.168.22.0. Для этого будем использовать ip route get.
ip route get 192.168.22.30
Как говорилось выше, после перезагрузки Linux все эти добавленные адреса сотрутся. Для того, чтобы данные не стирались, необходимо записать их в файле.
Не так сложно, как могло показаться. После всей выполненной работы присоединенные маршруты будут работать даже после перезагрузки операционной системы Линукс.
Рассмотрим еще несколько примеров.
Изменяем статический маршрут:
ip route change 192.168.22.0/24 via 192.168.168.254
ip route del 192.168.22.0/24
ЗАКЛЮЧЕНИЕ
Подобная работа написана для краткого рассмотрения функционирования маршрутизации в Линукс, как происходит настройка маршрутизации, а также для чего она необходима.
[в закладки] Шпаргалка системного администратора по сетевым инструментам Linux
В повседневные задачи системных администраторов входит работа с сетями и с подключённым к ним оборудованием. Нередко роль рабочего места администратора играет компьютер, на котором установлен какой-нибудь дистрибутив Linux. Утилиты и команды Linux, о которых пойдёт речь в материале, перевод которого мы публикуем сегодня, включают в себя список инструментов различной сложности — от простых, до продвинутых, которые предназначены для решения широкого спектра задач по управлению сетями и по диагностике сетевых неполадок.
▍Примеры
Ping, кроме того, можно использовать для выяснения IP-адресов сайтов на основе их имён. Вот как это выглядит.
Использование ping для выяснения IP-адреса сайта по его имени
Traceroute
▍Пример
Telnet
Утилита telnet позволяет связаться с удалённым компьютером по протоколу Telnet и взаимодействовать с ним, используя соответствующие команды.
▍Пример
Для организации сеанса Telnet-связи с другим компьютером используется следующая команда:
Netstat
Эта команда позволяет собирать сведения о сети и используется в ходе поиска и исправления сетевых неполадок, применяется для проверки данных о работе интерфейсов и портов, для исследования таблиц маршрутизации, для изучения информации о работе протоколов. Эта команда непременно должна присутствовать в арсенале системного администратора.
▍Примеры
Для того чтобы получить список всех портов, находящихся в режиме прослушивания, воспользуйтесь такой командой:
Для просмотра таблиц маршрутизации воспользуйтесь такой командой:
Вот как выглядит результат выполнения этой команды.
Сведения о таблице маршрутизации
Вот вариант этой команды, выводящий статистику по протоколам:
Статистика по протоколам
Следующий вариант вызова netstat позволяет узнать сведения об отправленных и полученных пакетах (transmission/receive, TX/RX) по каждому интерфейсу:
Данные об отправленных и полученных пакетах
Nmcli
Утилита nmcli отлично подходит для управления сетевыми соединениями, для выполнения настроек и для решения других подобных задач. С её помощью можно управлять программой NetworkManager и модифицировать сетевые параметры различных устройств.
▍Примеры
Вот как с помощью nmcli вывести список сетевых интерфейсов:
Так можно вывести информацию по конкретному интерфейсу:
Следующий вариант вызова команды позволяет проверить подключение устройства к сети:
Примеры использования nmcli
Эта команда позволяет отключить заданный интерфейс:
А эта позволяет включить интерфейс:
Вот пример команды, которая добавляет VLAN-интерфейс с заданным VLAN-номером, IP-адресом и шлюзом к указанному интерфейсу:
Маршрутизация
Существует множество команд, которые можно использовать для проверки правил маршрутизации и их настройки. Рассмотрим самые полезные из них.
▍Примеры
Следующая команда показывает все текущие маршруты, настроенные для соответствующих интерфейсов:
Маршруты, настроенные для интерфейсов
Эта команда позволяет добавить в таблицу маршрутизации шлюз, используемый по умолчанию:
Следующая команда добавляет в таблицу маршрутизации новый сетевой маршрут. Существует и множество других её параметров, позволяющих выполнять такие операции, как добавление маршрута и шлюза, используемых по умолчанию, и так далее.
С помощью такой команды можно удалить запись о заданном маршруте из таблицы маршрутизации:
Использование команды route
Вот команда, которая применяется для вывода текущей таблицы соседей. Кроме того, её можно использовать для добавления, изменения или удаления сведений о соседях:
Взглянем на примеры её использования.
Данные, полученные с помощью команды ip neighbor
Вот сведения о команде ip neigh
Сведения о команде ip neigh
Вот пример её вызова.
Вызов команды arp
Tcpdump и Wireshark
▍Примеры
Такая команда показывает, в режиме реального времени, пакеты с заданного интерфейса:
Использование tcpdump
Следующий вариант команды используется для захвата пакетов, приходящих с заданного IP системы-источника:
Так можно захватить пакеты, идущие на заданный адрес системы-приёмника:
Вот пример использования tcpdump для захвата пакетов для заданного номера порта, например, это может быть порт 53, 80, 8080, и так далее:
Здесь показано, как с помощью tcpdump захватывать пакеты заданного протокола, вроде TCP, UDP или других:
Iptables
Утилита iptables похожа на файрвол, она поддерживает фильтрацию пакетов, что позволяет управлять трафиком, пропуская или блокируя его. Диапазон возможностей этой утилиты огромен. Рассмотрим несколько наиболее распространённых вариантов её использования.
▍Примеры
Следующая команда позволяет вывести все существующие правила iptables :
Эта команда удаляет все существующие правила:
Следующие команды разрешают прохождение трафика с заданного номера порта к заданному интерфейсу:
Следующие команды разрешают loopback-доступ к системе:
Nslookup
Инструмент nslookup используется для получения сведений о назначении IP-адресов сетевым ресурсам. Его можно использовать и для получения сведений с DNS-серверов, например таких, как все DNS-записи для некоего веб-сайта (ниже мы рассмотрим соответствующий пример). На nslookup похожа утилита dig (Domain Information Groper).
▍Примеры
Следующая команда выводит IP-адреса вашего DNS-сервера в поле Server, и, ниже, выдаёт IP-адрес искомого сайта:
Такая команда показывает все доступные записи для заданного веб-сайта или домена:
Поиск неполадок
Вот набор команд и список важных файлов, используемых для идентификации сетевых неполадок.
▍Примеры
Итоги
В этой небольшой шпаргалке мы рассказали о сетевых инструментах Linux, предназначенных для системных администраторов. Надеемся, вам эти инструменты пригодятся.
Уважаемые читатели! Чем вы пользуетесь для администрирования сетей и для выяснения причин сетевых неполадок?
Настройка сетевых маршрутов в Linux (CentOS)
В этой статье мы рассмотрим особенности настройки маршрутизации и управления маршрутами в Linux (просмотр таблицы маршрутизации, добавление/удаление статических маршрутов и т.д.) на примере CentOS с помощью утилиты ip. Статья применима и для любого другого дистрибутива Linux с утилитой ip (Red Hat, Fedora и т.д.).
Просмотр таблицы маршрутизации в Linux
Чтобы вывести текущую таблицу маршрутизации в Linux выполните команду:
Чтобы узнать через какой интерфейс (шлюз) должен маршрутизироваться трафик к определенному IP адресу используется команда:
# ip route get 192.168.2.45
Как добавить или удалить статический маршрут?
Чтобы добавить новый маршрут к определенной 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 адреса (хоста):
# 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
Маршруты, добавленные таким образом являются временным и будут работать до перезагрузки сетевой службы или сервера.
Чтобы удалить созданный вручную маршрут, выполните:
# ip route del 192.168.0.0/24
Как видите, маршрут удален из таблицы маршрутизации.
Чтобы добавить постоянный маршрут, нужно создать файл для этого маршрута, либо добавить правило в файл rc.local (выполняется при загрузке сервера).
Чтобы добавить постоянный (статический) маршрут, нужно знать имя сетевого интерфейса, который будет использоваться для маршрутизации. Узнать имя сетевого интерфейса можно командой:
В моем случае, интерфейс enp0s3.
Далее открываем следующий файл:
И добавляем туда строку с маршрутом:
После добавления маршрута в файл нужно перезапустить сервис network:
# service network restart
После перещаауска сетевого сервиса, в таблице маршрутизации появился статический маршрут.
Также можно добавить команду добавления нового маршрута в файл rc.local, чтобы он автоматически добавлялся при загрузке сервера. Откройте файл:
И укажите команду добавления маршрута:
# ip route add 192.168.0.0/24 via 192.168.1.1
Теперь, если ваш сервер будет перезагружен, маршрут пропишется автоматически при загрузке системы.
Изменить маршрут в Linux
Чтобы изменить уже существующий маршрут, можно использовать команду ip route replace:
# ip route replace 192.168.0.0/24 via 192.168.1.1
Чтобы сбросить все временные маршруты в таблице маршрутизации, просто перезапустите сетевой сервис:
]# service network restart
Изменить маршрут по умолчанию
Вы можете удалить маршрут по-умолчаню с помощью команды 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 (маршрут через имя устройства)
Чтобы изменить параметры маршрута по умолчанию, используется команда:
Маршрутизация в Linux
В статье рассматривается вывод и изменение маршрутизации утилитой ip, изменение конфигурационных файлов сетевого интерфейса. ip – утилита для работы с маршрутизацией, и параметрами сетевого интерфейса. Вывод на экран имеющихся маршрутов выполняется командой: ip route Несколько таблиц маршрутизации: main, local и default предопределены. При отсутствии в параметрах команды ip route названия таблицы, используется главная — main.В […]
В статье рассматривается вывод и изменение маршрутизации утилитой ip, изменение конфигурационных файлов сетевого интерфейса.
ip – утилита для работы с маршрутизацией, и параметрами сетевого интерфейса.
Вывод на экран имеющихся маршрутов выполняется командой:
ip route
Несколько таблиц маршрутизации: main, local и default предопределены.
При отсутствии в параметрах команды ip route названия таблицы, используется главная — main.
В local заносятся правила для локальных ip, широковещательных пакетов.
default – таблица, вначале не содержащая правил.
ip route show table local — вывод определенной таблицы
Вначале указывается идентификатор, from all – применяется для всех пакетов, параметр lookup –таблица, в которую пакет должен быть отправлен.
Общий вид команд добавления сетевых маршрутов:
Добавление временных маршрутов.
Добавить маршрут в сеть 10.10.1.0/24 через шлюз 10.10.1.1:
Добавить маршрут в сеть 10.10.1.0/24 использовать интерфейс:
Добавить маршрут в сеть 10.10.1.0/24 использовать интерфейс, установив метрику 50:
Предположим, на шлюз приходят пакеты с IP 192.168.1.1. Их необходимо отправлять на шлюз 10.10.1.2.
Создаем таблицу:
Правило, отправляющее пакеты в таблицу:
Blackhole маршруты.
Пакеты, которые пойдут по blackhole маршруту будут удалены.
Удалить пакеты сети 1.2.3.0 с маской 255.255.255.0.
Добавление постоянных статических маршрутов.
Для добавления постоянных маршрутов для интерфейса eth0 необходимо отредактировать файл /etc/sysconfig/network-scripts/route-eth0
Для применения изменений необходимо сделать рестарт сетевого сервиса. В RHEL 6/CentOS 6
Также, можно остановить и поднять интерфейс eth0:
Для проверки запустить утилиту ping или ip
В случаях, когда необходимо повлиять на выбор интерфейса выхода, который будет использоваться для доступа к шлюзу, необходимо использовать команду DEFROUTE=no в файлах ifcfg для тех интерфейсов, которые не ведут к шлюзу по умолчанию.
Глобальная конфигурация шлюза по умолчанию находится в /etc/sysconfig/network.
Шлюз для интерфейса eth0 в /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE – имя интерфейса
BOOTPROTO – способ получения ip адреса: static, dhcp
ONBOOT – автоподнятие интерфейса при старте системы
HWADDR – контрольный параметр, используется для привязки интерфейса к mac-адресу
MACADDR — используется для изменения mac адреса
UUID – уникальный идентификатор интерфейса
GATEWAY – шлюз по умолчанию для этого интерфейса
При указании статического ip адреса указываются параметры:
IPADDR – ip адрес.
NETMASK – маска сети.
DNS – адрес DNS сервера.
В случае, если необходимо добавить диапазон адресов для интерфейса eth0 необходимо отредактировать файл /etc/sysconfig/network-scripts/ifcfg-eth0-range0, добавив туда параметры:
IPADDR_START — начальный IP из диапазона
IPADDR_END — последний IP из диапазона
CLONENUM_START — стартовый номер в имени интерфейса, с которого начнется нумерация добавленных интерфейсов.
NETMASK — маска подсети для каждого IP адреса
Например:
Для применения настроек необходимо перезапустить сетевой сервис.
Настройка сетевых маршрутов в Linux (CentOS)
Настройка сетевых маршрутов в Linux (CentOS)
В этой статье мы рассмотрим особенности настройки маршрутизации и управления маршрутами в Linux (просмотр таблицы маршрутизации, добавление/удаление статических маршрутов и т.д.) на примере CentOS с помощью утилиты ip. Статья применима и для любого другого дистрибутива Linux с утилитой ip (Red Hat, Fedora и т.д.).
Просмотр таблицы маршрутизации в Linux
Чтобы вывести текущую таблицу маршрутизации в Linux выполните команду:
Чтобы узнать через какой интерфейс (шлюз) должен маршрутизироваться трафик к определенному IP адресу используется команда:
# ip route get 192.168.2.45
Как добавить или удалить статический маршрут?
Чтобы добавить новый маршрут к определенной 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 адреса (хоста):
# 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
Маршруты, добавленные таким образом являются временным и будут работать до перезагрузки сетевой службы или сервера.
Чтобы удалить созданный вручную маршрут, выполните:
# ip route del 192.168.0.0/24
Как видите, маршрут удален из таблицы маршрутизации.
Чтобы добавить постоянный маршрут, нужно создать файл для этого маршрута, либо добавить правило в файл rc.local (выполняется при загрузке сервера).
Чтобы добавить постоянный (статический) маршрут, нужно знать имя сетевого интерфейса, который будет использоваться для маршрутизации. Узнать имя сетевого интерфейса можно командой:
В моем случае, интерфейс enp0s3.
Далее открываем следующий файл:
И добавляем туда строку с маршрутом:
После добавления маршрута в файл нужно перезапустить сервис network:
# service network restart
После перещаауска сетевого сервиса, в таблице маршрутизации появился статический маршрут.
Также можно добавить команду добавления нового маршрута в файл rc.local, чтобы он автоматически добавлялся при загрузке сервера. Откройте файл:
И укажите команду добавления маршрута:
# ip route add 192.168.0.0/24 via 192.168.1.1
Теперь, если ваш сервер будет перезагружен, маршрут пропишется автоматически при загрузке системы.
Изменить маршрут в Linux
Чтобы изменить уже существующий маршрут, можно использовать команду ip route replace:
# ip route replace 192.168.0.0/24 via 192.168.1.1
Чтобы сбросить все временные маршруты в таблице маршрутизации, просто перезапустите сетевой сервис:
]# service network restart
Изменить маршрут по умолчанию
Вы можете удалить маршрут по-умолчаню с помощью команды 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 (маршрут через имя устройства)
Чтобы изменить параметры маршрута по умолчанию, используется команда: