Перейти к содержанию

Вопрос

Опубликовано

Добрый день. Возникла необходимость объединить на уровне L2 удаленные сети посредством EoIP. Туннель поднял, но есть проблема в том что в каждой удаленной сети есть свой сервер DHCP, как запретить хождение DHCP в EoIP? Как правильно настроить межсетевой экран?

Рекомендуемые сообщения

  • 2
Опубликовано (изменено)

Разобрался, все заработало. Всем спасибо!

Напомню, с чего все начиналось - Объединил две сети через публичную сеть Интернет с помощью туннеля EoIP. 2 сети после объединения имеют одну общую сеть 192.168.0.0/23 (все сетевые устройства видят друг друга на канальном уровне - доступны все локальные ресурсы, даже LG Smart TV видит и воспроизводит DLNA и xupnpd-IPTV, которые подняты на соседнем маршрутизаторе). В сети 2 маршрутизатора, каждый из от которых является шлюзом выхода в Интернет и DHCP-сервером (каждый DHCP раздает часть общего пула IP, т.е. маршрутизатор 1 - раздает 192.168.0.1-192.168.0.254 255.255.254.0, а маршрутизатор 2 - 192.168.1.1-192.168.1.254 255.255.254.0). Любой компьютер в сети получая IP адрес посылает широковещательный запрос, и принимает настройки того DHCP который первый ответит и пришлет конфигурацию IP - в связи с этим возникает проблема, что компьютеры подключенные к одному маршрутизатору получают настройки другого и в интернет выходят через соседний шлюз (интернет трафик начинает бегать через туннель EoIP). Для того чтобы не происходило данной ситуации устанавливаем и настраиваем ebtables. Ниже написал инструкцию, может кому пригодится.:)

Инструкция для запрета DHCP в EoIP с помощью пакета OPKG Entware - ebtables:
1) Устанавливаем из репозитория пакет ebtables:
~ # opkg install ebtables
2) Устанавливаем модули ядра:
~ # insmod /lib/modules/3.4.113/ebtables.ko
~ # insmod /lib/modules/3.4.113/ebtable_filter.ko
~ # insmod /lib/modules/3.4.113/ebt_ip.ko
P.S. Список модулей ядра можно посмотреть командой:
find /lib/modules
3) Создаем правила:
~ # ebtables -A INPUT -i EoIP0 -p ipv4 --ip-proto udp --ip-sport 67:68 -j DROP
~ # ebtables -A INPUT -i EoIP0 -p ipv4 --ip-proto udp --ip-sport 67:68 -j DROP
~ # ebtables -A FORWARD -i EoIP0 -p ipv4 --ip-proto udp --ip-dport 67:68 -j DROP
~ # ebtables -A FORWARD -i EoIP0 -p ipv4 --ip-proto udp --ip-sport 67:68 -j DROP

Изменено пользователем Leks
  • 1
Опубликовано (изменено)

Сам же и отвечу.

1. После установки ebtables вводим ifconfig и смотрим точное название EOIP интерфейса. У меня он был eoip0 маленькими буквами. Насколько я помню это регистрозависимые команды.

2. в /opt/etc/init.d копируем любой исполняемый скрипт (файл со звёздочкой) туда-же в папку с именем S88eoip

делаем его содержимое таким:

#!/bin/sh

insmod /lib/modules/3.4.113/ebtables.ko
insmod /lib/modules/3.4.113/ebtable_filter.ko
insmod /lib/modules/3.4.113/ebt_ip.ko
insmod /lib/modules/3.4.113/ebtable_nat.ko
ebtables -A INPUT -i eoip0 -p ipv4 --ip-proto udp --ip-sport 67:68 -j DROP
ebtables -A INPUT -i eoip0 -p ipv4 --ip-proto udp --ip-dport 67:68 -j DROP
ebtables -A FORWARD -i eoip0 -p ipv4 --ip-proto udp --ip-sport 67:68 -j DROP
ebtables -A FORWARD -i eoip0 -p ipv4 --ip-proto udp --ip-dport 67:68 -j DROP

3. Единоразово стартуем /opt/etc/init.d/S88eoip start

Наслаждаемся и для проверки каким-нибудь телефоном включаем/выключаем вайфай несколько раз.

Такой командой ebtables -L --Lc 

Можно проверить работоспособность - вместо нулей в некоторых строках будут нарастающие числа.

Зачем я копировал а не создавал новый:

мне было лень писать команду чтобы сделать скрипт исполняемым

 

Изменено пользователем karimovrt
  • 0
Опубликовано (изменено)

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

Сеть используется / 23. Первый роутер по протоколу dhcp раздает 192.168.0.x / 23, второй роутер 192.168.1.x / 23. Клиент взаимодействует между собой на уровне l2. Т.к. DHCP работает в EoIP, устройство может получить адрес из соседнего сегмента.

Изменено пользователем Leks
  • 0
Опубликовано
19 минут назад, Leks сказал:

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

Сеть используется / 23. Первый роутер по протоколу dhcp раздает 192.168.0.x / 23, второй роутер 192.168.1.x / 23. Клиент взаимодействует между собой на уровне l2. Т.к. DHCP работает в EoIP, устройство может получить адрес из соседнего сегмента.

ebtables из opkg по идее должен справиться с задачей

  • 0
Опубликовано
1 минуту назад, Leks сказал:

Не нашел в Entware ebtables. Есть ли возможность ее добавить в пакет?

BusyBox v1.30.1 () built-in shell (ash)

~ # opkg list ebtables
ebtables - 2018-06-27-48cff25d-1a - The ebtables program is a filtering tool for a bridging firewall. The
 filtering is focussed on the Link Layer Ethernet frame fields. Apart
 from filtering, it also gives the ability to alter the Ethernet MAC
 addresses and implement a brouter.

 

  • 0
Опубликовано
Поддержка открытых пакетов
Обязательный
 
Модули ядра для поддержки файловых систем
Установлен
 
Модули ядра для поддержки USB-видео
Установлен
 
Модули ядра для поддержки USB-аудио
Установлен
 
Модули ядра подсистемы Netfilter
Обязательный
 
Модули ядра подсистемы Traffic Control
Установлен
Модули ядра подсистемы USB over IP
Установлен
Пакет расширения Xtables-addons для Netfilter
Установлен
  • 0
Опубликовано

~ # insmod /lib/modules/3.4.113/ebtable_filter.ko
~ # insmod /lib/modules/3.4.113/ebtable_nat.ko
~ # insmod /lib/modules/3.4.113/ebtable_broute.ko
~ # insmod /lib/modules/3.4.113/ebtables.ko
Я так понимаю только вот эти?

  • 0
Опубликовано

ПРОБЛЕМА - после перезагрузки маршрутизатора слетают модули ядра и правила ebtables. Приходится ручками делать все заново.

Что можно сделать?

  • 0
Опубликовано
6 минут назад, Leks сказал:

ПРОБЛЕМА - после перезагрузки маршрутизатора слетают модули ядра и правила ebtables. Приходится ручками делать все заново.

Что можно сделать?

Добавлять в автозагрузку

https://github.com/ndmsystems/packages/wiki/Opkg-Component

  • 0
Опубликовано
В 17.07.2019 в 10:54, Le ecureuil сказал:

У нас не включена опция netfilter в bridge для повышения скорости, потому блокировка 67/68 UDP не поможет. Скорее всего только ebtables в opkg.

А если создать новый сегмент сети, в него забриджевать eoip и пускать dhcp-запросы только в него.

  • 0
Опубликовано
В 27.07.2019 в 10:01, stefbarinov@mail.ru сказал:

А если создать новый сегмент сети, в него забриджевать eoip и пускать dhcp-запросы только в него.

Можно, но это не всегда возможно. Плюс в таком случае обычно вообще проще использовать L3-туннель, а не L2.

  • 0
Опубликовано (изменено)
В 24.07.2019 в 18:27, Leks сказал:

Разобрался, все заработало. Всем спасибо!

Спасибо что разобрались в том, что меня давно интересовало) Есть вопросик:

"после перезагрузки маршрутизатора слетают модули ядра и правила ebtables" с этим разобрались? Можете написать инструкцию про решению данного вопроса через "добавление в автозагрузку"?)

Изменено пользователем karimovrt
  • 0
Опубликовано
10 часов назад, karimovrt сказал:

делаем его содержимое таким:

Справедливо для 2.15 (более ранние версии уже не рассматриваем), но для 3.х путь к ядерным модулям другой. Унифицируем:

#!/bin/sh

MOD="/lib/modules/`uname -r`" # путь до модулей

insmod $MOD/ebtables.ko
insmod $MOD/ebtable_filter.ko
insmod $MOD/ebt_ip.ko
insmod $MOD/ebtable_nat.ko
... # <= ниже, остальной код
BusyBox v1.30.1 () built-in shell (ash)

~ # lsmod | grep ebt

~ # ls -1 /lib/modules/4.9-ndm-2/ebt*
/lib/modules/4.9-ndm-2/ebt_802_3.ko
/lib/modules/4.9-ndm-2/ebt_among.ko
/lib/modules/4.9-ndm-2/ebt_arp.ko
...
/lib/modules/4.9-ndm-2/ebtable_filter.ko
/lib/modules/4.9-ndm-2/ebtable_nat.ko
/lib/modules/4.9-ndm-2/ebtables.ko

~ # /opt/etc/init.d/S88eoip start

~ # lsmod | grep ebt
ebtable_broute           848  0 
ebtable_nat              976  0 
ebt_ip                  1360  0 
ebtable_filter           976  0 
ebtables               16917  3 ebtable_filter,ebtable_nat,ebtable_broute
~ # 

 

  • 0
Опубликовано

Наверное проще поставить "kmod"

# opkg list | grep kmod
kmod - 20-1 - Linux kernel module handling kmod is a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases.

Будет запускаться "S00kmod_config"

А далее просто набрать например в качестве примера интерфейс ra4 и получить что надо

/ # lsmod | grep ebt
/ # ebtables -A INPUT -i ra4 -p ipv4 --ip-proto udp --ip-sport 67:68 -j DROP
/ # lsmod | grep ebt
ebt_ip                  1360  1
ebtable_filter           976  1
ebtables               16917  1 ebtable_filter
/ # 

без написания строчек для запуска " *.ko "

  • 0
Опубликовано
18 минут назад, vasek00 сказал:

Наверное проще поставить "kmod"

~ # opkg list | grep '^kmod'
kmod - 20-1 - Linux kernel module handling kmod is a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases.
kmod_ndms - 24-5 - Linux kernel module handling kmod is a set of tools to handle common tasks with Linux kernel modules like insert, remove, list, check properties, resolve dependencies and aliases.
~ #

'kmod_ndms' "заточен" под Keenetic`и, но тянет по зависимостям 'dvb-firmware'

  • 0
Опубликовано
4 часа назад, TheBB сказал:

'kmod_ndms' "заточен" под Keenetic`и, но тянет по зависимостям 'dvb-firmware'

Есть такое дело, но на работу как то не влияет, за искл. одной записи

[I] Aug  5 18:40:46 ndm: Opkg::Manager: /opt/etc/ndm/usb.d/000-kmod_loader.sh: modinfo: ERROR: Module /opt/lib/modules/4.9-ndm-2/kernel/compat.ko not found.

 

  • 0
Опубликовано

Столкнулся с проблемой в работе клиентской сети. Если использовать классическую схему eoip, когда клиенты клиентской сети работают через серверную сеть, то всё хорошо. Но если клиенты клиентской сети работают через свой родной шлюз, то сеть работает нестабильно. Внешне похоже на проблемы с DNS, т.е. браузер становится очень задумчивым и долго думает перед открытием страниц. Прописывание всевозможных DNS не решает проблему. Если сделать "no include EoIP0" и перезагрузить роутер, то всё снова работает хорошо. Такое явление наблюдается как по проводу, так и по wifi. Сначала грешил на ebtables, но и без него картина аналогичная, тем более он вообще установлен на сервере, а проблема в клиентской сети. Пикантность ситуации в том, что подклинивание сети наблюдается только на Винде (7х64), на Андроиде 9 всё хорошо, персональный DNS при этом отключен.

Что может быть причиной такого поведения Винды? Кто-нибудь сталкивался с подобным явлением? Прошивка 2.15.C.5.0-1

  • 0
Опубликовано

Keenetic Omni, прошивка 3.1.4. Не получается, нет модулей (

~ # opkg install ebtables
Installing ebtables (2018-06-27-48cff25d-1a) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/ebtables_2018-06-27-48cff25d-1a_mipsel-3.4.ipk
Configuring ebtables.
~ # lsmod | grep ebt
~ # ls -1 /lib/modules/4.9-ndm-2/ebt*
ls: /lib/modules/4.9-ndm-2/ebt*: No such file or directory
 

  • 0
Опубликовано
2 часа назад, Le ecureuil сказал:

Так нужно opkg-kmod-netfilter поставить же.

Ткните ламера носом пожалуйста. Каким образом? В списке модулей его нет.

 

wp_ss_20190920_0001.png

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.