Jump to content

Настраиваем bird4


Recommended Posts

bbc.com не уходит на впн, 

ip добавил которые выдал nslookup

151.101.128.81
151.101.0.81
151.101.192.81
151.101.64.8
 
Так же есть вопрос как перенаправить трафик если подключение идет по впн к роутеру чтобы это подключение также проходило через bird?
Link to comment
Share on other sites

Обновление!

Версия 3.4

1) Переделан установщик на более универсальную версию. Теперь в теории может работать не только с кинетиками, а с любыми роутерами, у которых домашняя папка Entware содержит /opt (тестировал только на кинетике, так что могут быть проблемы с другими, но вроде бы не должно)

2) В diff_funk добавлен алгоритм проверки. Сейчас проверяется только скачанный список с антифильтра, если он придет пустой или не скачается, то изменения в маршруты внесены не будут (если сервис ляжет или изменится адрес, то пока не будет указан рабочий урл - скрипт не будет обнулять список роутов)

3) В установочном скрипте добавлена возможность выбрать из двух сервисов для получения списков блокировок или ввода своего

Список изменений в коде и в ридми с чейнджолгом

https://github.com/DennoN-RUS/Bird4Static/compare/v3.3.2...v3.4

Edited by DennoN
  • Thanks 2
  • Upvote 1
Link to comment
Share on other sites

1 час назад, DennoN сказал:

Обновление!

Версия 3.4

1) Переделан установщик на более универсальную версию. Теперь в теории может работать не только с кинетиками, а с любыми роутерами, у которых домашняя папка Entware содержит /opt (тестировал только на кинетике, так что могут быть проблемы с другими, но вроде бы не должно)

2) В diff_funk добавлен алгоритм проверки. Сейчас проверяется только скачанный список с антифильтра, если он придет пустой или не скачается, то изменения в маршруты внесены не будут (если сервис ляжет или изменится адрес, то пока не будет указан рабочий урл - скрипт не будет обнулять список роутов)

3) В установочном скрипте добавлена возможность выбрать из двух сервисов для получения списков блокировок или ввода своего

Список изменений в коде и в ридми с чейнджолгом

https://github.com/DennoN-RUS/Bird4Static/compare/v3.3.2...v3.4

А  можно этот апдейт в шапку темы( в самый первый пост)? А то тут затеряется....

Link to comment
Share on other sites

В 10.01.2023 в 21:26, DennoN сказал:

по поводу ребутов. А если просто запустить скрипт

Если вручную запускать скрипт - ребута не происходит, даже если запускать множество раз. Дебаг режим включал, ребуты происходили, но журнале роутера ничего нового нет.
Убедился даже что дело именно в bird4static - поставил с пуля entware без bird4static, ребутов нет.
Поставил с нуля версию 3.4, не знаю совпадение или нет, но ребутнулся прямо при установке) После перезапуска заново запустил установку, все успешно. Но проблема с ребутами осталась.
Есть идеи в какую сторону копать, как отловить ошибку?

Link to comment
Share on other sites

@FixFever могу предложить убрать файл из /opt/etc/cron.hourly/add-bird4_routes.sh
просто скрипт раз в час конкретно этот скрипт и запускает, но руками он у тебя проходит и роутер не валит, что очень странно. Если уберешь, то обновления происходить не будут. Но может перезагрузки продолжатся? Ну и при запуске скрипта может в консоль каике-то ошибки все-таки летят?

Edited by DennoN
Link to comment
Share on other sites

Получаю такую ошибку, что я делаю не так?

 

Скрытый текст

~ # opkg install git git-http
Installing git (2.34.1-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/git_2.34.1-1_mipsel-3.4.ipk
wget: server returned error: HTTP/1.1 404 Not Found
Installing git-http (2.34.1-1) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/git-http_2.34.1-1_mipsel-3.4.ipk
wget: server returned error: HTTP/1.1 404 Not Found
Collected errors:
 * opkg_download: Failed to download http://bin.entware.net/mipselsf-k3.4/git_2.34.1-1_mipsel-3.4.ipk, wget returned 1.
 * opkg_install_pkg: Failed to download git. Perhaps you need to run 'opkg update'?
 * opkg_install_cmd: Cannot install package git.
 * opkg_download: Failed to download http://bin.entware.net/mipselsf-k3.4/git-http_2.34.1-1_mipsel-3.4.ipk, wget returned 1.
 * opkg_install_pkg: Failed to download git-http. Perhaps you need to run 'opkg update'?
 * opkg_install_cmd: Cannot install package git-http.

 

Link to comment
Share on other sites

В 15.01.2023 в 11:44, DennoN сказал:

могу предложить убрать файл из /opt/etc/cron.hourly/add-bird4_routes.sh

Переустановил с нуля, удалил файл root\Bird4Static\scripts\add-bird4_routes.sh.
Удивительно, но ребуты всё равно продолжились. Всё так же: несколько раз в день, но не чаще чем раз в час, при этом всегда одно и тоже время часа, например в 18:13, 19:13, 22:13. Отслеживал журнал роутера в реалтайме на момент ребута - в нем нет ошибок. После ребута часть записей пропадает - видимо не успело сохранится.

Link to comment
Share on other sites

1 час назад, FixFever сказал:

Переустановил с нуля, удалил файл root\Bird4Static\scripts\add-bird4_routes.sh.
Удивительно, но ребуты всё равно продолжились. Всё так же: несколько раз в день, но не чаще чем раз в час, при этом всегда одно и тоже время часа, например в 18:13, 19:13, 22:13. Отслеживал журнал роутера в реалтайме на момент ребута - в нем нет ошибок. После ребута часть записей пропадает - видимо не успело сохранится.

Посмотрите, что есть в crontab-е часовом по этому адресу. Явно что-то роутер запускает, уберите оттуда задание 

image.png.4f7c3450663974cf4bf1f25b51d130e4.png

Link to comment
Share on other sites

странно, что в 13 минут. настройки cat /opt/etc/crontab выдают 01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly

то есть выполняется в 01 минуту каждый час. Может конечно что-то в кроне так долго висит, что до 13 минут доходит и роутер ломается

Edited by DennoN
Link to comment
Share on other sites

Screenshot_123.png.4737a78bc83d8af303d384ed0419e5ab.png

1 час назад, MihaBor сказал:

Посмотрите, что есть в crontab-е часовом по этому адресу.

Перепроверил, удалил даже ссылку на удалённый файл, ребуты всё равно есть...
 

1 час назад, DennoN сказал:

странно, что в 13 минут.

13 минут просто пример что в одно и тоже кол-во минут часа происходит ребут. Например сегодня были ребуты в 14:25, 15:25...

По всей видимости дело не в кроне, но точно из-за bird4static, без установки скрипта ребутов не происходит. Может проблема в bird4?

Edited by FixFever
Link to comment
Share on other sites

В 27.03.2020 в 22:57, DennoN сказал:

Изначально у меня была схема с BGP, настроенная по инструкции https://keenetic-gi.ga/2019/01/22/bgp_routing.html

Но потом она перестала работать, да и соединение по протоколу wireguard я так и не осилил как добавить в схему работы с BGP

В случае использования Wireguard'а заменить:

protocol bgp antifilter {
    import filter {
        if martians() then reject;
        gw = 10.9.0.1; # override route nexthop
        accept;
    };

на:

protocol bgp antifilter {
    import filter {
        if martians() then reject;
        ifname = "nwg1"; # override route nexthop
        accept;
    };

 

Спасибо за решение, изложенное в начале темы. Для чего нужен bird, если не используется BGP?

  • Thanks 1
Link to comment
Share on other sites

@Александр Рыжов да, про wg и ifname я уже в курсе) работает)

думаю может его тоже в скрипты запихнуть, но пока не решил, как на 2 впна сделать вариант, что бы при отсутствии одного через второй автоматом трафик ходил

а bird в текущих скриптах, он как демон маршрутизации. сам отключает роутинг, если интерфейс недоступен, обновляет и тд. можно было писать и через команды ip route add, но через bird, который сам читает файлы и следит за интерфейсами в данном случае мне было удобнее + приоритеты маршрутизации те же)

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

Edited by DennoN
  • Thanks 2
Link to comment
Share on other sites

45 минут назад, FixFever сказал:

По всей видимости дело не в кроне, но точно из-за bird4static, без установки скрипта ребутов не происходит. Может проблема в bird4?

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

opkg remove curl

opkg remove cron

opkg remove bind-dig

opkg remove iprange

opkg remove whois

opkg remove bird1-ipv4

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

По факту это все, что ставит скрипт. так же еще при запуске выполняется /opt/etc/init.d/S02bird-table можно его сначала удалить /opt/etc/init.d/S02bird-table stop и rm /opt/etc/init.d/S02bird-table и потом уже приступать к удалению пакетов

Link to comment
Share on other sites

@PASPARTU

ip route list table 1000 - отобразит все , что указано в пользовательских файлах

ip route list table 1001 - траффик из антифильтра в первый впн и единственный, если система с одним впн. если система с двумя впн, то там еще будут маршруты из принудительного перенаправления в первый впн

ip route list table 1002 - траффик из антифильтра во второй впн + то, что принудительно отправляется во второй впн
 

или файлы /opt/etc/bird4*.list именно оттуда маршруты добавляются в таблицу маршрутизации

Edited by DennoN
  • Thanks 1
Link to comment
Share on other sites

В 18.01.2023 в 16:27, DennoN сказал:

По факту это все, что ставит скрипт. так же еще при запуске выполняется /opt/etc/init.d/S02bird-table можно его сначала удалить /opt/etc/init.d/S02bird-table stop и rm /opt/etc/init.d/S02bird-table и потом уже приступать к удалению пакетов

Остановил, ребуты прекратились, но и обход перестал работать😅 
В общем, я еще покопался, узнал даже что можно расширить RAM кинетика с помощью внешнего SSD. Попробовал, тоже не помогло.
Перечитал релизноут 3.9.2, с которого у меня пошли ребуты, заметил пункт:
 

Цитата
  • Соединение L2TP/IPsec VPN теперь восстанавливается правильно после восстановления подключения к Интернету. [NDM-2507]

Я как раз использую клиент L2TP/IPsec. Видимо один баг пофиксили, новый добавили.
Поднял OpenVPN на своей VPS-ке. Если поставить клиент OpenVPN в первый приоритет - заблокированные ресурсы открываются, но выборочный обход с Bird4Static не работает, ресурсы не открываются. Пробовал оба новых интерфейсов в ifconfig.

Поднял WireGuard. Выборочный обход работает, ребутов нет. Разве что подключение к VPN периодически отваливалось и ресурсы переставали открываться - исправилось настройкой persistent-keepalive = 25 на сервере и клиенте. Теперь всё работает как часы.
Тем не менее, спасибо за помощь и за сам скрипт!
 

  • Upvote 2
Link to comment
Share on other sites

Важное обновление для тех, у кого в пользовательских списках есть номера автономных систем AS

Версия 3.4.2

Сервис radb.net перестал работать, скрипт передела на работу с ripe.net

https://github.com/DennoN-RUS/Bird4Static/compare/v3.4.1...v3.4.2

  • Upvote 2
Link to comment
Share on other sites

Добрый день!

Подскажите пожалуйста хотел использовать другой лист, вместо URL0=https://antifilter.download/list/allyouneed.lst указал URL0=https://antifilter.download/list/ip.lst, потом удалил следующие файлы antifilter.list и bird4-base-vpn1.list, после выполнил запуск скрипта вручную, только это не сработало прилетела только одна запись. Возможно такой возможности и нет, но в allyouneed.lst стало слишком много лишнего, от этого только растет белый список.
Заранее большое спасибо за ответ.

Link to comment
Share on other sites

@patriot2101 замени в файле add-bird4_routes.sh

 #DIFF FUNCTION
diff_funk() {
  if [[ "$3" == "check" ]]; then
    if grep -q -E "([0-9]{1,3}.){3}[0-9]{1,3}/[0-9]{1,3}" $2; then continue; else return; fi
  fi

строку где if grep ... на

    if grep -q -E "([0-9]{1,3}.){3}[0-9]{1,3}" $2; then continue; else return; fi

и попробуй снова запустить скрипт

Link to comment
Share on other sites

Обновление

Версия 3.4.3

По факту небольшие правки

1) Изменение проверки скачиваемого файла (теперь файл проверяется на наличие любого IP адреса, а не на IP/MASK как это было ранее)

2) Небольшое изменение для AS (в прошлой версии маска ip адреса могла состоять из трех цифр, что не возможно)

3) Правки в функции для AS (раньше из пользовательских листов могло не все передаваться в функцию iprange)

4) В дебаг режим добавлены пустые строки для более понятного вывода на экран

https://github.com/DennoN-RUS/Bird4Static/compare/v3.4.2...v3.4.3

Link to comment
Share on other sites

Важное обновление!

Версия v3.5

Если стояла какая-то из версий v3.4, то обновляться обязательно, в тех версиях немного поломан забор списка с адресами

1) Исправлен критичный баг на проверку скаченного списка, по факту с версии v3.4 в файл antifilter.list попадали не все адреса

2) Создана папка Install/common в которую вынесено все, что не зависит от количества vpn

3) Все функции из файла add-bird4_routes.sh вынесены в файл func.sh

4) Добавлен вывод на экран одинаковых маршрутов из файлов bird4-force*.list

5) Оптимизирована функция ipr_func

https://github.com/DennoN-RUS/Bird4Static/compare/v3.4.3...v3.5

Версия v3.5.1

1) Исправлен критичный баг, при котором не создавались начальные файлы при установке c нуля в версии v3.5

2) Добавлена возможность отключить скачивание списка установив переменную DISABLE_URL=1 в файле add-bird4_routes.sh. После установки скрипт не будет скачивать список, а работать будет только на листах пользователя (user-*.list)

3) Теперь в переменную URLS можно вносить несколько урлов через пробел. Например URLS="https://antifilter.download/list/allyouneed.lst https://community.antifilter.download/list/community.lst"

https://github.com/DennoN-RUS/Bird4Static/compare/v3.5...v3.5.1

Edited by DennoN
  • Thanks 1
Link to comment
Share on other sites

14 часа назад, DennoN сказал:

Важное обновление!

Версия v3.5

Скрипт теперь зависает на "STEP_3: diff antifilter.list", если (как раньше можно было) закомментирована переменная URL0

Цитата

Можно отключить скачивание списка установив переменную DISABLE_URLS=1 в файле add-bird4_routes.sh

А вот это похоже совсем не работает.

Т.е. как на версии 3.5 правильно работать без скачанного списка?

Link to comment
Share on other sites

@usan

cat /opt/root/Bird4Static/scripts/add-bird4_routes.sh

#!/bin/sh

 #USER VARIABLE
DEBUG=0
DISABLE_URLS=1

...

~/Bird4Static # ./scripts/add-bird4_routes.sh
patching file /opt/root/Bird4Static/lists/antifilter.list
patching file /opt/etc/bird4-base-vpn1.list
patching file /opt/etc/bird4-base-vpn2.list
Restarting bird
~/Bird4Static # cat /opt/etc/bird4-base-vpn1.list
~/Bird4Static # cat /opt/etc/bird4-base-vpn2.list
~/Bird4Static #

файлы пустые ip route list table 1001 и ip route list table 1002 выдает только то, что в файлах лежит

При этом переменная URLS (в 3.5.1 переименована с URL0) должна быть задана любым значением

Ну и это все на версии 3.5.1. В 3.5 такое не сработает

Edited by DennoN
Link to comment
Share on other sites

@DennoN🤷‍♂️

cat /opt/root/Bird4Static/scripts/add-bird4_routes.sh
#!/bin/sh

 #USER VARIABLE
DEBUG=0
ISP=`ip route | grep default | cut -f 3 -d' '`
VPN1=nwg1
VPN2=nwg2
HOMEPATH=/opt/root/Bird4Static
SYSTEM_FOLDER=/opt
URL0=https://antifilter.network/download/ipsmart.lst
DISABLE_URLS=1

 

antifilter.list, bird4-base-vpn1.list, bird4-base-vpn2.list - заполнены, по 26 тысяч строк в каждом

 

Link to comment
Share on other sites

@DennoN спасибо) теперь все встало на свои места, я скачал версию 3.5 за 3 минуты до релиза версии 3.5.1, еще думаю что за переменная DISABLE_URL такая, в скриптах нигде не упоминается

  • Upvote 1
Link to comment
Share on other sites

@DennoN

что-то и в 3.5.1 ошибки идут при установке с нуля..

creating /opt/root/Bird4Static/lists/antifilter.list
patch: can't open '/opt/root/Bird4Static/lists/antifilter.list': File exists
creating /opt/etc/bird4-force-isp.list
patch: can't open '/opt/etc/bird4-force-isp.list': File exists
creating /opt/etc/bird4-force-vpn1.list
patch: can't open '/opt/etc/bird4-force-vpn1.list': File exists
Restarting bird
killall: bird4: no process killed
 Starting cron...              done.
 Starting bird4...              done.

Link to comment
Share on other sites

@-Veter-

выполни

ls -l /opt/root/Bird4Static/lists/antifilter.list

ls -l /opt/etc/bird4-*.list

opkg list-installed | grep diff


opkg list-installed | grep patch

и покажи, что в выводе будет

у меня там в 3.5.1 поменялась начальная инициализация файлов. раньше если их не было, то файл создавался и в него писалась 1, а потом уже патч накладывался. Сейчас просто пустой файл создается. Раньше почему-то нужно было, сейчас у меня и так работает. Возможно надо в установку/обновление нужных пакетов засунуть в установку

Edited by DennoN
Link to comment
Share on other sites

19 минут назад, DennoN сказал:

@-Veter-

выполни

....

у меня там в 3.5.1 помялась начальная инициализация фалойлов. раньше если их не было, то файл создавался и в него писалась 1, а потом уже патч накладывался. Сейчас просто пустой файл создается. Раньше почему-то нужно было, сейчас у меня и так работает. Возможно надо в устанвоку засунуть нужный пакет

не помогает 🤔

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...