Статические маршруты linux ubuntu

Sysadminium

Настройка сети – это один из важнейших навыков системного администрирования, и в этой статье мы научимся настраивать сеть на Ubuntu 22.04.

Получение информации о сетевых интерфейсах

В прошлой статье мы разобрали настройку сети в системе Debian 11, а в этой разберём всё тоже самое но для Ubuntu 22.04.

Посмотреть на доступные сетевые интерфейсы мы точно также можем с помощью утилиты lshw. И на сервере Ubuntu эта утилита предустановлена.

$ sudo lshw -C network *-network:0 description: Ethernet controller product: Virtio network device vendor: Red Hat, Inc. physical id: 12 bus info: pci@0000:00:12.0 version: 00 width: 64 bits clock: 33MHz capabilities: msix bus_master cap_list rom configuration: driver=virtio-pci latency=0 resources: irq:11 ioport:e0e0(size=32) memory:fea93000-fea93fff memory:fe40c000-fe40ffff memory:fea00000-fea3ffff *-virtio3 description: Ethernet interface physical id: 0 bus info: virtio@3 logical name: ens18 serial: 02:6e:f0:fb:d4:71 capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 ip=172.28.90.34 link=yes multicast=yes *-network:1 description: Ethernet controller product: Virtio network device vendor: Red Hat, Inc. physical id: 13 bus info: pci@0000:00:13.0 version: 00 width: 64 bits clock: 33MHz capabilities: msix bus_master cap_list rom configuration: driver=virtio-pci latency=0 resources: irq:10 ioport:e100(size=32) memory:fea94000-fea94fff memory:fe410000-fe413fff memory:fea40000-fea7ffff *-virtio4 description: Ethernet interface physical id: 0 bus info: virtio@4 logical name: ens19 serial: 82:dd:88:27:00:a5 capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 link=yes multicast=yes

В этом примере у меня два сетевых интерфейса: ens18 (02:6e:f0:fb:d4:71) и ens19 (82:dd:88:27:00:a5). При этом ip адрес назначен только на ens18 (172.28.90.34).

Мы уже знаем что утилита lshw в основном используется, чтобы узнать имя и возможности сетевой карты, то есть информацию о железе. А для получения настроек сетевых интерфейсов нужно использовать команду – ip. Работает эта команда точно также как в Debian, поэтому заострять на ней внимание не буду.

$ ip addr show ens18 2: ens18: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 02:6e:f0:fb:d4:71 brd ff:ff:ff:ff:ff:ff inet 172.28.90.34/20 brd 172.28.95.255 scope global dynamic ens18 valid_lft 258376sec preferred_lft 258376sec inet6 fe80::6e:f0ff:fefb:d471/64 scope link valid_lft forever preferred_lft forever $ ip addr show ens19 3: ens19: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 82:dd:88:27:00:a5 brd ff:ff:ff:ff:ff:ff inet6 fe80::80dd:88ff:fe27:a5/64 scope link valid_lft forever preferred_lft forever

В примере выше видно, что ens18 имеет назначенный ip адрес, а ens19 нет. Но оба интерфейса активны (state UP).

Читайте также:  Linux ubuntu создать директорию

Настройка IP адреса

Вот настройка сетевых интерфейсов при помощи конфигурационных файлов в Ubuntu значительно отличается от Debian. Это потому-что в Ubuntu используется система для управления сетью — Netplan. И нужно будет изучить конфигурационные файлы и команды этой системы.

Конфигурационные файлы Netplan находятся в каталоге «/etc/netplan«, а конфигурационный файл созданный при установки системы — «/etc/netplan/00-installer-config.yaml«.

Посмотрим на этот конфиг с помощью утилиты cat:

$ cat /etc/netplan/00-installer-config.yaml # This is the network config written by 'subiquity' network: ethernets: ens18: dhcp4: true ens19: dhcp4: true version: 2

Такой формат конфигурационных файлов называется — YAML (произносится как «ямл»).

Разберём этот файл построчно:

  • network: — говорит о том, что сейчас будем настраивать сеть;
    • ethernets: — начинается настройка сетевых интерфейсов;
      • ens18: — настраиваем интерфейс ens18;
        • dhcp4: true — ip адрес будет получен по dhcp;
        • dhcp4: true — ip адрес будет получен по dhcp;

        Разбирать формат YAML не буду, просто покажу как назначить статичные ip адреса и отключить dhcp.

        Число в имени файла — означает приоритет, и чем оно выше, тем выше приоритет у файла. Создадим новый конфиг, имя можно придумать любое, но чтобы этот файл стал главнее текущего, установим приоритет 02-:

        $ sudo nano /etc/netplan/02-network.yaml network: ethernets: ens18: dhcp4: no addresses: [ 172.28.90.75/20 ] routes: - to: default via: 172.28.80.10 nameservers: addresses: [ 77.88.8.8, 77.88.8.1 ] ens19: dhcp4: no addresses: [ 192.168.0.10/24 ] version: 2

        После создания конфигурационного файла проверим его на синтаксис:

        Если в выводе пусто, значит конфигурация верна.

        Теперь можно применить настройки:

        После этого, вам придётся заново подключится к серверу по ssh, по другому ip адресу.

        Итак, мы указали ip адреса для обоих интерфейсов, а также назначили на одном из низ шлюз по умолчанию (routes: — to default) и dns сервера (nameservers).

        И запомните, на сервере Ubuntu 22.04, не нужно использовать утилиты ifdown и ifup. Здесь работает netplan, и применять настройки нужно с помощью этой утилиты, предварительно проверив конфигурацию.

        Добавление статических маршрутов

        Добавлять статические маршруты нужно также в уже знакомом файле «/etc/netplan/02-network.yaml«:

        $ sudo nano /etc/netplan/02-network.yaml network: ethernets: ens18: dhcp4: no addresses: [ 172.28.90.75/20 ] routes: - to: default via: 172.28.80.10 - to: 192.168.5.0/24 via: 172.28.80.5 on-link: true nameservers: addresses: [ 77.88.8.8, 77.88.8.1 ] ens19: dhcp4: no addresses: [ 192.168.0.10/24 ] version: 2

        При добавлении маршрута нужно указать:

        • — to: 192.168.5.0/24 — префикс (сеть назначения);
        • via: 172.28.80.5 — через какой шлюз нужно добираться до сети назначения;
        • on-link: true — активировать маршрут при поднятии интерфейса.

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

        $ sudo netplan apply $ ip route show default via 172.28.80.10 dev ens18 proto static 172.28.80.0/20 dev ens18 proto kernel scope link src 172.28.90.75 192.168.0.0/24 dev ens19 proto kernel scope link src 192.168.0.10 192.168.5.0/24 via 172.28.80.5 dev ens18 proto static onlink

        В примере выше — 192.168.5.0/24 via 172.28.80.5 dev ens18 proto static onlink — и есть наш дополнительный статический маршрут.

        Итог

        Вот мы и прошли тему “Настройка сети на Ubuntu“.

        Мы познакомились с системой Netplan. Научились настраивать сеть с помощью конфигурационных файлов /etc/netplan/**-имя.yaml. Узнали как проверить и применить настройки с помощью команды netplan.

        Теперь можем указать ip адрес, адрес шлюза, адрес dns сервера, а также можем создать отдельные маршруты в системе Ubuntu 22.04

        Источник

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

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

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

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

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

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

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

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

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

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

        Команда route

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

        Команда netstat

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

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

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

        • 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 дней — бесплатно!

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

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

        Источник

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