Skip to content

Маршрутизатор

Теоретические сведения

Что такое маршрутизатор и зачем он нужен

Устройство, которое:

  • разделяет конечные устройства на логические группы (например, ПК для пользователей и серверы),
  • занимается поиском и распространением маршрутов, чтобы корректно и быстро доставлять сетевой трафик.

Это базовые задачи. Также существуют другие задачи, но в данной статье они не рассматриваются.

Схема

Далее будет рассматриваться настройка следующей сети. Это одна и та же сеть, только предаставленна разная информация на ней.

На этой показано, как соединены устройства:

flowchart LR
    R((Router))

    PC1 o--o S1 o--o R
    PC2 o--o S1

    R o--o S2 o--o PC3
    S2 o--o PC4

На этой показано, к каким сетям подключены устройства и какие адреса у них:

flowchart LR
    subgraph Router
        R.int1[int1<br>.254]
        R.int2[int2<br>.254]
    end

    subgraph PC1
        PC1.int[int<br>.1]
    end

    subgraph PC2
        PC2.int[int<br>.2]
    end

    subgraph PC3
        PC3.int[int<br>.1]
    end

    subgraph PC4
        PC4.int[int<br>.2]
    end

    Net1{{192.168.0.0/24}}
    Net2{{192.168.1.0/24}}

    PC1.int o--o Net1 o--o R.int1
    PC2.int o--o Net1

    R.int2 o--o Net2 o--o PC3.int
    Net2 o--o PC4.int

int - это название интерфейса, которое зависит от устройства.

В месте обозначения сети в реальности находится коммутатор. На данной схеме обозначение коммутатора не несет смысла, т.к. коммутатору не выдается адрес.

Шлюз в сети

Это устройство, которому необходимо отдать трафик, т.к. оно лучше "знает", что делать с этим трафиком дальше.

Для конечных устройств шлюзом обычно является их "ближайший" маршрутизатор.

У маршрутизатора тоже может быть шлюз - другой маршрутизатор. Такая схема будет рассмотрена позже.

Настройка ПК

В данном примере после IP-адреса и маски также необходимо указать адрес шлюза. Если его не указать, то доступны между собой будут только PC1 и PC2, а также PC3 и PC4. Например, PC1 не сможет "пинговать" PC4, т.к. он не будет знать, как до него добраться.

ip 192.168.0.1/24 192.168.0.254
save
ip 192.168.0.2/24 192.168.0.254
save
ip 192.168.1.1/24 192.168.0.254
save
ip 192.168.1.2/24 192.168.0.254
save

Настройка маршрутизатора

Cisco

conf t
int e0/0
ip address 192.168.0.254 255.255.255.0
no sh
end
wr mem
  • cont t - войти в режим конфигурации (сокращенная команда),
  • int e0/0 - войти в режим настройки интерфейса,
  • ip address 192.168.0.254 255.255.255.0 - задать адрес на интерфейсе,
  • no sh - включить интерфейс, т.к. по умолчанию он выключен (сокращенная команда),
  • end - выйти из режима конфигурации,
  • wr mem - сохранить конфигурацию (сокращенная команда).

MikroTik

Логин - admin, пароль - <пусто>.

ip address add interface=ether1 address 192.168.0.254/24
ip address add interface=ether2 address 192.168.1.254/24

Debian-подобный linux

В качестве маршрутизатора можно использовать linux.

Есть несколько вариантов задания адреса на интерфейсе, но сначала нужно активировать возможность пересылки пакетов между интерфейсами.

Включение маршрутизации

# добавить строку
net.ipv4.ip_forward = 1
echo `net.ipv4.ip_forward = 1` >> /etc/sysctl.conf

Применить настройки командой sysctl -p.

iproute2

Простой способ задания адреса, но нужно наличие пакета iproute2 (apt install iproute2), который обычно уже установлен.

ip a - посмотреть информацию на интерфейсах, а так же их названия.

Добавить адрес

ip addr add 192.168.0.254/24 dev ens1
ip addr add 192.168.0.254/24 dev ens2

где ensX - название интерфейса, которое можно посмотреть с помощью ip a.

Удалить адрес

ip addr del 192.168.0.254/24 dev ens1

После перезагрузки адреса сбросятся.

ifupdown

auto ens1
iface ens1 inet static
    address 192.168.0.254/24

auto ens2
iface ens2 inet static
    address 192.168.1.254/24

Применить настройки ifup ensX (или сначала ifdown ensX). Другой вариант - systemctl restart networking.

NetworkManager

Данный вариант часто можно встретить на linux с GUI, где адрес клиента часто меняется.

  • nmtui - графическая утилита
  • nmcli - консольная утилита с псевдографическим интерфейсом

См. документацию

systemd-networkd

Данный вариант может использоваться, если адреса не изменяются на интерфейсах.

Требует редактирование нескольких файлов. Это не сложно, но менее очевидно без знаний документации.

См. документацию

Проверка настроек

С помощью ping можно проверить доступность устройств, находящихся в разных сетях.

🧠 Самостоятельная работа

Настроить следующую схему:

flowchart BT
    Net1{{192.168.x.0/24}}
    Net2{{192.168.x+1.0/24}}
    Net3{{192.168.x+2.0/24}}

    PC1 o--o Net1 o--o R
    PC2 o--o Net1

    PC3 o--o Net2 o--o R
    PC4 o--o Net2

    PC5 o--o Net3 o--o R
    PC6 o--o Net3

🤔 Контрольные вопросы

  1. Зачем нужен маршрутизатор?
  2. Зачем нужен шлюз в сети?
  3. Можно ли задать на разных интерфейсах маршрутизатора адреса из одной сети?