Mr.Weegley Posted October 20, 2021 Share Posted October 20, 2021 Ответа так и нет? Сейчас тоже столкнулся с этим. Есть Wireguard туннель, но его ip вызывает эту же ошибку. bird4.conf: Скрытый текст log syslog all; log stderr all; router id 31.28.238.119; # current external ip function martians() { return net ~ [ 100.64.0.0/10+, 169.254.0.0/16+, 172.16.0.0/12+, 192.168.0.0/16+, 10.0.0.0/8+, 127.0.0.0/8+, 224.0.0.0/4+, 240.0.0.0/4+, 0.0.0.0/32-, 0.0.0.0/0{0,7} ]; } protocol device { scan time 15; } protocol kernel kernel_routes { scan time 60; import none; export all; kernel table 1000; # kernel routing table number } protocol static static_routes { import all; #route 192.168.X.Y/24 via 192.168.A.B; } protocol bgp antifilter { import filter { if martians() then reject; gw = 172.16.0.2; # override route nexthop //Эта строка вызывает ошибку accept; }; export none; local as 64999; # local default as-number neighbor 163.172.210.8 as 65432; multihop; hold time 240; } ifconfig nwg0: Скрытый текст -bash-5.1# ifconfig nwg0 nwg0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:172.16.0.2 P-t-P:172.16.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1 Как я понимаю, ему не нравится что адрес один и тот же и у шлюза и у меня. Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted October 20, 2021 Share Posted October 20, 2021 UPD (редактировать свой пост нельзя?) Выяснил что ошибка появляется только для некоторых сетей.... Например: 144.91.72.0/22; 174.136.13.0/24 Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted October 25, 2021 Share Posted October 25, 2021 Как понимаю, вопрос на данный момент не актуален? Странно. И всё же, поделюсь своим изысканием. Поднят Wireguard интерфейс. ВПН в сторону Cloudflare. Довольно скоро я узнал, что они дают только 1Гб трафика (на день? месяц? год? - ещё не понял) Но тут не об этом. При настройке Wireguard наш интерфейс имеет адрес 172.16.0.2 и P-t-P:172.16.0.2 Почему то, этот адрес не нравится Bird'у и при следовании инструкциям тут и в этой теме я не получал заполнение таблицы маршрутами. Выяснилось, что ошибку вызывает строка gw = 172.16.0.2; # override route nexthop Гугление дало ещё пару вариантов её замены: #bgp_next_hop = 172.16.0.2; #ifname = "nwg0"; Но и они не работают. В итоге, появилось неочевидное решение: protocol static static_routes { import all; route 163.172.210.8/32 via 172.16.0.2; } И каким то образом это даёт желаемый эффект. НО При таком раскладе в лог спамится строка вида: bird4: KRT: Received route with strange next-hop для КАЖДОГО маршрута. И спамится она туда ПОСТОЯННО. При каждом сканировании ядром таблицы, как я понимаю. Вроде бы, этот спам ни на что не влияет, потому можно просто указать scan time 0: protocol kernel kernel_routes { scan time 0; import none; export all; kernel table 1000; # kernel routing table number } Пока трафик ещё оставался - вроде работало. По прошествии нескольких дней с момента настройки таблица на месте. Может, кому то пригодится. А может, кто то сможет это дело понять и подсказать что нужно. Вроде бы где то проскакивало что next-hop должен быть доступен via direct или как то так, и что бы bird и kernel были счастливы нужно указать что этот интерфейс всегда up или что то в этом духе. Прочитал это мельком, не придал значения в тот момент. И как это сделать тоже не знаю. Quote Link to comment Share on other sites More sharing options...
vasek00 Posted October 26, 2021 Share Posted October 26, 2021 11 час назад, Mr.Weegley сказал: Поднят Wireguard интерфейс. ВПН в сторону Cloudflare. Довольно скоро я узнал, что они дают только 1Гб трафика (на день? месяц? год? - ещё не понял) Ремарка в сторону Cloudflare. В профиле сидит клиент, а сам профиль Cloudflare. Скрытый текст Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted October 26, 2021 Share Posted October 26, 2021 11 час назад, vasek00 сказал: Ремарка в сторону Cloudflare. В профиле сидит клиент, а сам профиль Cloudflare. Показать содержимое А ведь и правда... Спасибо за пинок:) Нашел в чем дело. В /opt/etc/ndm/ifstatechanged.d/010-add_antizapret_route.sh строка, создающая пресловутую 1000-ю таблицу в общем случае не должна быть привязана к интерфейсу. (Ну, или должна, если это реально необходимо) Тогда получим и на роутере: -bash-5.1# traceroute -n rutracker.org traceroute to rutracker.org (195.82.146.214), 30 hops max, 38 byte packets 1 172.16.0.1 49.299 ms 49.451 ms 49.580 ms 2 172.68.9.1 50.409 ms 50.080 ms 50.267 ms И т.д... И на клиенте: Трассировка маршрута к rutracker.org [195.82.146.214] с максимальным числом прыжков 30: 1 <1 мс <1 мс <1 мс 192.168.0.1 2 49 ms 49 ms 49 ms 172.16.0.1 3 51 ms 59 ms 145 ms 172.68.9.1 И т.д... Quote Link to comment Share on other sites More sharing options...
loginella Posted December 13, 2021 Share Posted December 13, 2021 В 25.10.2021 в 19:11, Mr.Weegley сказал: Поднят Wireguard интерфейс. ВПН в сторону Cloudflare. Довольно скоро я узнал, что они дают только 1Гб трафика (на день? месяц? год? - ещё не понял) Безлимит там по трафику. Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted December 14, 2021 Share Posted December 14, 2021 В 13.12.2021 в 12:54, loginella сказал: Безлимит там по трафику. Выше об этом уже сказали. Работает давно и хорошо. Спасибо Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted March 5, 2022 Share Posted March 5, 2022 Коллеги, Столкнулся с тем, что иногда Wireguard на Cloudflare перестаёт работать. Просто в логе куча строк о просроченном рукопожатии или что то такое. Не помню, да и не важно. Ни ребуты, ни пересоздание подключения с нуля не помогают. Через время начинает работать сам. При этом интерфейс остаётся up, и скрипты в ifstatechanged.d не выполняются. С вытекающей невозможностью остановить bird от маршрутизацию через него оттуда. А у меня, например он роутит целыми ASN'ами Например, Гугл - весь идёт через Cloudflare. Ибо живу в Крыму, и неработающий Play Market и частые 403 от гугла на всяких сайтах достали. Так вот такой вот костыль я для себя накрутил сегодня. Может, кому пригодится. Создал скриптик CF-Watchdog.sh вот с таким содержанием: Скрытый текст #!/opt/bin/bash #logger -t "Antizapret debug" "Running CF-watchdog..." if /opt/bin/ping -c 1 -4 -I nwg0 engage.cloudflareclient.com > /dev/null #if we have successfull ping via nwg0 then if pgrep bird4 > /dev/null #and bird is running then : #then all goes well. do nothing :) #logger -t "Antizapret System" "All going well..." #echo Wg ping is ok, and Bird is running else #if we have ping via nwg0 but bird is not running, than we assume that we had no ping during previous checks and stopped it. logger -t "Antizapret System" "Got ping thru Cloudflare!" /opt/usr/bin/tg_say.sh $'<b>Antizapret System</b>\n❗ Got ping thru Cloudflare! Starting Bird...' /opt/etc/init.d/S04bird1-ipv4 start fi else #if we have NO ping via nwg0 #logger -t "Antizapret debug" "ping command not successfull..." if pgrep bird4 >& /dev/null #and bird is running now, then it's better to stop it... then logger -t "Antizapret System" "No ping thru Cloudflare! Stopping bird..." /opt/usr/bin/tg_say.sh $'<b>Antizapret System</b>\n❗ No ping thru Cloudflare!' /opt/etc/init.d/S04bird1-ipv4 stop fi fi Символьную ссылку на него в /opt/etc/cron.1min и имеем проверку работоспособности маршрутизации через Cloudflare каждую минуту, и по необходимости остановку/перезапуск bird Сорян, что комменты на буржуйском - мне так почему то удобнее... Quote Link to comment Share on other sites More sharing options...
paradisi Posted March 7, 2022 Share Posted March 7, 2022 (edited) В 25.10.2021 в 20:11, Mr.Weegley сказал: Почему то, этот адрес не нравится Bird'у и при следовании инструкциям тут и в этой теме я не получал заполнение таблицы маршрутами. Выяснилось, что ошибку вызывает строка Столкнулся с такой же проблемой. Удалось выяснить что это из-за маски соединения Wireguard: nwg0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.13.13.3 P-t-P:10.13.13.3 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MTU:1324 Metric:1 RX packets:12533 errors:0 dropped:43 overruns:0 frame:0 TX packets:11141 errors:0 dropped:1 overruns:0 carrier:0 collisions:0 txqueuelen:50 RX bytes:8986444 (8.5 MiB) TX bytes:1993636 (1.9 MiB) В моем случае, в настройках соединения, в поле "Адрес" нужно было заменить подсеть "/32" на "/24", маска в соединении поменялась: nwg0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.13.13.3 P-t-P:10.13.13.3 Mask:255.255.255.0 UP POINTOPOINT RUNNING NOARP MTU:1324 Metric:1 RX packets:12535 errors:0 dropped:64 overruns:0 frame:0 TX packets:11155 errors:0 dropped:1 overruns:0 carrier:0 collisions:0 txqueuelen:50 RX bytes:8986628 (8.5 MiB) TX bytes:1994316 (1.9 MiB) На работу туннеля это не повлияло, если в "Приоритетах подключений" вручную перекинуть какое-либо устройство в профиль с соединением Wireguard - трафик идет через него, все ok. Bird запустился без ошибок и таблица маршрутизации наполнилась: ~ # ip route list table 1000 | wc -l 20177 НО! На устройствах в сети все так же нет доступа к заблокированным ресурсам ( Может кто-то сталкивался или может подсказать что еще нужно настроить? Edited March 7, 2022 by rostislavzz Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted March 7, 2022 Share Posted March 7, 2022 (edited) 12 часа назад, rostislavzz сказал: НО! На устройствах в сети все так же нет доступа к заблокированным ресурсам ( Может кто-то сталкивался или может подсказать что еще нужно настроить? На трейсы бы глянуть с устройств и с самого кинетика. Только сейчас обратил внимание, что при установке подсети /24 при создании интерфейса через веб-морду, а так же командой ip - маска ставится /32. И только ifconfig смог установить её в /24. Но разницы не вижу. Работает и так и так при условии, что устанавливает BGP-сессию через туннель. Как только включил лог - снова спам о "странном" next-hop... Где то читал, что bird вообще плохо дружит с P-t-P интерфейсами. Да и по большому счёту он для другого пердназначен, вроде как. Сколько ни читал документации, форумов и мануалов по нему - складывается впечатление, что мы с его помощью из пушки по воробьям лупим Edited March 7, 2022 by Mr.Weegley Quote Link to comment Share on other sites More sharing options...
DennoN Posted April 11, 2022 Share Posted April 11, 2022 (edited) @Mr.Weegley мне тут @_villi_ показал конфиг, который нормально работает, если указать ifname Скрытый текст ....... protocol kernel kernel_routes { learn; scan time 60; import none; export all; kernel table 1000; # kernel routing table number device routes yes; } ....... protocol bgp antifilter { import filter { if martians() then reject; ifname = "nwg0"; accept; }; export all; local as 64999; # local default as-number neighbor 45.154.73.71 as 65432; multihop; hold time 240; preference 250; } изменения только в protocol kernel kernel_routes ну и в bgp antifilter указать ifname. остальное не менять. тогда и ругани нет в логах и все работает ключевая строка, которая позволяет всему этому делу работать - device routes yes Edited April 11, 2022 by DennoN 1 2 Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted April 11, 2022 Share Posted April 11, 2022 (edited) 4 часа назад, DennoN сказал: @Mr.Weegley мне тут @_villi_ показал конфиг, который нормально работает, если указать ifname Показать содержимое ....... protocol kernel kernel_routes { learn; scan time 60; import none; export all; kernel table 1000; # kernel routing table number device routes yes; } ....... protocol bgp antifilter { import filter { if martians() then reject; ifname = "nwg0"; accept; }; export all; local as 64999; # local default as-number neighbor 45.154.73.71 as 65432; multihop; hold time 240; preference 250; } изменения только в protocol kernel kernel_routes ну и в bgp antifilter указать ifname. остальное не менять. тогда и ругани нет в логах и все работает ключевая строка, которая позволяет всему этому делу работать - device routes yes Дай Вам обоим Бог здоровья, добра и пива! Вот была же мысль что просто не докопался до какой то одной волшебной строчки Зы А как тут карму юзеру поднять? ЗЗы Надо это как то в общую инструкцию добавить. Edited April 11, 2022 by Mr.Weegley Quote Link to comment Share on other sites More sharing options...
Артем Зыков Posted February 27, 2023 Share Posted February 27, 2023 для wireguard удалось настроить, но куда вписать хук ip rule add table 1000 , который в оригинальной инструкции надо добавлять в /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh Но для wg я так понял оно не сработает Quote Link to comment Share on other sites More sharing options...
vanooname Posted March 2, 2023 Share Posted March 2, 2023 В 11.04.2022 в 12:45, DennoN сказал: @Mr.Weegley мне тут @_villi_ показал конфиг, который нормально работает, если указать ifname Показать содержимое ....... protocol kernel kernel_routes { learn; scan time 60; import none; export all; kernel table 1000; # kernel routing table number device routes yes; } ....... protocol bgp antifilter { import filter { if martians() then reject; ifname = "nwg0"; accept; }; export all; local as 64999; # local default as-number neighbor 45.154.73.71 as 65432; multihop; hold time 240; preference 250; } изменения только в protocol kernel kernel_routes ну и в bgp antifilter указать ifname. остальное не менять. тогда и ругани нет в логах и все работает ключевая строка, которая позволяет всему этому делу работать - device routes yes Данный способ тоже помог с OpenVPN, огромное Вам спасибо!!!! Quote Link to comment Share on other sites More sharing options...
Kazantsev Posted April 6 Share Posted April 6 Как решить? Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted April 6 Share Posted April 6 (edited) 5 часов назад, Kazantsev сказал: Как решить? Попробуйте как выше указано: 1. protocol kernel kernel_routes { learn; scan time 60; ipv4 { import none; export all; }; kernel table 1000; # kernel routing table number #device routes yes; ##### } ^^^^^^^^^^^^^ Закоментить или раскомментить device routes (Уже не помню, почему у меня закомментировано) 2. protocol bgp antifilter { import filter { if martians() then reject; ifname = "wg0"; #accept; reject; }; export none; local as 64999; # local default as-number neighbor 45.154.73.71 as 65432; multihop; hold time 240; preference 250; } ^^^^^^^^^^^ добавить ifname = "wg0"; Не знаю, помогает ли чем-то multihop, но у меня работало без ошибок. А вообще, если работает, несмотря на эту запись в логе, то отправить лог в null и концы в воду... Edited April 6 by Mr.Weegley Quote Link to comment Share on other sites More sharing options...
devidart Posted August 3 Share Posted August 3 Как открыть ссылку? Не работает. Судя по всему, домен поменялся. https://keenetic-gi.ga/2019/01/22/bgp_routing.html Quote Link to comment Share on other sites More sharing options...
Mr.Weegley Posted August 5 Share Posted August 5 В 04.08.2024 в 03:40, devidart сказал: Как открыть ссылку? Не работает. Судя по всему, домен поменялся. https://keenetic-gi.ga/2019/01/22/bgp_routing.html Вот так Quote Link to comment Share on other sites More sharing options...
TopGear78 Posted August 5 Share Posted August 5 Теперь адрес такой https://pimpmykeenetic.github.io/ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.