К содержанию
АльфаКомпВсё о компьютерах — каждый день
СетиИнструкция5 минут чтения

Как объединить две сети через маршрутизатор на базе Linux

Создание собственного программного шлюза позволяет объединить локальные сегменты сети или раздать интернет с гибким контролем трафика. Разбираем пошаговую настройку маршрутизатора на базе Linux с распределением интерфейсов и службой DHCP.

Сетевые кабели, подключенные к Ethernet-портам компьютера-шлюза

Фото: Pixabay / Pexels

Содержание
  1. Что понадобится для работы
  2. Шаг 1. Определение и именование сетевых интерфейсов
  3. Шаг 2. Настройка IP-адресации через netctl
  4. Альтернативный вариант: настройка через systemd-networkd
  5. Шаг 3. Подключение PPPoE или ADSL (при необходимости)
  6. Шаг 4. Установка и настройка DHCP и DNS через dnsmasq
  7. Если не получилось

Что понадобится для работы

Создание отдельного программного шлюза позволяет связать внешнюю сеть и домашний сегмент либо соединить две разные локальные подсети с полным контролем над фильтрацией пакетов.

Перед началом настройки подготовьте необходимое оборудование и софт:

  • Компьютер под управлением Arch Linux с установленной базовой системой.
  • Как минимум два физических сетевых интерфейса: один адаптер для внешней сети (или вышестоящего роутера), второй — для внутренней локальной сети. В качестве альтернативы допустимо использовать один адаптер в схеме «router-on-a-stick», но для этого потребуется управляемый коммутатор с поддержкой VLAN.
  • Сетевой кабель (витая пара UTP), а также коммутатор или хаб для подключения клиентских устройств к внутреннему порту.
  • Пакеты управления сетью (netctl либо встроенный systemd-networkd) и DNS/DHCP-сервер (dnsmasq).

Если вам не требуется собирать отдельный шлюз на ПК, а нужно просто расширить покрытие беспроводной зоны, проще узнать, как настроить старый роутер в качестве повторителя Wi-Fi. Для полного контроля маршрутизации перейдем к конфигурации адаптеров.

Шаг 1. Определение и именование сетевых интерфейсов

Служба systemd по умолчанию присваивает сетевым картам постоянные предсказуемые имена (например, enp2s0, enp1s1), которые не меняются между перезагрузками. Для удобства администрирования их можно использовать как есть или переименовать в соответствии с их назначением:

  • extern0 — внешний интерфейс, направленный в сторону провайдера, модема или первой сети (WAN);
  • intern0 — внутренний интерфейс, к которому подключается локальная сеть (LAN).
  1. Проверьте текущие имена сетевых карт через команду ip link.
  2. Определите, какой порт физически подключен к аплинку, а какой смотрит во внутренний сегмент.

Шаг 2. Настройка IP-адресации через netctl

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

  1. Создайте профиль для внешнего порта в файле /etc/netctl/extern0-profile:
Description='Public Interface.'
Interface=extern0
Connection=ethernet
IP=dhcp
  1. Создайте профиль для внутреннего интерфейса в файле /etc/netctl/intern0-profile:
Description='Private Interface'
Interface=intern0
Connection=ethernet
IP=static
Address=('10.0.0.1/24')
  1. Включите автозапуск созданных профилей:
netctl enable extern0-profile
netctl enable intern0-profile

Альтернативный вариант: настройка через systemd-networkd

Если вы предпочитаете штатные средства systemd без использования netctl, примените демон systemd-networkd:

  1. Настройте получение адреса по DHCP-клиенту для внешнего интерфейса (extern0).
  2. Задайте статический IP-адрес (например, 10.0.0.1/24) для внутреннего интерфейса (intern0).
  3. Примените внесенные изменения командой:
networkctl reload

Шаг 3. Подключение PPPoE или ADSL (при необходимости)

Если интернет поступает через ADSL-модем или прямое подключение PPPoE, маршрутизацию берет на себя пакет ppp.

  1. Переведите ADSL-модем в режим моста (RFC1483 или half-bridge), иначе модем будет выполнять функции второго роутера, вызывая двойную трансляцию адресов.
  2. Установите пакет ppp.
  3. Скопируйте шаблон профиля для редактирования:
cp /etc/netctl/examples/pppoe /etc/netctl/
  1. Откройте скопированный файл и укажите интерфейс подключения к модему (обычно extern0), а также учетные данные провайдера. При использовании PPPoE создавать отдельный профиль extern0-profile с DHCP не требуется, так как соединение будет работать через виртуальный интерфейс ppp0.

Шаг 4. Установка и настройка DHCP и DNS через dnsmasq

Клиентские устройства в подсети должны автоматически получать сетевые параметры и адреса DNS-серверов. Для этой задачи в Linux доступны разные решения: устаревший dhcpd (замененный проектом Kea), встроенный сервер systemd-networkd, форк pi-hole-ftl или легковесный dnsmasq, совмещающий функции DHCP и DNS.

  1. Установите пакет dnsmasq с помощью пакетного менеджера.
  2. Откройте конфигурационный файл /etc/dnsmasq.conf.
  3. Ограничьте прослушивание входящих запросов исключительно внутренним интерфейсом, чтобы запросы не поступали снаружи:
interface=intern0
  1. Укажите пул выдаваемых IP-адресов и время аренды в том же файле конфигурации, после чего запустите и включите службу dnsmasq.

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

Если не получилось

  • Клиенты не получают IP-адрес автоматически. Убедитесь, что служба dnsmasq запущена и привязана именно к внутреннему интерфейсу (intern0). Проверьте, что на сетевой карте назначен статический IP-адрес с корректной маской подсети.
  • Интерфейс отключается при выдергивании провода. При использовании netctl в профиль локальной сети обязательно добавьте директиву SkipNoCarrier=yes, иначе интерфейс перейдет в неактивное состояние.
  • Нет доступа во внешнюю сеть через модем. Проверьте режим работы ADSL-устройства. Если модем не переведен в режим моста (bridge), он продолжает функционировать как шлюз по умолчанию, блокируя авторизацию PPPoE на программном роутере.
  • Имена интерфейсов изменились после обновления. Если вы опираетесь на предсказуемые имена systemd (enp2s0), сверьте вывод ip link: после добавления новых карт расширения нумерация шины PCIe может измениться.

Вопросы и ответы

Почему нельзя использовать один сетевой порт без коммутатора?

Классический шлюз физически разделяет входящий и исходящий трафик между двумя сегментами. С одним портом объединение сетей возможно только по схеме «router-on-a-stick» при наличии управляемого коммутатора с поддержкой VLAN.

Чем заменить устаревший сервер dhcpd?

Разработка ISC DHCPd прекращена в 2022 году. В современных дистрибутивах Linux вместо него применяют Kea, встроенный DHCP-сервер systemd-networkd или dnsmasq.

Источники

Материал подготовлен автоматически на основе открытых источников. Факты автоматически сверены с публикациями из списка ниже. Как мы работаем

  1. wiki.archlinux.org:Router - ArchWiki
Поделиться:TelegramВКонтакте

Опубликовано 9 октября 2026

Рубрики

↑↓ — выбор, Enter — открыть, Esc — закрыть