OpenWRT как сделать статическую маршрутизацию по списку из нескольких тысяч строк?
Доброго времени камрады
Есть большое желание настроить переадресацию в VPN тунели по спискам из ip2location https://www.ip2location.com/free/visitor-blocker
Для России там несколько десятков тысяч строк, если просто загнать список в /etc/config/network то OpenWRT уходит в аут.
OpenWRT крутится в контейнере, работает всё идеально, но если маршрутов становится слишком много, они перестают работать. Проблема не в ресурсах, я выделял много.
Уверен, что есть вариант как это сделать, но пару дней гуглежа и попыток, некчему не привели. (
Цель, что бы из за бугра ходить на РФ ресурсы через соответствующий тунель WG
Требуется ваша помощь
Дополнительно:
Сам разобрался, спасибо статье https://habr.com/ru/articles/440030/
Для тех кому тоже надо )
У меня WG для РФ и РК
Соответственно я создал два стандартных подключения WGKZ и WGRU
Дальше формирую два файла с IP сетями
/etc/subnetru.lst /etc/subnetkz.lst |
/etc/subnetru.lst /etc/subnetkz.lst
Содержимое беру от сюда https://www.ip2location.com/free/visitor-blocker
Содержимое файлов, должно быть вида:
2.16.20.0/23 2.16.53.0/24 2.16.103.0/24 2.16.154.0/24 2.16.161.0/24 ......... |
2.16.20.0/23 2.16.53.0/24 2.16.103.0/24 2.16.154.0/24 2.16.161.0/24 .........
и т.д.
Дальше добавляем в файлы:
/etc/hotplug.d/iface/30-vpnroute
#!/bin/sh ip route add table vpnkz default dev WGKZ ip route add table vpnru default dev WGRU |
#!/bin/sh ip route add table vpnkz default dev WGKZ ip route add table vpnru default dev WGRU
В конец файла /etc/iproute2/rt_tables
98 vpnkz 99 vpnru |
98 vpnkz 99 vpnru
В файлы:
/etc/config/firewall
config zone option name 'VPN' option family 'ipv4' option output 'ACCEPT' option forward 'REJECT' option input 'REJECT' option mtu_fix '1' option masq '1' list network 'WGRU' list network 'WGKZ' config forwarding option src 'lan' option dest 'VPN' config ipset option name 'vpn_subnets_ru' option match 'dst_net' option loadfile '/etc/subnetru.lst' config ipset option name 'vpn_subnets_kz' option match 'dst_net' option loadfile '/etc/subnetkz.lst' config rule option name 'mark_subnet_kz' option src 'lan' option dest '*' option proto 'all' option ipset 'vpn_subnets_kz' option set_mark '0x1' option target 'MARK' option family 'ipv4' config rule option name 'mark_subnet_ru' option src 'lan' option dest '*' option proto 'all' option ipset 'vpn_subnets_ru' option set_mark '0x2' option target 'MARK' option family 'ipv4' |
config zone option name 'VPN' option family 'ipv4' option output 'ACCEPT' option forward 'REJECT' option input 'REJECT' option mtu_fix '1' option masq '1' list network 'WGRU' list network 'WGKZ' config forwarding option src 'lan' option dest 'VPN' config ipset option name 'vpn_subnets_ru' option match 'dst_net' option loadfile '/etc/subnetru.lst' config ipset option name 'vpn_subnets_kz' option match 'dst_net' option loadfile '/etc/subnetkz.lst' config rule option name 'mark_subnet_kz' option src 'lan' option dest '*' option proto 'all' option ipset 'vpn_subnets_kz' option set_mark '0x1' option target 'MARK' option family 'ipv4' config rule option name 'mark_subnet_ru' option src 'lan' option dest '*' option proto 'all' option ipset 'vpn_subnets_ru' option set_mark '0x2' option target 'MARK' option family 'ipv4'
/etc/config/network
config rule option priority '100' option lookup 'vpnkz' option mark '0x1' config rule option priority '100' option lookup 'vpnru' option mark '0x2' config device option name 'eth0' option ipv6 '0' config device option name 'WGRU' option ipv6 '0' config device option name 'eth2' option ipv6 '0' config device option name 'eth1' option ipv6 '0' config device option name 'WGKZ' option ipv6 '0' |
config rule option priority '100' option lookup 'vpnkz' option mark '0x1' config rule option priority '100' option lookup 'vpnru' option mark '0x2' config device option name 'eth0' option ipv6 '0' config device option name 'WGRU' option ipv6 '0' config device option name 'eth2' option ipv6 '0' config device option name 'eth1' option ipv6 '0' config device option name 'WGKZ' option ipv6 '0'
И важно отрубить IPV6 на всех интерфейсах участвующих в этом процессе, я отрубил везде )
Только после этого заработало
Ответы:
Смени wg на xray vless
Там должно прописываться geoip и regexp для ру доменов
- Спасибо, интересно, надо потом поковыряться. Но сейчас не подходит
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для настройки статической маршрутизации на устройстве с OpenWRT и большим списком из нескольких тысяч строк, вы можете воспользоваться следующими шагами:
1. Создайте файл с вашим списком маршрутов. Например, вы можете создать файл routes.txt и добавить в него все необходимые маршруты в следующем формате:
```
192.168.1.0/24 via 192.168.0.1
10.0.0.0/8 via 10.0.0.1
```
2. Подключитесь к вашему устройству OpenWRT через SSH или другой способ доступа к командной строке.
3. Используйте команду `cat routes.txt | while read route; do route add $route; done` для добавления всех маршрутов из вашего файла routes.txt. Эта команда будет построчно считывать маршруты из файла и добавлять их в таблицу маршрутизации.
4. После добавления всех маршрутов, убедитесь, что они корректно добавлены с помощью команды `route -n`. Вы увидите список всех маршрутов, которые были добавлены на ваше устройство.
5. Для того чтобы сохранить эти маршруты после перезагрузки устройства, вы можете добавить команду `cat routes.txt | while read route; do route add $route; done` в файл /etc/rc.local, чтобы она выполнялась автоматически при каждой загрузке.
Таким образом, вы сможете настроить статическую маршрутизацию на устройстве с OpenWRT и большим списком маршрутов без необходимости добавлять их вручную.