Jump to content

Нюансы при использовании BGP


Recommended Posts

Настраиваю обход by Александр Рыжов (https://keenetic-gi.ga/2019/01/22/bgp_routing.html) и, видимо, что-то сделал не так. Ресурсы не открываются, в логах вот так: 

Сен 29 13:46:09 bird4
antifilter: Error: Hold timer expired
Сен 29 13:46:32 ndhcpc
GigabitEthernet1: received ACK for 95.165.141.133 from 95.165.128.1.
Сен 29 13:47:13 bird4
filters, line 40: Invalid gw address
Сен 29 13:47:13 bird4
Core::Syslog: last message repeated 4 times.
Сен 29 13:47:13 bird4
...
Сен 29 13:47:13 bird4
filters, line 40: Invalid gw address
Сен 29 13:47:13 bird4
...

 

Что сделал (сори на нубство):

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

~ # opkg install bird1-ipv4
Installing bird1-ipv4 (1.6.4-1b) to root...
Downloading http://bin.entware.net/mipselsf-k3.4/bird1-ipv4_1.6.4-1b_mipsel-3.4.                                                                                                                                                             ipk
Configuring bird1-ipv4.
~ # mc /opt/etc/bird4.conf

~ # mcedit /opt/etc/bird4.conf

~ # /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh
-sh: /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh: not found
~ # mcedit /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh

~ # chmod +x /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh
~ # /opt/etc/init.d/S04bird1-ipv4 start
 Starting bird4...              done.
~ # /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh
~ # ip route list table 1000
~ # mcedit /opt/etc/bird4.conf

~ # chmod +x /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh
~ # /opt/etc/init.d/S04bird1-ipv4 start
 Starting bird4...              already running.
~ # /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh
~ # mcedit /opt/etc/ndm/openvpn-route-up.d/010-add_antizapret_route.sh

~ # ip route list table 1000
 

 

IP от провайдер белый, статический.

"IP адрес удалённого конца VPN-соединения." по совету из телеги брал в маршрутах в вэб-интерфейсе роутера, из колонки "шлюз"- сейчас там нули почему-то.

 

Что я сделал не так?

Спасибо.

Link to comment
Share on other sites

Кстати, после всех манипуляций перестал работать телеграм на компьютере. При этом на телефоне, подключенном к той же wifi сети всё работает...

Link to comment
Share on other sites

 

И вот еще. Александр пишет: "Убедитесь, что нужная таблица маршрутизации (1000) участвует в маршрутизации и мелькает в выводе ip rule list.".

При выполнении ip rule list вижу следующее:

~ # ip route list
default via 95.165.128.1 dev eth3
10.1.30.0/24 dev br1 scope link  src 10.1.30.1
10.18.96.0/24 dev ovpn_br50 scope link  src 10.18.96.6
10.18.96.1 dev ovpn_br50 scope link
62.112.106.130 via 95.165.128.1 dev eth3
62.112.113.170 via 95.165.128.1 dev eth3
91.240.64.13 via 95.165.128.1 dev eth3
95.165.128.0/19 dev eth3 scope link  src 95.165.141.133
108.59.1.193 dev ovpn_br50 scope link
192.168.2.0/24 dev br0 scope link  src 192.168.2.1

Т.е. впн тут упоминается и 10.18.96.1 - это как раз тот ip, что я для впн указывал...

Но вот насчет "1000й таблицы" - я тут ничего не вижу...

Link to comment
Share on other sites

3 часа назад, Алексей Саратовский сказал:

 

И вот еще. Александр пишет: "Убедитесь, что нужная таблица маршрутизации (1000) участвует в маршрутизации и мелькает в выводе ip rule list.".

При выполнении ip rule list вижу следующее:

~ # ip route list
default via 95.165.128.1 dev eth3
10.1.30.0/24 dev br1 scope link  src 10.1.30.1
10.18.96.0/24 dev ovpn_br50 scope link  src 10.18.96.6
10.18.96.1 dev ovpn_br50 scope link
62.112.106.130 via 95.165.128.1 dev eth3
62.112.113.170 via 95.165.128.1 dev eth3
91.240.64.13 via 95.165.128.1 dev eth3
95.165.128.0/19 dev eth3 scope link  src 95.165.141.133
108.59.1.193 dev ovpn_br50 scope link
192.168.2.0/24 dev br0 scope link  src 192.168.2.1

Т.е. впн тут упоминается и 10.18.96.1 - это как раз тот ip, что я для впн указывал...

Но вот насчет "1000й таблицы" - я тут ничего не вижу...

вы команды перепутали

ip rule list != ip route list

ЗЫ сначала нужно решать проблемы с bird

Edited by r13
  • Upvote 1
Link to comment
Share on other sites

Да, вы правы. Невнимательно посмотрел...

Вот вывод по правильной команде. И, как я понимаю, что-то тут пошло не так...

~ # ip rule list
0:      from all lookup local
4:      from all iif br0 lookup 1000
5:      from all iif br0 lookup 1000
6:      from all iif br0 lookup 1000
7:      from all iif br0 lookup 1000
8:      from all iif br0 lookup 1000
9:      from all iif br0 lookup 1000
10:     from all fwmark 0xffffcff lookup main
164:    from all fwmark 0xffffd00 lookup 42
165:    from all fwmark 0xffffd00 lookup unspec blackhole
32766:  from all lookup main
32767:  from all lookup default
 

 

А с bird - где копать?

Link to comment
Share on other sites

Комрады, куды копать-та?

косяк в IP туннеля? а что соединение не установлено - это какое? сам туннель работает, если его в приоритетах поднять выше провайдера - всё гуд, IP импортный сразу.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Приветствую всех)

Попытался выполнить ту же инструкцию, результат тоже отрицательный. Маршруты строятся, таблица заполняется, а маршрутизация не работает. traceroute с маршрутизатора показывает, что все пакеты по-прежнему идут через основное PPPoE соединение. В линуксе не силён. Просьба помочь решить проблему.

Link to comment
Share on other sites

  • 1 month later...

Настраивал по этой же инструкции, все сразу взлетело, но проблема, что у меня на виртуальной машине, где поднят VPN, еще крутятся mtproto для телеги и другие сервисы, а доступ по белому IP я к ней теряю из дома, только по внутреннему IP работает. 

Как то можно сделать, что бы виртуальная машина была доступна по белому IP?

Link to comment
Share on other sites

  • 3 months later...

У кого сейчас настроен bgp по той статье? У меня все работало, а сегодня заметил, что маршруты от сервера не получаю. Это у меня косяк? Или у них с сервером что-то?

Link to comment
Share on other sites

  • 2 weeks later...

При переходе на прошивку 3.3.15/16 при запуске bird сервис ndm грузит систему на 50-90%. У кого-нибудь есть такой эффект и лекарство от него?

Link to comment
Share on other sites

21 минуту назад, Владимир Подстречный сказал:

При переходе на прошивку 3.3.15/16 при запуске bird сервис ndm грузит систему на 50-90%. У кого-нибудь есть такой эффект и лекарство от него?

Ждите 3.4, там совместимось ndm с тысячами маршрутов пофиксили. 

Link to comment
Share on other sites

2 hours ago, r13 said:

Ждите 3.4, там совместимось ndm с тысячами маршрутов пофиксили. 

Да, в техподдержке то же сказали. Спасибо) Надеялся, что сейчас можно поправить.

Link to comment
Share on other sites

В 29.09.2019 в 14:55, Алексей Саратовский сказал:

filters, line 40: Invalid gw address

Тоже долго не мог разобраться (подключаюсь по L2TP/IPSec), вписывал и 192.168.xx.150 (IP клиента) и 192.168.xx.1 (Gateway IP), но решилось тем, что вписал IP адрес из параметра P-t-P из вывода ifconfig:

# ifconfig

...
ppp3      Link encap:Point-to-Point Protocol  
          inet addr:192.168.xx.150  P-t-P:>>>>1.0.0.1<<<<  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1392  Metric:1
          RX packets:75585 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50265 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:62505563 (59.6 MiB)  TX bytes:3430496 (3.2 MiB)
...

В моём случае будет gw = 1.0.0.1;. После этого маршруты стали нормально создаваться.

Кстати, IP адрес 1.0.0.1 является публичным и принадлежит DNS-серверу Cloudflare. Это баг VPN-сервера, который я использую, в будущих версиях они собираются выдавать другой IP для L2-соединений.

 

По L2TP таким образом заработало, а с OpenVPN настроить пока не получается (такая же ошибка "invalid gw address", что бы ни вписывал), экспериментирую.

Link to comment
Share on other sites

  • 2 weeks later...
В 15.04.2020 в 13:46, maksimkurb сказал:

По L2TP таким образом заработало, а с OpenVPN настроить пока не получается (такая же ошибка "invalid gw address", что бы ни вписывал), экспериментирую.

Удалось вам победить OpenVPN? Столкнулся с такой же проблемой.

Link to comment
Share on other sites

В 26.04.2020 в 23:24, PoliceMan сказал:

Удалось вам победить OpenVPN? Столкнулся с такой же проблемой.

Нет, не удалось. Написал Ansible-скрипт для автоматической настройки роутера, чтобы он сам скачивал списки и прописывал их в ipset (+ есть возможность добавить свои домены), на этом успокоился.

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

Если нужно, ссылка на ansible-скрипт: https://github.com/maksimkurb/ansible-keenetic-hirkn

 

Link to comment
Share on other sites

Всё дело в том, что не каждый Open VPN сервер подходит. Использовать надо тот, где gw адрес не меняется при подключениях и честно отображается в логах. Например Whoer подходит, а securitykiss нет, по крайней мере в бесплатных вариантах. И для надёжности перезапускать bird скриптом по событию установления соединения.Уже почти год работает без особых проблем, на новых прошивках ещё и тормоза от большого количества маршрутов убрали)

 

Link to comment
Share on other sites

  • 1 month later...

Пользуюсь L2TP/IPSEC подключением к впн серверу. После перезагрузки роутера, автоматически не подхватывается /opt/etc/ndm/l2tp_ipsec_vpn_up.d/010-add_antizapret_route.sh , приходится активировать вручную. Bird4 запускается. Может можно как-то по таймеру BASH скрипт запустить ? Если при поднятии L2TP/IPSEC не подхватывается.... 

Edited by Виктор Гатилов
Link to comment
Share on other sites

39 минут назад, Виктор Гатилов сказал:

Пользуюсь L2TP/IPSEC подключением к впн серверу. После перезагрузки роутера, автоматически не подхватывается /opt/etc/ndm/l2tp_ipsec_vpn_up.d/010-add_antizapret_route.sh , приходится активировать вручную. Bird4 запускается. Может можно как-то по таймеру BASH скрипт запустить ? Если при поднятии L2TP/IPSEC не подхватывается.... 

Этот хук для vpn сервера. Для клиента  изучайте ifstatechanged.d

  • Thanks 1
Link to comment
Share on other sites

21 hours ago, Владимир Подстречный said:

Кто-нибудь может подсказать, можно ли в конфиге bird использовать имя интерфейса вместо gw=ip ???

Разобрался. Заодно и решил проблему с динамическим gw при смене подключения.

Link to comment
Share on other sites

Всё оказалось просто)

Есть Keenetic Giga KN-1010, прошивка 3.4.6. На более ранних прошивках со старой версией Open VPN скорее всего не заработает, там переменные окружения и параметры другие. Пример привожу для VPN-подключения с именем "OpenVPN4".

  1. Добавляем параметр "verb 3" в настройки VPN-подключения.
  2. Включаем, после подключения в системном журнале ищем строку вида: PUSH: Received control message: 'PUSH_REPLY,dhcp-option DNS х.х.х.х, redirect-gateway def1,...,route-gateway A.B.C.D, topology subnet,ping 10,ping-restart 60,...
  3. Настраиваем роутер по статье https://keenetic-gi.ga/2019/01/22/bgp_routing.html, используя IP A.B.C.D как IP адрес удалённого конца VPN-соединения. Убеждаемся, что работает.
  4. В /opt/etc/ndm/openvpn-route-up.d добавляем ещё один скрипт 020-bird_restart.sh и делаем его исполняемым. Скрипт меняет 40-ю строку конфигурации bird на новую, с новым gw. Строку желательно проверить 🙂
Spoiler

#!/bin/sh

[ "$ndm_opkg_id" != "OpenVPN4" ] && exit 0

sed  -i[SFX] '40c\      gw = '$route_vpn_gateway';' /opt/etc/bird4.conf

/opt/etc/init.d/S04bird1-ipv4 restart

Вуаля

В линуксе новичок, слепил на коленке, возможно есть и другой путь. Главное - работает)

  • Thanks 2
Link to comment
Share on other sites

  • 6 months later...

Может ли способ из ссылки в первом посте быть не не достаточно точным (не знаю как ещё это назвать)?
Например, при входе на 2ip.ru я вижу свой личный IP. При входе на заблоченный rutracker.org всё нормально, сайт открывается.
Но сегодня я три раза неправильно ввёл пароль от VPS и попросил админов сбросить баны для моего IP, и как оказалось забанен был IP VPN.
Я скачал с antifilter список всех IP и не нашёл в списке IP VPS. Также проверил на РКН.
Периодически YouTube выдаёт сообщения, что на территории этой страны могут работать не все функции Premium.

Link to comment
Share on other sites

2 часа назад, Александр Рыжов сказал:

Точечные запреты включают ~173000 отдельных IP-адресов и если использовать их непосредственно, то кинетик стихами заговорит.

Как пишут тут - 

не запоет. Хотя от устройства зависит наверняка. 

Link to comment
Share on other sites

Коллеги, вопрос. Пользовался методом Александра когда подключение к удаленному серверу было по IPIP туннелю. Перешел на WireGuard, теперь в логе такая же ошибка как у топик стартера. Если вернуть тип туннеля опять на IPIP то списки получает и маршрутизирует, проблема только если отправлять трафик на гейтвей wiregurd.

 

Янв 22 11:22:13
 
bird4
filters, line 40: Invalid gw address
Янв 22 11:22:13
 
bird4
Core::Syslog: last message repeated 4 times.
Янв 22 11:22:13
 
bird4
...
Янв 22 11:22:13
 
bird4
filters, line 40: Invalid gw address
Янв 22 11:22:13
 
bird4
...

 

Пробовал указывать не gw = 192.168.200.2 а имя интерефейса ifname= "nwg0", но тогда bird стартует без ошибки, но обновления списков не происходит и таблицы не заполняются.

Что можно сделать, не хочу менять тип туннеля с wireguard на другой.

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...