Linux interface default route

Настройка сетевой маршрутизации Linux – команда route

Для определения и задания маршрутов в сетях существуют динамическая и статическая маршрутизации. В первом случае маршруты задаются специальным демоном маршрутизации, который модифицирует соответствующим образом таблицу маршрутизации ядра. Во втором случае маршруты задаются администратором/пользователем при помощи команды route. Маршруты, заданные командой route не изменяются, даже если включена динамическая маршрутизация.

Как работает маршрутизация?

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

Первая — когда, например, пакет адресуется компьютеру, находящемуся в той же сети, что и источник пакета, а точнее сказать — его отправитель. В данной ситуации для такого пакета следующим шлюзом является один из локальных интерфейсов и он (пакет) отправляется сразу к адресату. Такие «явные» и «короткие» шлюзы обычно задаются во время конфигурирования сетевых интерфейсов — командой ifconfig.

Вторая — когда адрес назначения пакта не соответствует ни одному шлюзу в таблице маршрутизации. В таком случае, во избежание коллизий в сети и её чрезмерной нагрузки должен быть задействован шлюз по-умолчанию. Другими словами, это такой маршрут, который указывает системному ядру: все остальные пакеты (без соответствий в таблице маршрутов) направляй сюда. Если шлюз по-умолчанию не будет предусмотрен, то отправляющей стороне посылается сообщение о недостижимости сети или узла.

Как правило, локальные сети имеют единственный шлюз во внешнюю среду, например в Интернет. В свою очередь, в сети Интернет таких «стандартных маршрутов» не существует.

Синтаксис и основные опции

Основное назначение команды route – добавление и удаление сетевых маршрутов для системного ядра, а также просмотр содержимого таблицы маршрутизации. Эта команда, хотя и работает в разных UNIX-подобных системах одинаково, однако имеет резко отличающийся синтаксис в зависимости от используемой системы.

В общем случае прототипом команды route является следующая запись:

route add [-net|-host] netmask gw dev X
$ route add -net 127.0.0.0 netmask 255.0.0.0 metric 1024 dev lo

Эта команда добавит шлюз с обратной связью через виртуальное устройство lo, которое используется для этой цели в Linux-системах. Опции -net и -host используются для указания адреса, характеризующего либо сеть, либо узел соответственно как пункты назначения. Для определения подсети служит опция netmask, для задания приоритета шлюза — опция metric. Сетевой интерфейс обозначается опцией dev. Кроме описанных выше для команды route также существуют и другие используемые ей опции, которые приведены в следующей таблице:

Шлюз, через который должны достигаться сеть или узел. Задаётся в виде имени узла или точечной записи адреса.

Читайте также:  Linux fdisk создаем раздел

Устанавливает значение MTU (максимальную величину пакета) в байтах.

Устанавливает размер TCP-окна для задаваемого шлюза в байтах. Обычно используется в сетях AX.25.

Устанавливает начальное время отклика для TCP-соединений по данному маршруту в миллисекундах.

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

Заставляет работать с таблицей маршрутизации ядра. Эта опция в большинстве систем используется по-умолчанию, поэтому часто опускается.

Заставляет работать с кэшем маршрутизации ядра.

Включает подробный режим работы команды route.

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

Использовать формат вывода команды netstat для отображения содержимого таблицы маршрутов. Опция -ee сгенерирует самый подробный отчёт с полными наименованиями параметров таблицы маршрутов.

Примеры использования

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

$ ifconfig eth0 nodeone netmask 255.255.255.0
$ route add -net 192.168.1.0

Здесь для команды route не указывается сам интерфейс, поскольку предполагается, что узлу nodeone соответствует адрес 192.168.1.2. Далее, route «узнаёт», что маршрут нужно проложить именно через eth0 благодаря тому, что системное ядро анализирует все доступные интерфейсы на предмет их конфигурации и сравнивает адрес пункта назначения с сетевой частью сетевых (сконфигурированных) интерфейсов. В данном случае ядро обнаруживает, что eth0 – тот интерфейс (с адресом 192.168.1.2), которому соответствует конечный адрес, т. е. 192.168.1.0.

Задание шлюза по-умолчанию:

$ route add default gw 192.168.1.1 eth0

Доступ в локальную сеть Ethernet через сетевой интерфейс eth0:

$ route add -net 192.168.10.0 netmask 255.255.255.0 eth0

Здесь 192.168.10.0 – сеть, к которой нужно установить доступ (маршрут).

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

Также можно использовать сокращённую запись для задания маски подсети:

$ route add -net 192.168.10.0/24 eth0

Следует отметить, что шлюзы, установленные командой route будут существовать до перезагрузки системы. Для их использования на постоянной основе необходимо нужные команды прописать в файле. В Ubuntu это /etc/network/interfaces.

Например для настройки маршрутизации сети 192.168.10.0/24 через шлюз 192.168.10.1 интерфейс eth0, это команда

$ route add -net 192.168.10.0/24 gw 192.168.10.1 eth0

файл /etc/network/interfaces будет выглядеть следующим образом

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.10.8
hwaddress ether 00:E0:4C:A2:C4:48
netmask 255.255.255.0
broadcast 192.168.10.255
up route add -net 192.168.10.0/24 gw 192.168.10.1 eth0

auto eth1
iface eth1 inet static
address 172.16.0.34
netmask 255.255.255.0
gateway 172.16.0.1
broadcast 172.16.0.255

В Centos/Redhat это файл /etc/sysconfig/network-scripts/route-eth0 для интерфейса eth0 если же название интерфейса другое, то название файла будет route-. Если этого файла нет, то его нужно создать. Для настройки выше указанного примера, добавьте в файл следующие строки

192.168.10.0/24 via 192.168.10.1

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

systemctl restart network

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Настройка маршрута по умолчанию в Linux

img

В статье мы покажем, как использовать команды маршрутизации в Linux (в UNIX подобных системах) чтобы отображать или конфигурить информацию о дефолтных маршрутах. Погнали разбираться!

Читайте также:  Astra linux подключить репозиторий iso

Настройка маршрута по умолчанию в Linux

Показать маршруты по умолчанию

Ловите 2 команды, которые помогут отобразить текущую таблицу маршрутизации в Linux:

Вывод такой команды будет примерно следующим:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 ra0 default dsl-router 0.0.0.0 UG 0 0 0 ra0

Или можно использовать второй вариант:

”Выхлоп” такой команды в той же самой таблице маршрутизации:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 191.255.255.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 default 191.255.255.1 0.0.0.0 UG 0 0 0 eth0

Настройка дефолтного маршрута

Синтаксис настройки категорически прост. Смотрите:

  • IP-АДРЕС — IP — адрес шлюза;
  • ИНТЕРФЕЙС — имя интерфейса, за которым сидит указанный выше шлюз;

Например, если IP — адрес вашего роутера 192.168.1.254 и он сидит на интерфейсом eth0, то из под root выполните команду:

# route add default gw 192.168.1.254 eth0

Или можно использовать хостнейм (только проверьте, чтобы он резолвился на уровне DNS):

# route add default gw dsl-router eth0

Или можно использовать команду ip , чтобы маршрутизировать весь трафик через шлюз 192.168.1.254, который подключен к интерфейсу eth0:

# ip route add 192.168.1.0/24 dev eth0

Либо вместо eth0 интерфейса можно прописать в явном виде адрес шлюза. Тут ап ту ю, как говорится 🙂

# ip route add 192.168.1.0/24 via 192.168.1.254

Источник

Add a Default Route on Linux

Any Linux user, especially a systems administrator, should have skills to make simple network configurations on a Linux system. For the system to communicate to the other computers on the internet, gateways must be set up and adjusted as needed.

What Will We Cover?

In this article, we will see how to add a default route on the Linux systems. Notably, different systems may have different configurations. However, we will focus on the Ubuntu 20.04 system.

What Is a Default Gateway?

To connect your home network to the wider internet, you need a default gateway. The function of a gateway is implied by its name; it connects a local area network to the wider internet.

All traffic that are not meant for the local area network and for which no alternate route is defined in the routing table are sent via the default gateway. Typically, a network’s default gateway is a specific router.

The wireless router serves as the “default gateway” in most home networks. It’s a way to connect to resources which are located on other networks that are far from your own. Internet navigation would be considerably more difficult without it.

Checking the Default Gateway

We can use the ip command and the route object to view the system’s configured routes. Since the list option is already the default action, we don’t need to include it. Additionally, we can use “r” in place of route to cut down on typing:

We can see the term “default” included in one of the routes. This is the standard route for the default gateway/route.

Automatic route addition and deletion are possible in certain cases. For example, while establishing a VPN connection, the ip r command on the same system yields a different set of results. In doing so, the network traffic is routed via a private tunnel:

Читайте также:  Passing init option to kernel see linux

With grep, it’s possible to easily isolate the default route from a large collection of configured ones:

Deleting the Default Gateway

Now, we delete the route that sends the traffic via the system’s default gateway. For this, we use the route object with the ip command and specify the delete option. Also, we require the sudo access to the routing table in order to make any modifications. First, we list the routes before deleting the default one. Then, we verify our action by listing them again:

As we can see, the default gateway entry is deleted.

Creating a New Default Gateway

The route object with an add argument can be used to create a new default gateway. Let’s take example the adding of 192.168.117.161 as the new default gateway on the wlo1 interface:

The traffic now routes via this new default gateway on enp0s3.

Making the Routing Changes Permanent

The modifications we made have immediate effect, but they are lost once the machine is restarted. You must alter a few configuration files in order to make your modifications permanent.

For example, in the case of Ubuntu, the netplan command comes in handy. Here, we need to open the netplan network configuration file:

Now, add the following configuration inside it, below the line corresponding to the renderer:

You can refer to the following screenshot. Keep in mind that the successive level of indentation is important here as well.

After saving the file, apply the changes:

Getting back to the normal command line means that the configuration is successful. Also, you can use the netplan command with the try option to examine the modifications before you apply them:

This provides you time to test your settings. If everything is set properly, you can save the configuration by hitting the “Enter” key within two minutes before the command times out. In this way, your changes are applied. Otherwise, if you don’t hit the “Enter” key, the changes only remain in the configuration file. However, your network settings are not yetmodified by them.

Note: On RHEL 8 Red Hat System, we can use the nmstatectl utility to define the gateway configuration in a YAML file. Similarly, RHEL System Roles (playbook approach) can also be used to set the default gateway.

Conclusion

We learned how to configure a default route on the Linux systems with the Ubuntu 20.04 target.

If your default gateway settings are correct, you’ll be able to communicate with the rest of the internet. However, familiarity with the hostname-to-IP address resolution is still required.

About the author

Ali Imran Nagori

Ali imran is a technical writer and Linux enthusiast who loves to write about Linux system administration and related technologies. You can connect with him on LinkedIn
.

Источник

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