Перейти к содержимому

Как прописать маршрут в ubuntu

  • автор:

Настройка статических маршрутов в ОС Ubuntu

Добрый день, имеется комп с двумя сетевыми картами(локалка и инет) и двумя ОС Виндой и Ubuntu. есть необходимоть обновременной работы в обеих сетях без переключения в сетевых настройках, в Винде у меня получилось прописать статический маршрут командами:

route add 0.0.0.0 10.21.96.193 route add 10.0.0.0 mask 255.0.0.0 10.21.136.1 

подскажите пожалуйста как настроить статические маршруты в Ubuntu?

ruslan_dzusev
15.12.22 16:41:40 MSK

  • Ответить на это сообщение
  • Ссылка

точно так же man ip-route

Anoxemian ★★★★★
( 15.12.22 16:48:47 MSK )

  • Ответить на это сообщение
  • Ссылка

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

route add 1.2.3.4 gw 2.3.4.5 route add -net 22.33.44.0/24 gw 2.3.4.6 

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

firkax ★★★★★
( 15.12.22 17:25:49 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от firkax 15.12.22 17:25:49 MSK

Маршруты прописываются командой route

Нет, ip route, net-tools давно протух!

yandrey ★
( 15.12.22 17:35:45 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от yandrey 15.12.22 17:35:45 MSK

У меня всё работает, а чьи-то религиозные представления на работу утилит не влияют.

firkax ★★★★★
( 15.12.22 17:59:13 MSK )

  • Ответить на это сообщение
  • Ссылка

В linux route это по старообрядчески, сборник утилит net-tools, откуда эта команда происходит, объявлен устаревшим достаточно давно, но к нему настолько привыкли что никак не дадут ему умереть. Если ты только начал всё это изучать привыкай лучше сразу к «новому» синтаксису и утилите ip из iproute2.

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

Jameson ★★★★★
( 15.12.22 18:47:19 MSK )
Последнее исправление: Jameson 15.12.22 18:56:14 MSK (всего исправлений: 1)

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от Jameson 15.12.22 18:47:19 MSK

route это команда, которая есть во всех юниксах, и даже не только в них.

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

Скорее всего не придётся.

firkax ★★★★★
( 15.12.22 18:57:31 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от firkax 15.12.22 18:57:31 MSK

Так я разве спорю? Но зачем новичку советовать учить то что официально deprecated? Из какого то глубоко укоренившегося упрямства? Я тоже из «динозавров» и на net-tools воспитан, но переучился и не жалею. Тем более если приспичит цископодобные железки ковырять синтаксис утилиты ip будет привычен и не придётся вывихивать себе мозг.

Jameson ★★★★★
( 15.12.22 19:02:19 MSK )

  • Ответить на это сообщение
  • Ссылка
route add 0.0.0.0 10.21.96.193 route add 10.0.0.0 mask 255.0.0.0 10.21.136.1 

Первый судя по всем маршрут по дефолту и второй статический с указанием шлюза. Зачем там две сетевухи и почему их надо переключать — загадка. Я так понимаю, он прописал шлюз 10.21.136.1 дефолтным на второй карте и так обходился без маршрутов вовсе, переключая карты.

Вообще за то, что в виндоуз принимают такие ублюдские правила, Билли Кекса давно пора распнуть. Реально, заклинания, а не правила.

Весь ЛОР распался на тех, кто за route и тех, кто за ip route. Круто!

А ничего, что вообще-то маршрут надо прописывать в сетевые настройки? Скорее всего в убунте NetworkManager и там он и прописывается прямо в свойствах соединения? Ну, или в /etc/network/interfaces или /etc/systemd/networkd ?

AVL2 ★★★★★
( 15.12.22 20:52:18 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от firkax 15.12.22 17:25:49 MSK

Но для одновременной работы локалки и инета никакие кастомные маршруты прописывать не надо, всё должно само работать

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

ruslan_dzusev
( 15.12.22 21:31:04 MSK ) автор топика

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от AVL2 15.12.22 20:52:18 MSK

Весь ЛОР распался на тех, кто за route и тех, кто за ip route. Круто!

Просто первые, не осилили второе. А с учетом окончания 2022, скорее первые нагуглили только route.

anc ★★★★★
( 15.12.22 23:23:06 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от ruslan_dzusev 15.12.22 21:31:04 MSK

Опиши схему сети, может разберёмся что там происходит.

firkax ★★★★★
( 16.12.22 00:56:31 MSK )

  • Ответить на это сообщение
  • Показать ответ
  • Ссылка

Ответ на: комментарий от anc 15.12.22 23:23:06 MSK

Не просто не осилили а даже не пытались (если про меня). Работающий инструмент уже есть, я его уже знаю, альтернатива ничего мне не добавит а значит нафиг не сдалась. Если столкнусь с задачей где она понадобится — изучу.

firkax ★★★★★
( 16.12.22 00:57:58 MSK )

  • Ответить на это сообщение
  • Показать ответы
  • Ссылка

Ответ на: комментарий от firkax 16.12.22 00:57:58 MSK

Ну значит вы и не относитесь к категории «кто за route».

anc ★★★★★
( 16.12.22 01:10:13 MSK )

  • Ответить на это сообщение
  • Ссылка

Настройка маршрутизации в Ubuntu Linux, для начинающих

Правила маршрутизации определяют, куда отправлять IP-пакеты. Данные маршрутизации хранятся в одной из таблиц ядра. Вести таблицы маршрутизации можно статически или динамически. Статический маршрут — это маршрут, который задается явно с помощью команды route.
Динамическая маршрутизация выполняется процессом-демоном (routed или gated), который ведет и модифицирует таблицу маршрутизации на основе сообщений от других компьютеров сети. Для выполнения динамической маршрутизации разработаны специальные протоколы: RIP, OSPF, IGRP, EGP, BGP и т.д.

Динамическая маршрутизация необходима в том случае, если у вас сложная, постоянно меняющаяся структура сети и одна и та же машина может быть доступна по различным интерфейсам (например, через разные Ethernet или SLIP интерфейсы). Маршруты, заданные статически, обычно не меняются, даже если используется динамическая маршрутизация.
Для персонального компьютера, подключаемого к локальной сети, в большинстве ситуаций бывает достаточно статической маршрутизации командой route. Прежде чем пытаться настраивать маршруты, просмотрите таблицу маршрутизации ядра с помощью команды netstat -n -r. Вы должны увидеть что-то вроде следующего

Если таблица пуста, то вы увидите только заголовки столбцов. Тогда надо использовать route. С помощью команды route можно добавить или удалить один (за один раз) статический маршрут. Вот ее формат:

Здесь аргумент операция может принимать одно из двух значений: add (маршрут добавляется) или delete (маршрут удаляется). Аргумент адресат может быть IP-адресом машины, IP-адресом сети или ключевым словом default. Аргумент шлюз — это IP-адрес компьютера, на который следует пересылать пакет (этот компьютер должен иметь прямую связь с вашим компьютером). Команда

удаляет из таблицы данные обо всех шлюзах. Необязательный аргумент тип принимает значения net или host . В первом случае в поле адресата указывается адрес сети, а во втором — адрес конкретного компьютера (хоста).
Как правило, бывает необходимо настроить маршрутизацию по упоминавшимся выше трем интерфейсам:

  • локальный интерфейс (lo),
  • интерфейс для платы Ethetnet (eth0),
  • интерфейс для последовательного порта (PPP или SLIP).

Локальный интерфейс поддерживает сеть с IP-номером 127.0.0.1. Поэтому для маршрутизации пакетов с адресом 127. используется команда:

Если у вас для связи с локальной сетью используется одна плата Ethernet, и все машины находятся в этой сети (сетевая маска 255.255.255.0), то для настройки маршрутизации достаточно вызвать:

Если же вы имеете насколько интерфейсов, то вам надо определиться с сетевой маской и вызвать команду route для каждого интерфейса. Поскольку очень часто IP-пакеты с вашего компьютера могут отправляться не в одну единственную сеть, а в разные сети (например, при просмотре разных сайтов в Интернете), то в принципе надо было бы задать очень много маршрутов. Очевидно, что сделать это было бы очень сложно, точнее просто невозможно. Поэтому решение проблемы маршрутизации пакетов перекладывают на плечи специальных компьютеров — маршрутизаторов, а на обычных компьютерах задают маршрут по умолчанию, который используется для отправки всех пакетов, не указанных явно в таблице маршрутизации. С помощью маршрута по умолчанию вы говорите ядру «а все остальное отправляй туда». Маршрут по умолчанию настраивается следующей командой:

Опция gw указывает программе route, что следующий аргумент — это IP-адрес или имя маршрутизатора, на который надо отправлять все пакеты, соответствующие этой строке таблицы маршрутизации. Вот немного теории с сайта linuxcenter.ru

А теперь пример из жизни
Имеются следующие интерфейсы /etc/network/interfaces

Интерфейс eth0 это связь с локальной сетью состоящей из 20 подсетей 192.168.1.х-192.168.20.х
Интерфейс eth1 это связь с ADSL модемом с выходом в интернет. Так большинство запросов идут в Инет на этом интерфейсе прописываем шлюз (gateway 192.168.254.1) данный параметр указывает в системе шлюз по-умолчанию, обращаю внимание, что шлюз надо прописывать только на одном интерфейсе, иначе в системе появятся 2 маршрута по умолчанию и естественно будет затупление в работе. С интернетом разобрались.
Но требуется еще просматривать ресурсы локальной сети для этого надо выполнить вот эти команды

На этом примере маршрутизируются 3 подсети
Все эти команды и многие другие можно прописать в файлик /etc/network/interfaces в итоге получится следующее:

Ну вот и все по аналогии настраиваются любое кол-во маршрутов и сетевых интерфейсов

Дополнение 1.
Обратите внимание

так легко можно изменить MAC, не забываем после редактирования файла делать рестарт

Дополнение 2.
Следует отметить, что:

  • Для того, чтобы просмотреть таблицу маршрутов достаточно запуска команды route без параметров или route -n, если в сети нет DNS.
  • Маска может быть записана проще, в виде /x, где x — число единичных битов, например:

    вместо

  • Настройки сети размещаются в файле /etc/network/interfaces
    При подключение к Inet через VPN (ppp0. ), необходимо заменять маршрут по умолчанию на ppp0.
    А проще указать в файле /etc/ppp/options следующее:

    тогда маршрут заменяется сам и при отключении восстанавливается.

Дополнение 3.
Есть прога, серверная часть которой стоит во внутренней сети, например Radmin Server, чтобы к нему подключиться клиентская прога (Radmin Viewer) запрашивает соединение по порту 4799 (например). Все работает внутри локальной сети. Есть шлюз (с внешним IP), через который обеспечивает доступ в и-нет всех компов внутренней сети. Теперь вопрос, как настроить шлюз, чтобы при обращении из вне клиентской частью к IP шлюза по порту 4799, он пробрасывал этот запрос дальше, например на 192.168.0.2 по тому же порту?
Для этого есть команда iptables:

Если ограничивать входящие IP не требуется, то опцию -s можно опустить.
Пример:

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

date

13.04.2020

user

VyacheslavK

directory

CentOS, Linux

comments

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

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

Для управления маршрутизацией в 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 адресу используется команда:

# ip route get 192.168.2.45

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 .

добавление маршрута в 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

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

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

# ip route del 192.168.0.0/24

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

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

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

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

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

Более подробная статья о настройке сетевых интерфейсов в CentOS.

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

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

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

192.168.0.0/24 via 192.168.1.1

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

# service network restart

добавить постоянный (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

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

[root@localhost ~]# service network restart

Restarting network (via systemctl): [ OK ]

[root@localhost ~]# ip route

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

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

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

Вся цифровая информация передаётся по сети в виде пакетов данных. По пути от отправителя к адресату они проходят через цепочку промежуточных устройств – маршрутизаторов (роутеров) и/или соответственно настроенных компьютеров.

Маршрутизация – это процесс определения пути (сетевого маршрута) для установки соединения между хост-устройствами. Этот путь настраивается как внутри локального устройства, так и на маршрутизаторе.

Построение сетевого маршрута происходит на основе информации из таблиц маршрутизации. Для их формирования применяются протоколы маршрутизации или инструкции сетевого администратора.

Каждая таблица содержит ряд параметров, позволяющих правильно идентифицировать и читать сетевой маршрут. Таблица содержит минимум 5 разделов:

  • Destination (Target). IP-адрес сети назначения – конечной цели для передаваемых данных.
  • Netmask (Genmask). Маска сети.
  • Gateway. IP-адрес шлюза, через который можно добраться до цели.
  • Interface. Адрес сетевого интерфейса, по которому доступен шлюз.
  • Metric. Числовой показатель, задающий предпочтительность маршрута.

Опционально в таблице также может содержаться следующая информация:

  • адрес отправителя (source);
  • размер TCP-окна (window);
  • максимальная величина пакета (MSS) и типы записей.

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

Таблицу маршрутизации в Linux (например, в популярных серверных ОС типа Ubuntu или CentOS) можно посмотреть с помощью нескольких команд.

Команда route

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

route -n

Команда netstat

Утилита используется для сбора информации о состоянии сетевых соединений. Вывести таблицу можно с помощью команды:

netstat -r

Построение таблицы маршрутизации

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

  • Route. Устаревшая утилита, входящая в состав пакета net-tools. Служит для отображения таблицы маршрутизации и построения статических маршрутов.
  • IP Route. Обновленный инструмент, призванный заменить Route. Имеет большую функциональность, по сравнению со своим предшественником.

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

Route

Команда имеет следующий вид:

route [-f] [-p] command -net [destination] netmask [MASK netmask] gw [gateway] metric [METRIC metric] dev [IF interface]
Ключи
  • -f – очистка таблиц от записей всех шлюзов.
  • -p – сохранение маршрута в качестве постоянного при использовании ADD. По умолчанию все маршруты временные и после перезагрузки системы сбрасываются.
Основные опции (command)
  • add – добавление маршрута.
  • del – удаление маршрута.
  • replace – замена маршрута.
  • change – изменение или настройка параметров маршрута.
Обозначения
  • [destination] – адрес сети назначения.
  • [MASKnetmask] – маска подсети.
  • [gateway] – адрес шлюза.
  • [METRICmetric] – числовой показатель, задающий предпочтительность маршрута (используется в том случае, если устройство является маршрутизатором).
  • [IFinterface] – сетевой интерфейс.
Опции для указания вводных данных

IP Route

Команда имеет следующий вид:

ip route command [destination] netmask [MASK netmask] via [gateway] metric [METRIC metric] dev [IF interface]
Основные опции (command)
  • add – добавление маршрута.
  • del – удаление маршрута.
  • replace – замена маршрута.
  • change – изменение или настройка параметров маршрута.
Обозначения
  • [destination] – адрес сети назначения.
  • [MASKnetmask] – маска подсети.
  • [gateway] – адрес шлюза.
  • [METRICmetric] – числовой показатель, задающий предпочтительность маршрута (используется в том случае, если устройство является маршрутизатором).
  • [IFinterface] – сетевой интерфейс.
Опции для указания вводных данных
  • via – используется в значении «через» для указания шлюза.
  • dev – сетевой интерфейс.
  • netmask – маска подсети.
  • metric – метрика.

Примеры статической маршрутизации

Составление нового маршрута

Можно представить два офиса: A и B. В каждом стоят маршрутизаторы на Linux, которые соединены между собой IP-IP туннелем.

Маршрутизатор A имеет IP-адрес — 192.168.1.1, а маршрутизатор B — 192.168.1.2.

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

route add -net 172.16.10.0/24 gw 192.168.1.1

Будет произведена установка шлюза «192.168.1.1» для сети «172.16.10.0/24».

Также необходимо прописать на маршрутизаторе A обратный маршрут в локальную сеть маршрутизатора B:

route add -net 172.20.0.0/24 gw 192.168.1.2

Изменение локальной сети

В случае изменения локальной сети маршрутизатора B, необходимо удалить старую запись:

route del -net 172.20.0.0/24 gw 192.168.1.2

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

route add -net 172.20.0.0/24 gw 192.168.1.2

Изменение адреса тоннеля

Если на маршрутизаторе B изменится IP-адрес туннеля, то следует также актуализировать адрес шлюза на маршрутизаторе А:

ip route replace 172.16.10.0/24 via 192.168.1.3

После выполнения команды адрес шлюза для подсети «172.16.10.0/24» будет изменён.

Изменение провайдера

Чтобы перенаправить трафик через другого провайдера («ISP2»), следует изменить маршрут «по умолчанию» («default»):

ip route replace default via 5.215.98.7

Надежный хостинг для сайта. 14 дней — бесплатно!

Мы всегда на связи в соцсетях

Поддержка в привычной среде

Мы в Яндекс Кью

  • Хостинг для сайта
  • CMS хостинг
  • VPS сервер
  • Удалённый рабочий стол
  • Домены
  • Стресс-тест на DDoS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *