Jump to content

manson

Forum Members
  • Posts

    10
  • Joined

  • Last visited

Everything posted by manson

  1. Ошибка can't insert возникала (и будет возникать при повторном запуске) на строках с insmod. А ошибка not found возникала на строках ebtables, так как модуль не был установлен.
  2. insmod: can't insert '/lib/modules/4.9-ndm-5/ebtables.ko': File exists Как раз эта "ошибка" показывает, что все нормально - модуль успешно инсталлирован (при запуске или вручную) и второй раз система не хочет его инсталлировать.
  3. > insmod: can't insert '/lib/modules/4.9-ndm-5/ebtables.ko': File exists Такая ошибка должна возникать при повторном запуске Sebt - модуль уже инстралирован при запуске
  4. Такое впечатление, что не встал ebtables. Запустите opkg install ebtables Что говорит?
  5. Сказ о том, как я локальные сети объединял. Имеется 1. Локальная сеть в квартире с Keenetic Viva KN-1910 во главе. 2. Локальная сеть на даче с Keenetic Extra KN-1711 во главе. Цель объединения: 1. Возможность в квартире смотреть ТВ через приемник SML-482HD Base. Подключение должно осуществляться через провайдера на даче. Телевидение фактически бесплатное, но там 300 каналов, почти на всех каналах есть 7-ми дневный архив. В городе таких цен нет… 2. Еще на даче есть приемник-сервер Триколор GS-B527, подключенный к спутнику. Там тоже есть интересные каналы и несколько UHD каналов. Через клиента GS-C593 (GS-591) каналы можно смотреть без дополнительной оплаты. 3. Подключение из города к служебным роутерам провайдера на даче и к маршрутизатору соседа на даче (я беру у него резервный канал через Wi-Fi). 4. Спортивный интерес 😉 Если первый пункт и третий пункт удалось решить с помощью L2TP/IPsec, то приемники Триколор требуют, чтобы они был в одной локальной сети (для трансляции используется Multicast, который не удалось прокинуть между сетями). Ну и спортивный интерес… Такое объединение описано в статье Настройка туннелей IPIP, GRE и EoIP https://help.keenetic.com/hc/ru/articles/115002715029-Настройка-туннелей-IPIP-GRE-и-EoIP. Естественно хотелось, чтобы по умолчанию устройства выходили через свой роутер и IP получали через DHCP, но тут возникает проблема, так как DHCP запросы свободно ходят через канал и устройство может подцепиться к «чужому» роутеру. И так. Глаза бояться, а руки делают (бьют в бубен). Делал на основании форума https://forum.keenetic.com/topic/7031-%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82-dhcp-%D0%B2-eoip/ (далее Форум), но там не очень последовательно и не всегда правильно. 1. Получаем у одного из провайдеров белый IP. Достаточно белого IP на одном из роутеров. Keenetic, на котором будет белый IP, должен быть подключен к провайдеру напрямую, а не через промежуточный роутер от провайдера. В последнем случае подключение тоже возможно, но придется делать публикацию сервера, а не всегда провайдер дает доступ к своему оборудованию. Белый IP может быть на любой из сторон, так что выбираем провайдера с лучшими условиями по подключению и ежемесячной платой. Мне подключение обошлось бесплатно, плачу 150 руб. в месяц. Выдали IP за 5 минут (вот за что я люблю небольших провайдеров!) 2. Делаем общее адресное пространство у маршрутизаторов Устройства должны быть в одной подсети. На Форуме один из авторов сделал «маршрутизатор 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». Я сделал - маршрутизатор 1 - 192.168.Х.1 с маской 255.255.255.0, раздает 99 адресов - маршрутизатор 2 - 192.168.Х.101 с маской 255.255.255.0, раздает 99 адресов - адреса 192.168.Х.201 - 192.168.Х.254 оставляем для статической адресации. В качестве шлюза на устройстве можно вручную прописать либо 192.168.Х.1 либо 192.168.Х.101, в зависимости от кого, в какой сети нужно присутствовать устройству. X – ваше любимое число, которое не пересекается с подсетями провайдера, рабочими подсетями и подсетями соседей 3. Подключаем KeenDNS на обоих маршрутизаторах. Нужен, чтобы добраться до конфигуратора в случае, если канал не работает. Я поставил режим работы = «через облако», так как почему-то иногда доступ на маршрутизаторе с белым IP режим «авто» не всегда переключался в нужный режим. Кроме того, основной провайдер с белым IP может сбойнуть и роутер переключится на резервного провайдера. Терять доступ к Web интерфейсу не приятно… 4. Настаиваем канал. Описано в статье Настройка туннелей IPIP, GRE и EoIP, но в последних версиях это можно делать через Web интерфейс через Интернет – Другие подключения – IP туннели. Ставим компонент «Туннели EoIP» и настраиваем На сервере (где белый IP) На клиенте В поле «Удаленная сторона» прописываем белый IP адрес. ID интерфейса влияет на наименование интерфейса в CLI (оно может отличать от Название). В моем случае это будет EoIP0. Включаем и радуемся объединенной сети. По DHCP устройства переподключаются не сразу, а если переподключаются, то «родной» DHCP сервер отвечает в 90% случаев быстрее. Если подключились и канал быстрый, то устройства могут и не заметить, что они работают через канал через другого провайдера. Но в моем случае радость была недолгой. В какой момент я начал понимать, что не работает Speedtest и некоторые сайт (например, rbc.ru). Причем сайт keenetic.ru работал. Ping до сайтов проходил. Пришлось отключить интерфейсы и перегрузить. На Форуме вычитал, что виной тому MTU. 5. MTU. Оказалось, что интерфейсу EoIP0 нужно было прописать MTU 1500 и после этого только включать в Bridge с домашний интерфейсом. В 3.7.4 это не реализовано. Обещают в 3.9, т. е. не скоро. Проблему можно, наверное, решить через CLI (отключить интерфейс от bridge, прописать MTU и включить снова), но это сложно и не всегда есть доступ к удаленному CLI. Я поступил так. - сохраняем конфигурацию в файл - находим секцию interface EoIP0 и перед up добавляем строчку «ip mtu 1500» - загружаем конфигурацию Это нужно проделать на всех маршрутизаторах. После этого нельзя исправлять настройку интерфейса через Web, иначе все слетит и надо будет повторить процедуру. После исправления MTU запускаем интерфейс и наслаждаемся жизнью. Все прекрасно, но иногда все-таки устройства подключаются не к тому роутеру. Чтобы исправить это, нужно запретить DHCP трафик через канал. Поскольку у нас интерфейсы объединены в бридж, то IP фильтрация не поможет. Нужна фильтрация на 2-м уровне, а это может только ebtables из открытых пакетов… Приступаем к следующей части танцев с бубном (к рукам подключаем ноги). 6. Выбираем маршрутизатор для OPKG. Фильтрацию достаточно сделать на одном из маршрутизаторов. Ставить лучше на флэшку – поэтому нужен маршрутизатор с USB. Видимо надо выбирать более производительный маршрутизатор. 7. Ставим нужные компоненты Keenetic - Протокол IPv6 (нужен зачем-то для Модули ядра подсистемы Netfilter) - Файловая система Ext (чтобы читать флэшку) - Сервер SSH (чтобы подключаться к командной строке OPKG через SSH 222, как все уважаемые люди) - Поддержка открытых пакетов - Модули ядра для поддержки файловых систем - Модули ядра подсистемы Netfilter (как раз там, насколько я понимаю, есть поддержка ebtables) - Модули ядра подсистемы Traffic Control – возможно не нужен - Пакет расширения Xtables-addons для Netfilter – возможно не нужен Возможно какие-то лишние, а может чего-то и забыл😉. 8. Ставим OPKG Подробно описано в «OPKG» https://help.keenetic.com/hc/ru/articles/360000948719-OPKG и в «Установка системы пакетов репозитория Entware на USB-накопитель» https://help.keenetic.com/hc/ru/articles/360021214160. Ставим на USB. Можно поставить на встроенную память, но размера ее может не хватить (у меня инсталляция заняла 61,5МБ) и потом с ней какие-то проблемы. 9. Ставим ebtables. Через BusyBox ставим ebtables opkg install ebtables 9.1 Ставим mc (midnight commander). Через BusyBox ставим MC, если не поставили на предыдущем этапе opkg install mc Потребуется для копирования и редактирования файлов). 10. Проверяем наличие необходимых модулей. В BusyBox пишем find /lib/modules Нас интересуют модули (папка может быть другая) /lib/modules/4.9-ndm-5/ebt_802_3.ko /lib/modules/4.9-ndm-5/ebt_among.ko /lib/modules/4.9-ndm-5/ebt_arp.ko /lib/modules/4.9-ndm-5/ebt_arpreply.ko /lib/modules/4.9-ndm-5/ebt_dnat.ko /lib/modules/4.9-ndm-5/ebt_ip.ko /lib/modules/4.9-ndm-5/ebt_ip6.ko /lib/modules/4.9-ndm-5/ebt_limit.ko /lib/modules/4.9-ndm-5/ebt_mark.ko /lib/modules/4.9-ndm-5/ebt_mark_m.ko /lib/modules/4.9-ndm-5/ebt_pkttype.ko /lib/modules/4.9-ndm-5/ebt_redirect.ko /lib/modules/4.9-ndm-5/ebt_snat.ko /lib/modules/4.9-ndm-5/ebt_stp.ko /lib/modules/4.9-ndm-5/ebt_vlan.ko /lib/modules/4.9-ndm-5/ebtable_broute.ko /lib/modules/4.9-ndm-5/ebtable_filter.ko /lib/modules/4.9-ndm-5/ebtable_nat.ko /lib/modules/4.9-ndm-5/ebtables.ko Если их нет, то возможно не доставили какие компоненты в keenetic. Доставляем. У меня получилось добиться появления нужных модулей только через переустановку OPKG после установки нужных пакетов. Возможно есть способ проще. 11. Узнаем имя интерфейса. Это важно. В CLI интерфейсы могут быть с большими и маленькими буквами. В OPKG может быть по-другому. Узнать это можно через команду ifconfig в BusyBox. У меня он называется eoip0 – т. е. все маленькими буквами. 12. Готовим файл-скрипт с командами. Можно запустить фильтр через команды вручную, но «магия» пропадает после перезагрузки. Поэтому лучше через файл. Я дал имя файлу Sebt. Главное, чтобы в начале была S, потом не важно (rc.unslung запускает все файлы на S при старте) Содержимое файла #!/bin/sh insmod /lib/modules/4.9-ndm-5/ebtables.ko insmod /lib/modules/4.9-ndm-5/ebtable_filter.ko insmod /lib/modules/4.9-ndm-5/ebt_ip.ko insmod /lib/modules/4.9-ndm-5/ebtable_nat.ko ebtables -F ebtables -A INPUT -i eoip0 -p ipv4 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP ebtables -A INPUT -i eoip0 -p ipv4 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP ebtables -A FORWARD -i eoip0 -p ipv4 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP ebtables -A FORWARD -i eoip0 -p ipv4 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP Для создания файла использовал Notepad++ Конец строк должен быть Unix (LF) (можно исправить через редактор в MC). Команды insmod ставят модули (при повторном запуске будет ругаться, что модули уже есть, но это не страшно). Команда ebtables -F чистит таблицу разрешений, чтобы можно было менять через повторный запуск скрипта (в противном случае таблица просто дополнится). Ну а далее сами правила. На форуме предлагают ebtables -A INPUT -i eoip0 -p ipv4 --ip-proto udp --ip-dport 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 Там описки (исправлены и выделены жирным). Кроме того, работать будет только первое и третье правило. Можно сделать просто 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-dport 67:68 -j DROP Мои правила, мне кажется, более правильные и показывают, сколько пакетов заблокировано от клиента и от сервера, и из какой сети. В общем «gillyweed» могут быть разного происхождения – главное, чтобы работали. 13. Закидываем файл в папку /opt/etc/init.d Я закидывал через Приложения – Диск и принтеры. Если не дает закинуть в нужную папку сразу, то можно закинуть в home, а потом скопировать через mc. 14. Делаем разрешение на запуск. Можно через команду chmod, а можно через mc (File- Chmod). Даем права execute. Если все правильно, то перед именем файла появится знак *. 15. Запускаем Sebt Переходим в папку /opt/etc/init.d и запускаем. Не должно быть ошибок типа, что модули не найдены или что нет таблицы filter. 16. Проверяем работу правил. - на смартфоне включаем и выключаем Wi-Fi В BusyBox запускаем команду ebtables -L --Lc Следим за циферками – они должны нарастать … Bridge table: filter Bridge chain: INPUT, entries: 2, policy: ACCEPT -p IPv4 -i eoip0 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP , pcnt = 0 -- bcnt = 0 -p IPv4 -i eoip0 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP , pcnt = 0 -- bcnt = 0 Bridge chain: FORWARD, entries: 2, policy: ACCEPT -p IPv4 -i eoip0 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP , pcnt = 0 -- bcnt = 0 -p IPv4 -i eoip0 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP , pcnt = 1 -- bcnt = 328 Bridge chain: OUTPUT, entries: 0, policy: ACCEPT Со временем цифры растут Bridge table: filter Bridge chain: INPUT, entries: 2, policy: ACCEPT -p IPv4 -i eoip0 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP , pcnt = 7 -- bcnt = 2296 -p IPv4 -i eoip0 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP , pcnt = 1 -- bcnt = 328 Bridge chain: FORWARD, entries: 2, policy: ACCEPT -p IPv4 -i eoip0 --ip-proto udp --ip-sport 68 --ip-dport 67 -j DROP , pcnt = 35 -- bcnt = 11480 -p IPv4 -i eoip0 --ip-proto udp --ip-sport 67 --ip-dport 68 -j DROP , pcnt = 6 -- bcnt = 1968 Bridge chain: OUTPUT, entries: 0, policy: ACCEPT 17. Перегружаем роутер, чтобы убедиться, что все работает после загрузки. Проверяем через ebtables -L –Lc 18. Настраиваем устройства, которые должны работать в «чужой» сети. Настраиваем Ip руками. Ip 192.168.Х.201 - 192.168.Х.254 (эти адреса не раздаются по DHCP) Маска 255.255.255.0 Шлюз 192.168.Х.1 или 192.168.Х.101 Через какого провайдера пускать наружу, рулим на keenetic. 19. Наслаждаемся жизнью У меня все работает отлично. Нагрузка на Extra не превышает 80%, если даже смотришь UHD канал. Устройства Триколор прекрасно видят друг друга. Не удобно только то, что все устройства показываются в разделе Список устройств. Понять, какие чужие, а какие свои, можно только по IP. объединение сетей.docx
  6. А можно для "чайников"? Это команда в терминале или надо какие-то компоненты доставить в keenetic? У меня после танцами с бубном модули появились в папке /lib/modules/4.9-ndm-5/. "Помогло" подключение всех упомянутых компонентов в интерфейсе keeneticа и переустановка opkg. Хотелось бы понять, в чем была причина без магии "бубна"....
  7. Пытаюсь пройти по "тропинке" ebtables. Пакет встает, но модули не скачиваются. Откуда их скачать отдельно не понятно. В чем может быть причина?
  8. Добрый день >P.S. Список модулей ядра можно посмотреть командой:>find /lib/modules Почему-то при установке пакета ebtables не скачиваются эти модули... Может их надо руками откуда-то скопировать. Проблема такая упоминается в сообщениях, но как ее решили умалчивается...
  9. Добрый день. А можно правила настроить только на одном роутере или обязательно на обоих?
  10. А интерфейс EoIP0 доступен в Web интерфейсе для выбора? Можно же сделать запрет UDP 67,68 на этом интерфейсе и DHCP трафик не будет ходить между сетями. Или так не сработает?
×
×
  • Create New...