LINUX.ORG.RU
ФорумAdmin

Нестандартная маршрутизация «роутер => USB модем»

 , ,


0

1

В связи с тем, что провайдер как-то «палит» модем, когда он в роутере, отключил ISP соединение вообще, а использую компонент прокси, связанный с SBC в LAN, в который вставлен модем. Там debian bookworm, поднят NAT, всё в принципе работает, как хотелось.

Проблема в шлюзе по умолчанию. Когда (я так думаю) происходит обновление DHCP, обновляется маршрутизация, и снова приоритетом становится шлюз до роутера через eth0. Я его руками удалил вначале, чтобы приоритетом стал шлюз до модема. Снова удаляю, и снова всё работает.

Можно, конечно, отключить DHCP на роутере и включить на SBC с модемом, но не хотелось бы. Можно как-то прописать шлюзы с приоритетами, чтобы DHCP «не портил» это?

Если я в параметрах DHCP на роутере указываю шлюзом по умолчанию назначаю SBC, то соединение вообще теряется. Что-то неправильно делаю, но не пойму, что.

Ответ на: комментарий от PeleWin

Это-то понятно. Вопрос был, не как добавить, а наоборот, как сделать, чтобы при лизинге DHCP шлюз НЕ добавлялся. Поскольку шлюзом д.б. usb0, а DHCP приходит с eth0.

Нашел решение, и оно: как всегда простое: Сначала смотрим, как названы соединения в NM:

nmcli connection show

а потом выключаем назначение шлюзом по умолчанию для нужного нам соединения:

sudo nmcli connection modify "connection_name" ipv4.never-default yes

Проверил. После перезагрузки маршрут на usb0 остается в приоритете.

DeadlineX
() автор топика

В связи с тем, что провайдер как-то «палит» модем, когда он в роутере

А конкретнее? Провайдер запрещает сувать модем в роутер и отключает ему инет когда замечает?

Когда (я так думаю) происходит обновление DHCP, обновляется маршрутизация, и снова приоритетом становится шлюз до роутера через eth0.

Я еле понят что ты имел ввиду. Сначала думал что речь про роутинг самого роутера и не мог понять что за eth0 и dhcp. Лучше б ты указал там что речь идёт про роутинг клиентов роутера.

Можно, конечно, отключить DHCP на роутере и включить на SBC с модемом, но не хотелось бы. Можно как-то прописать шлюзы с приоритетами, чтобы DHCP «не портил» это?

Тебе вообще не нужен роутер, поставь dhcp-сервер на комп с модемом, а локалку соедини свитчом. Почему «не хотелось бы» то?

Если я в параметрах DHCP на роутере указываю шлюзом по умолчанию назначаю SBC, то соединение вообще теряется. Что-то неправильно делаю, но не пойму, что.

Что значит «теряется»? Всё должно работать, укажи подробнее как выглядит это «потерянное соединение».

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от DeadlineX

Нашел решение, и оно: как всегда простое

Это придётся на каждом компе же прописывать, чего тут простого? А когда изменится что-то опять на каждом компе менять.

firkax ★★★★★
()

Сделай статику на сетевом интерфейсе, который создаёт модем.

Добавь шлюз по умолчанию через модем в отдельную таблицу маршрутизации и настрой правило маршрутизации с предварительным проходом через эту таблицу маршрутизации.

echo "200     modem" >> /etc/iproute2/rt_tables
ip route add default via <IP_модем> table modem
ip rule add from all lookup modem priority 200
kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от firkax

А конкретнее? Провайдер запрещает сувать модем в роутер и отключает ему инет когда замечает?

Конкретно: провайдер садит модем на десятую сетку и там инет отрубается насовсем, когда наступает время БС. Следовательно, никакие методы обхода БС не работают, связи просто нет. Если же сделать так, как я сделал, то модем не палится, он, как и телефон с симкой от того же опсоса, садится на сетку 100.х.х.х, и белый список есть, ну и всё, дальше уже можно работать.

Тебе вообще не нужен роутер

Я это понимаю. И, вероятно, так и будет. Но пока я экспериментировал на домашнем роутере, мне совершенно не хотелось там рушить всё, переводя его в режим точки доступа. Кроме того, на роутере работает прокси, что избавляет от необходимости настраивать прокси-подключение на всех клиентах ЛС. Конечно, можно поставить и прокси туда же, где модем. Но я совершенно не в курсе, как чего настроить, чтобы клиенты ЛС стучались в шлюз по умолчанию, а попадали на вход xray. Вроде это называется «прозрачный прокси», и именно он и работает на кинетике. Кроме того, непонятно, а не разгружает ли такая схема ЦПУ железки с модемом, поскольку часть же работы взял на себя роутер? Про скорость тут говорить не приходится, поскольку на модеме скорость весьма ограничена же. Поэтому чисто разгрузить ЦПУ - уже вперед. Ну и LAN хаб тоже не лишний, не говоря про WiFi. Не вижу смысла пока совсем выбрасывать роутер, хоть он и старый.

Но, если можете посоветовать решение с прокси под ARM Debian, который бы поддерживал tcp/udp, то буду рад любому совету.

Что значит «теряется»? Всё должно работать, укажи подробнее как выглядит это «потерянное соединение».

Я ж там выше описал. При перезагрузке default шлюз на роутер по eth0 становится выше default шлюза на usb0, соответственно никакие пинги никуда не идут, ведь роутер не имеет интернет подключений. Если запретить вообще давать eth0 шлюз по умолчанию, остается один шлюз на usb0, и все работает.

Я сейчас уже прочитал про dhclient, что это все можно там устроить через пост-хуки, но переделывать уже неохота.

DeadlineX
() автор топика
Ответ на: комментарий от firkax

Это придётся на каждом компе же прописывать

Нет. Я ничего не прописывал. На роутере работает прокси, который направлен на этого клиента ЛС, на самом этом клиенте поднят NAT, поэтому все как и всегда идут на роутер, а он уже проксирует. Проблема была на самом клиенте с модемом.

DeadlineX
() автор топика
Ответ на: комментарий от kostik87

Сделай статику на сетевом интерфейсе, который создаёт модем

Статический маршрут? Я, честно, не силен в iptables… И собственно модем со своим шлюзом появляется при загрузке без доп. усилий. Просто dhclient переписывает шлюз по умолчанию, когда обновляет лизинг. А он (шлюз) направлен на dhcp сервер, который через eth0. В этом проблема была, как я понимаю.

DeadlineX
() автор топика
Ответ на: комментарий от DeadlineX

Я про iptables ничего и не говорил. Не обращай внимания на мой предыдущий комментарий. Твоих знаний и понимания в работе сети крайне мало.

Ты и так молодец, что сделал.

kostik87 ★★★★★
()