Конфигурация Debian 10 в качестве маршрутизатора для частной сети к частной сети

Вопрос или проблема

В настоящее время я пытаюсь настроить систему Debian 10 в роли маршрутизатора между двумя частными сетями.

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

Сеть 192.168.2.X <-> Маршрутизатор Debian 10 <-> Сеть 192.168.1.X

  • Трафик в сети 192.168.1.X приходит через интерфейс wlan0
  • Трафик в сети 192.168.2.X приходит через интерфейс eth0

«Маршрутизатор Debian 10», также известный как «Маршрутизатор», не следует путать с «Маршрутизатором провайдера», который является устройством, предоставленным моим интернет-провайдером и маршрутизирует трафик в более широкий интернет

Устройства, подключенные к 192.168.1.X

  • Маршрутизатор провайдера: 192.168.1.254
  • Другие: динамические / зарезервированные статические IP-адреса

Устройства, подключенные к 192.168.2.X

  • Маршрутизатор Debian 10 подключен непосредственно к свитчу, который затем подключен к…
  • Еще одна система Debian 10 с установленным PiHole (DNS) и включенным DHCP-сервером
  • Другие системы с динамически назначенными IP-адресами

Статус

  • IP-адрес маршрутизатора в сети 192.168.1.X назначается статически маршрутизатором провайдера (он получает ожидаемый адрес)
  • IP-адрес маршрутизатора в сети 192.168.2.X назначается статически системой PiHole, и он получает ожидаемый адрес
  • cat /proc/sys/net/ipv4/ip_forward возвращает 1 (Маршрутизатор) (это установлено в /etc/sysctl.conf)
  • Системы, подключенные к сети 192.168.2.X, получают IP-адреса правильно от PiHole

Что касается IP-адресов, все выглядит нормально. Однако я не могу подключиться к интернету с устройства в сети 192.168.2.X. traceroute не предоставляет никакой полезной информации для диагностики (просто много звездочек “*******“).

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

Я ожидаю добавить еще информации, когда буду пробовать новые подходы, однако мне придется отключить интернет-соединение, чтобы снова подключиться к сети 192.168.2.X для продолжения расследования.

Вот вывод ip route (запущенный на маршрутизаторе) – это не то, с чем я особенно знаком, поэтому не уверен, что это ожидаемо.

default via 192.168.2.1 dev eth0 proto dhcp src 192.168.2.1 metric 202 
default via 192.168.1.254 dev wlan0 proto dhcp src 192.168.1.2 metric 303 
192.168.1.0/24 dev wlan0 proto dhcp scope link src 192.168.1.2 metric 303 
192.168.2.0/24 dev eth0 proto dhcp scope link src 192.168.2.1 metric 202 

Вывод ip route (запущенный на системе, подключенной к сети 192.168.2.X, НИ В КОЕМ СЛУЧАЕ не маршрутизатор) выглядит очень странно.

default via 192.168.1.254 dev enp3s0f2 proto static metric 100 
default via 192.168.1.254 dev wlp4s0 proto dhcp metric 600 
169.254.0.0/16 dev enp3s0f2 scope link metric 1000 
192.168.1.0/24 dev wlp4s0 proto kernel scope link src 192.168.1.30 metric 600 
192.168.1.254 dev enp3s0f2 proto static scope link metric 100 
192.168.2.0/24 dev enp3s0f2 proto kernel scope link src 192.168.2.11 metric 100 

Два из этих записей относятся к Wi-Fi-соединению, которое должно быть в конечном итоге отключено.

default via 192.168.1.254 dev wlp4s0 proto dhcp metric 600 

192.168.1.0/24 dev wlp4s0 proto kernel scope link src 192.168.1.30 metric 600 

Это оставляет следующие записи

default via 192.168.1.254 dev enp3s0f2 proto static metric 100 
169.254.0.0/16 dev enp3s0f2 scope link metric 1000 
192.168.1.254 dev enp3s0f2 proto static scope link metric 100 
192.168.2.0/24 dev enp3s0f2 proto kernel scope link src 192.168.2.11 metric 100 

Я не понимаю, почему есть 4 записи вместо 2, и почему 169.254.0.0/16 присутствует – у меня нет представления, откуда появился этот IP.

Цель

Причина создания такой сети в том, чтобы я мог установить DNS-сервер маршрутизатора для моих личных устройств, чтобы они указывали на устройство PiHole. Это нужно для изоляции этого шага DNS от других пользователей сети. PiHole иногда имеет не преднамеренные эффекты и нарушает определенные ссылки, например, рекламу товаров, предоставляемых сервисами Google.

Диагностика

Из этого вопроса я узнал, что локальные адреса связи – это самоназначенные IP, используемые для связи в сети, где сервер DHCP отсутствует для назначения IP.

Это важно, из-за таблицы маршрутизации, о которой я говорил ранее.

Внесенные изменения:

  • Удален маршрут по умолчанию / IP шлюза из конфигурации Ethernet

Результат:

  • Это позволило мне подключиться к более широкому интернету (по Wi-Fi), одновременно внося изменения в устройства, подключенные к моей локальной Ethernet-сети через свитч.

Вот диаграмма, как все в настоящее время подключено: (На этом этапе я меняю обозначение, обновлю вышеуказанную диаграмму.)

[A] <- eth -> [switch] <- eth -> [Маршрутизатор] <- wifi -> [Маршрутизатор провайдера]
 ^                     <- eth -> [DNS/DHCP сервер]        ^
 +---- wifi (без маршрута) ----------------------------+
  • [A] – это настольный компьютер, который я использую для администрирования всех устройств.
  • eth слева – сеть 192.168.2.X
  • wifi справа – сеть 192.168.1.X
  • wifi слева – сеть 192.168.1.X, но маршрута нет

Вот содержимое таблицы маршрутизации: ip route

default via 192.168.1.254 dev wlp4s0 proto dhcp metric 600 
169.254.0.0/16 dev enp3s0f2 scope link metric 1000 
192.168.1.0/24 dev wlp4s0 proto kernel scope link src 192.168.1.30 metric 600 
192.168.2.0/24 dev enp3s0f2 proto kernel scope link src 192.168.2.11 metric 100

Вот моя таблица маршрутизации, когда соединение eth отключено:

default via 192.168.1.254 dev wlp4s0 proto dhcp metric 600 
192.168.1.0/24 dev wlp4s0 proto kernel scope link src 192.168.1.30 metric 600

Это указывает на то, что два IP-адреса маршрутизируемы через Ethernet NIC. 169.254.0.0/16 [неправильный=192.168.0.0/16] и 192.168.2.0. Последний – это IP-адрес устройства, подключенного напрямую через свитч. [неправильный]Первый, предположительно, – любое устройство с адресом в сети 192.168.2.X.[неправильный] Первый – это самоназначенный IP, так как не был замечен сервер DHCP в этой сети.

Если я пытаюсь подключиться к eth с настройками DHCP (все авто), подключение не удается. [что насчет авто, кроме маршрута?]

Можно подключиться по ssh к 192.168.1.30, эта ссылка идет через Wi-Fi. Этот IP-адрес можно увидеть, потому что оба устройства подключены к одной и той же SSID. (Я думаю.) Эти IP-адреса были назначены моим маршрутизатором провайдера.

[A] <- wifi -> [B]

  • A: 192.168.1.0/24
  • B: 192.168.1.30/24

Я могу ssh к этому устройству. [редактирование: нет, не могу из-за проблемы с паролем – однако, возможно, это не на самом деле проблема с паролем – я знаю, какой пароль, он просто не работает]

Несколько связано с приведенной выше точкой.

Итак, это полезная вещь, которую стоит запомнить: всякий раз, когда возникают проблемы на уровне IP-адресов, можно подключиться по ssh к устройству, используя локальный адрес связи, который находится в сети 169.254.X.X/16

Я считаю, что проблему удалось решить, вот что я сделал:

  • в /etc/dhcpcd.conf
interface eth0
    static ip_address=192.168.2.254/24

(удалил routers)

  • в /etc/network/interfaces

установлено по умолчанию (файл пустой, кроме единственной строки source-directory /etc/network/interfaces.d)

ip route
default via 192.168.1.254 dev wlan0 proto dhcp src 192.168.1.150 metric 303 
192.168.1.0/24 dev wlan0 proto dhcp scope link src 192.168.1.150 metric 303 
192.168.2.0/24 dev eth0 proto dhcp scope link src 192.168.2.254 metric 202 

В настоящее время еще не полностью протестировано, я все еще работаю над этим, но ip route теперь показывает то, что я ожидал.

(Обратите внимание, что я изменил некоторые назначения IP)

Ответ или решение

Для настройки маршрутизатора на базе Debian 10 между двумя частными сетями (192.168.1.X и 192.168.2.X) необходимо выполнить следующие шаги. Судя по вашей информации, вы уже сделали некоторые настройки, но есть ещё несколько аспектов, которые стоит учесть для успешного маршрутизирования и обеспечения доступа к интернету для устройств в сети 192.168.2.X.

1. Подготовка конфигурации сети

Убедитесь, что ваши сетевые интерфейсы корректно настроены. Вы уже упомянули, что интерфейс wlan0 подключен к сети 192.168.1.X, а eth0 к сети 192.168.2.X. Давайте убедимся, что настройки сделаны правильно.

В файле /etc/dhcpcd.conf:

Этот файл обычно используется для настройки DHCP и статических IP адресов. Убедитесь, что настройки для eth0 выглядят следующим образом:

interface eth0
    static ip_address=192.168.2.254/24
    # Убедитесь, что вы не указываете здесь `routers`, это может вызвать проблемы с маршрутизацией.

В файле /etc/network/interfaces:

Если вы используете dhcpcd, убедитесь, что этот файл не содержит конфликтующих настроек. Это может выглядеть так:

source-directory /etc/network/interfaces.d

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

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

ip route

Вы должны видеть маршруты, которые выглядят примерно так:

default via 192.168.1.254 dev wlan0
192.168.1.0/24 dev wlan0
192.168.2.0/24 dev eth0

3. Включение пересылки IP

Вы уже сказали, что проверили, что IP-пересылка включена:

cat /proc/sys/net/ipv4/ip_forward

Этот параметр должен быть равен 1. Если он не сохраняется после перезагрузки, добавьте следующую строку в файл /etc/sysctl.conf:

net.ipv4.ip_forward=1

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

sudo sysctl -p

4. Настройки NAT (если необходимо)

Если вы хотите, чтобы устройства из сети 192.168.2.X имели доступ к интернету через маршрутизатор, вам нужно будет настроить NAT (преобразование адресов). Это можно сделать с помощью iptables. Выполните следующие команды:

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Чтобы эти настройки сохранялись при перезагрузке, установите пакет iptables-persistent:

sudo apt-get install iptables-persistent

Следуйте инструкциям на экране для сохранения правил.

5. Настройки на устройствах в сети 192.168.2.X

Убедитесь, что устройства в сети 192.168.2.X настроены правильно. Их шлюз по умолчанию должен указывать на IP-адрес маршрутизатора 192.168.2.254 (или whatever the Router IP). Если вы используете PiHole как DHCP-сервер, убедитесь, что DHCP на PiHole настроен на раздачу необходимых параметров.

6. Проверка соединений и диагностика

Проверьте прямое подключение к интернету из сети 192.168.2.X:

  1. Попробуйте выполнить ping с устройства в 192.168.2.X на адрес, например, 8.8.8.8 (Google DNS).
  2. Выполните ping на адрес маршрутизатора 192.168.2.254.
  3. Убедитесь, что можно выполнить ping на устройства в сети 192.168.1.X, включая ваш ISP маршрутизатор 192.168.1.254.

Заключение

Следуя этим шагам, вы должны быть в состоянии успешно настроить ваш Debian 10 как маршрутизатор между двумя частными сетями, а также обеспечить доступ к интернету для устройств, находящихся в сети 192.168.2.X. Если у вас будут возникать дополнительные проблемы, обратите внимание на ваши правила iptables и проверку маршрутов на каждом устройстве в сети.

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

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

Капча загружается...