Alexey Lyahkov Posted February 11, 2021 Share Posted February 11, 2021 После некоторой эксплуатации данной связки накопились проблемы. 1. Не возможность использовать policy routing в данной связке. ip policy принимает в конфиге и вебморде только "global" интерфейсы - ipip0 по какой-то причине этим не является. Фича или Бага? Выход из положения через Enterware и перебивание содержимого ip таблицы - мягко скажем не очень приятен. 2. Как не крути - Кинетик упорно делает NAT на ipip0 (no ip nat ipip0 естественно сделан). Найден вариант с #!/bin/sh [ "$table" != "nat" ] && exit 0 iptables -t nat -I _NDM_MASQ_BYPASS -o ipip0 -j ACCEPT Но как-то вот.. 3. В качестве пожелания - сделать PBR через ipset а не через стопку одинаковых правил. И вам проще - и файрволу напрягаться меньше. Quote Link to comment Share on other sites More sharing options...
r13 Posted February 11, 2021 Share Posted February 11, 2021 (edited) 17 минут назад, Alexey Lyahkov сказал: После некоторой эксплуатации данной связки накопились проблемы. 1. Не возможность использовать policy routing в данной связке. ip policy принимает в конфиге и вебморде только "global" интерфейсы - ipip0 по какой-то причине этим не является. Фича или Бага? Выход из положения через Enterware и перебивание содержимого ip таблицы - мягко скажем не очень приятен. 2. Как не крути - Кинетик упорно делает NAT на ipip0 (no ip nat ipip0 естественно сделан). Найден вариант с #!/bin/sh [ "$table" != "nat" ] && exit 0 iptables -t nat -I _NDM_MASQ_BYPASS -o ipip0 -j ACCEPT Но как-то вот.. 3. В качестве пожелания - сделать PBR через ipset а не через стопку одинаковых правил. И вам проще - и файрволу напрягаться меньше. Выполните ip global на ipip интерфейсе, и он станет работать с policy Edited February 11, 2021 by r13 Quote Link to comment Share on other sites More sharing options...
KorDen Posted February 11, 2021 Share Posted February 11, 2021 (edited) 44 минуты назад, Alexey Lyahkov сказал: ipip0 по какой-то причине этим не является должен быть дефолтный маршрут (ip route default IPIP10 auto) и ip global на интерфейсе (interface IPIP10 ip global 123) 44 минуты назад, Alexey Lyahkov сказал: Кинетик упорно делает NAT на ipip0 (no ip nat ipip0 естественно сделан) ip nat задается на src. Т.е. "ip nat Home" означает "натить из Home в любой исходящий интерфейс". Поэтому вам надо "натить из Home только в ISP", т.е. "no ip nat Home" и затем "ip static Home ISP" Edited February 11, 2021 by KorDen Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted February 11, 2021 Share Posted February 11, 2021 1 час назад, Alexey Lyahkov сказал: После некоторой эксплуатации данной связки накопились проблемы. 1. Не возможность использовать policy routing в данной связке. ip policy принимает в конфиге и вебморде только "global" интерфейсы - ipip0 по какой-то причине этим не является. Фича или Бага? Выход из положения через Enterware и перебивание содержимого ip таблицы - мягко скажем не очень приятен. 2. Как не крути - Кинетик упорно делает NAT на ipip0 (no ip nat ipip0 естественно сделан). Найден вариант с #!/bin/sh [ "$table" != "nat" ] && exit 0 iptables -t nat -I _NDM_MASQ_BYPASS -o ipip0 -j ACCEPT Но как-то вот.. 3. В качестве пожелания - сделать PBR через ipset а не через стопку одинаковых правил. И вам проще - и файрволу напрягаться меньше. IPset в качестве backend появился сильно позже PBR, потому не все компоненты переведены на него. Про остальное вам уже подсказали. Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 11, 2021 Author Share Posted February 11, 2021 2 hours ago, KorDen said: ip nat задается на src. Т.е. "ip nat Home" означает "натить из Home в любой исходящий интерфейс". Поэтому вам надо "натить из Home только в ISP", т.е. "no ip nat Home" и затем "ip static Home ISP" Простите - но дико не удобно. Когда у тебя больше пары интерфейсов - прийдется прописывать в конфиг MxN (m - гостевых, N - внешних) строк что бы описать что же и как натить. И молиться что бы не одну из конфигураций не забыть 😕 Тогда как перечисление только тех где натить - дало бы в разы меньше строк. Я подозревал что прийдется делать ip static ... но похоже более простое решение это N строчек в _NDM_MASQ_BYPASS - для исключения интерфейсов где натить не нужно. Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 11, 2021 Author Share Posted February 11, 2021 2 hours ago, KorDen said: должен быть дефолтный маршрут (ip route default IPIP10 auto) и ip global на интерфейсе (interface IPIP10 ip global 123) 3 hours ago, Alexey Lyahkov said: (config)> ip route default IPIP0 auto Network::RoutingTable error[5046298]: automatic default routes are invalid. > show interface ipip0 id: IPIP0 index: 0 type: IPIP description: interface-name: IPIP0 link: up connected: yes state: up mtu: 65516 tx-queue: 1 address: 198.18.1.1 mask: 255.255.255.252 uptime: 12856 global: yes defaultgw: no priority: 350 security-level: private tunnel-local-source: 198.18.0.1 tunnel-remote-destination: 198.18.0.2 ipsec-enabled: no ipsec-ikev2-allowed: yes ipsec-ikev2-enabled: no Quote Link to comment Share on other sites More sharing options...
KorDen Posted February 11, 2021 Share Posted February 11, 2021 5 минут назад, Alexey Lyahkov сказал: automatic default routes are invalid Да, ошибся, дефолтные маршруты надо без auto 25 минут назад, Alexey Lyahkov сказал: прийдется прописывать в конфиг MxN Ага Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 11, 2021 Author Share Posted February 11, 2021 спасибо, за подсказки! заработало адекватно. хотелось еще PBR в виде - вот эти хосты ходят в интерфейс только если это не к этим адресам - но в тех местах где стоят кинетики - это наверно не нужно. А в тике это было реализовано одним правилом с 2мя IPSET списками. Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted February 11, 2021 Share Posted February 11, 2021 Ну везде по-разному + исторические отличия, которые не вылечить в 2 минуты. Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 15, 2021 Author Share Posted February 15, 2021 (edited) @Le ecureuil маленькое дополнение по глюкам. Воспользовавшись советом default в ipip0 наткнулся на баго/фичу. IPsec тунель не добавляет свой peer в роутинг на дефолтовый интерфейс. В результате ipsec тихо умирает и не может найти пира. Хотя show ip route видит default в нужный интерфейс 😕 Quote > show ip route ================================================================================ Destination Gateway Interface Metric ================================================================================ 0.0.0.0/0 100.68.91.1 ISP 0 5.8.48.16/32 100.68.91.1 ISP 0 10.1.30.0/24 0.0.0.0 Guest 0 100.68.91.0/24 0.0.0.0 ISP 0 Добавление руками адреса пира в роутинг решает проблему - но не кошерно система должна сама это делать. С туннельными адресами меня берет сомнение.. но выглядит как тоже надо бы добавить - во избежание глюков. Edited February 15, 2021 by Alexey Lyahkov добавил о туннельных адресах Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted February 15, 2021 Share Posted February 15, 2021 1 час назад, Alexey Lyahkov сказал: @Le ecureuil маленькое дополнение по глюкам. Воспользовавшись советом default в ipip0 наткнулся на баго/фичу. IPsec тунель не добавляет свой peer в роутинг на дефолтовый интерфейс. В результате ipsec тихо умирает и не может найти пира. Хотя show ip route видит default в нужный интерфейс 😕 Добавление руками адреса пира в роутинг решает проблему - но не кошерно система должна сама это делать. С туннельными адресами меня берет сомнение.. но выглядит как тоже надо бы добавить - во избежание глюков. Не очень понимаю о чем вы. Лучше пример приведите. Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 15, 2021 Author Share Posted February 15, 2021 Хм.. вроде привел пример. Давайте еще раз. 1. По совету KorDen был сделан ip route add default ipip0 и через политику назначено 2м хостам в локалке. ip route default IPIP0 2. Через политику назначено некоторым хостам. ip policy vpn-gw description vpn-gw permit global IPIP0 permit global Wireguard0 permit global ISP ! 3. crypto map home2 set-peer xxxxx.keenetic.name .. ---- Таблица роутинга как ее видел кинетик - я показал выше. > show ip route ================================================================================ Destination Gateway Interface Metric ================================================================================ 0.0.0.0/0 100.68.91.1 ISP 0 5.8.48.16/32 100.68.91.1 ISP 0 10.1.30.0/24 0.0.0.0 Guest 0 100.68.91.0/24 0.0.0.0 ISP 0 Устраиваем reboot.. ОПА.. и ipsec не поднимается - говорит не могу достучаться до пира. I [Feb 15 10:00:58] ipsec: 12[IKE] retransmit 7 of request with message ID 0 I [Feb 15 10:01:14] ipsec: 10[IKE] retransmit 8 of request with message ID 0 I [Feb 15 10:01:31] ipsec: 10[IKE] giving up after 8 retransmits I [Feb 15 10:01:31] ndm: IpSec::Configurator: "home2": schedule reconnect for crypto map. I [Feb 15 10:01:31] ipsec: 10[IKE] establishing IKE_SA failed, peer not responding делаем ip route 31.28.251.xxx ISP IPSEC поднимается, и вся схема работает. Получается по какой-то причине ipsec демон не может найти роутинг до пира. Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted February 15, 2021 Share Posted February 15, 2021 Почему вы не используете автоматический туннель? Там все сделано как вы хотите. Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 15, 2021 Author Share Posted February 15, 2021 (edited) в смысле автоматический? вы имеете ввиду ipsec в туннельном режиме? Тогда прикиньте сколько нужно политик прописать когда с обоих сторон туннеля по 5-7 сетей. Я молчу о том что с другой стороны Mikrotik 4011 - как vpn шлюз. У того проблемы с несколькими сетями в рамках фазы 2 есть проблемы. Или вы о l2tp ? Edited February 15, 2021 by Alexey Lyahkov Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted February 15, 2021 Share Posted February 15, 2021 1 час назад, Alexey Lyahkov сказал: в смысле автоматический? вы имеете ввиду ipsec в туннельном режиме? Тогда прикиньте сколько нужно политик прописать когда с обоих сторон туннеля по 5-7 сетей. Я молчу о том что с другой стороны Mikrotik 4011 - как vpn шлюз. У того проблемы с несколькими сетями в рамках фазы 2 есть проблемы. Или вы о l2tp ? Первый пост внимательно читали? Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 15, 2021 Author Share Posted February 15, 2021 Не будет работать в моем случае - по двум причинам. 1. На той стороне Mikrotik 4011 - к которому надо подбирать отдельные настройки. Возможно получится - возможно нет. 2. На стороне "клиента" - динамический "серый" адрес. В то время как ip tunnel ipip требует указания на обоих сторонах destination ip. PS. и все это что бы при создании ipsec peer не добавлять его адрес в роутинг.. собственно это больше для других кто наступит на эту же бяку. Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted February 15, 2021 Share Posted February 15, 2021 13 минуты назад, Alexey Lyahkov сказал: Не будет работать в моем случае - по двум причинам. 1. На той стороне Mikrotik 4011 - к которому надо подбирать отдельные настройки. Возможно получится - возможно нет. 2. На стороне "клиента" - динамический "серый" адрес. В то время как ip tunnel ipip требует указания на обоих сторонах destination ip. PS. и все это что бы при создании ipsec peer не добавлять его адрес в роутинг.. собственно это больше для других кто наступит на эту же бяку. 1. Давайте попробуем, может норм будет? 2. Вообще побоку, в случае с IPsec это волновать никого не должно, как не волнует работа L2TP/IPsec клиента с серым IP через NAT. Зато получаете контроль за нижележащим интерфейсом, автоматическое объединение IPIP и IPsec в один уровень (отдельно IPsec незамеченным не отвалится), ну и роуты к удаленным пирам. Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 15, 2021 Author Share Posted February 15, 2021 (edited) попробую, но не гарантирую что это будет быстро. Кроме того отваливание интерфейса - меня волнует достаточно слабо. Как раз таки умирающий трафик был бы лучше - иначе пришлось быть делать отдельно blackhole для этих IP адресов. Ибо специфика доступа из Крыма к некоторым адресам на территории US. PS. только сейчас обратил внимание что destination ip печатается криво в ifconfig ipip0 PPS. нашел таки роутинг на пира в ipip0 в 248 таблице Edited February 15, 2021 by Alexey Lyahkov Quote Link to comment Share on other sites More sharing options...
Alexey Lyahkov Posted February 15, 2021 Author Share Posted February 15, 2021 Но роутинг странный. 198.18.0.2 via 31.x.x.x dev eth3 table 248 proto static src 198.18.0.1 mtu 1500 advmss 1460 адрес 31.x.x.x не является direct reachable для этого хоста - я честно удивлен что его дали добавить. Гораздо логичнее был адрес 100.x.x.1 который является шлюзом для этого кинетика для ISP интерфейса 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.