помогите разобраться с маршрутизацией
Posted: 13 Jun 2019, 11:23
Доброго времени суток!
Не могу разобраться с маршрутизацией, голова уже дымит:) Надеюсь на сообщество:)
Вкратце ситуация такая:
есть сервер vpn (accel-ppp, l2tp/pptp, ubuntu), есть много удаленных офисов, на офисах клиентом впн и роутером выступают микротики (RB941), за ними соотевтственно небольшие сетки (3-10 компов).
суть проблемы, собственно, такая: если в правилах iptables на сервере включен masquerade или SNAT в локалку, все чудесно летает, если маскарад выключаем, то начинают твориться какие-то непонятки. В части филиалов перестают ходить пакеты, в части все продолжает работать, в тех что перестали , если пустить пинг например на внутреннюю сетку центрального офиса, то через 10-15 провалов - маршрут поднимается и все работает....
весь прикол в том что все работает по "фазам луны"...
Где рыть уже не знаю. Теперь подробности:
сервер:
Интерфейсы:
ens3 - локалка
ens4 - WAN
pppNN - интерфейсы входящих соединений (vpn тунелей).
ppp92 - стенд.
маршруты:
10.x.y.z/24 - сетки филиалов, 10.255.253.i - ip, получаемая из параметров лдапа для юзера или из пула сервера, если параметр отсутствует на интерфейс впн соединения.
(маршруты на pppNN поднимаются после авторизации через /etc/ppp/ip-up)
iptables: (на период тестирования сведено к минимуму)
ну и некоторые настройки сервера:
ну вроде и все... В такой конфигурации все летает. Единственный нюанс в том, что на серверах в сегменте LAN события логируются от имени 192.168.2.103 (маскарад на впн сервере) а необходимо логировать явные айпишки.
убираем правило
-A POSTROUTING -o ens3 -j MASQUERADE (ну или iptables -t nat -D POSTROUTING -s 10.0.0.0/8 -j SNAT --to-source 192.168.2.103)
и примерно четверть филиалов "отваливается", 3/4 продолжает работать и логируют реальные айпишки. Конфигурации микротиков и версии прошивки идентичны за исключением номеров сетей.
На четверти филиалов наблюдается такая картина:
например с машинки 10.11.24.11 вин приложение не может установить https на хост 192.168.2.11 и в тоже время в браузере открывется страничка https с хоста 192.168.2.8 (дефолт гейтвеи на них одинаковые).
пускаем пинг на 192.168.2.11, наблюдаем порядка 10-15 "провалов, потом пинг начинает идти и "вдруг" начинают устанавливаться соединения, на стенде и на 3/4 филиалов никаких проблем не наблюдается.
только на сервисах начинают логироваться реальные айпишки....
Подскажите куда рыть..... идей уже нет:(
P.S.: есил нужны дополнительные данные, скажите какие - выложу.
Не могу разобраться с маршрутизацией, голова уже дымит:) Надеюсь на сообщество:)
Вкратце ситуация такая:
есть сервер vpn (accel-ppp, l2tp/pptp, ubuntu), есть много удаленных офисов, на офисах клиентом впн и роутером выступают микротики (RB941), за ними соотевтственно небольшие сетки (3-10 компов).
суть проблемы, собственно, такая: если в правилах iptables на сервере включен masquerade или SNAT в локалку, все чудесно летает, если маскарад выключаем, то начинают твориться какие-то непонятки. В части филиалов перестают ходить пакеты, в части все продолжает работать, в тех что перестали , если пустить пинг например на внутреннюю сетку центрального офиса, то через 10-15 провалов - маршрут поднимается и все работает....
весь прикол в том что все работает по "фазам луны"...
Где рыть уже не знаю. Теперь подробности:
сервер:
Code: Select all
VERSION="16.04.5 LTS (Xenial Xerus)"
Code: Select all
root@vpnnn:~# uname -a
Linux vpnnn 4.4.0-134-generic #160-Ubuntu SMP Wed Aug 15 14:58:00 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Code: Select all
root@vpnnn:~# accel-cmd -V
accel-cmd 1.11.2
ens3 - локалка
ens4 - WAN
pppNN - интерфейсы входящих соединений (vpn тунелей).
ppp92 - стенд.
Code: Select all
root@vpnnn:~# ifconfig | grep -A 1 'Link encap'
ens3 Link encap:Ethernet HWaddr 52:54:00:ac:ea:ff
inet addr:192.168.2.103 Bcast:192.168.3.255 Mask:255.255.252.0
--
ens4 Link encap:Ethernet HWaddr 52:54:00:e1:82:06
inet addr:192.168.4.4 Bcast:192.168.4.255 Mask:255.255.255.0
--
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
--
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.255.255.1 P-t-P:10.255.253.91 Mask:255.255.255.255
--
ppp1 Link encap:Point-to-Point Protocol
inet addr:10.255.255.1 P-t-P:10.255.253.71 Mask:255.255.255.255
--
...
ppp92 Link encap:Point-to-Point Protocol
inet addr:10.255.255.1 P-t-P:10.255.253.19 Mask:255.255.255.255
--
...
10.x.y.z/24 - сетки филиалов, 10.255.253.i - ip, получаемая из параметров лдапа для юзера или из пула сервера, если параметр отсутствует на интерфейс впн соединения.
(маршруты на pppNN поднимаются после авторизации через /etc/ppp/ip-up)
Code: Select all
root@vpnnn:~# ip r
default via 192.168.4.1 dev ens4 onlink
...
10.14.31.0/24 via 10.255.253.91 dev ppp0
...
10.14.78.0/24 via 10.255.253.71 dev ppp1
...
10.21.11.0/24 via 10.255.253.19 dev ppp92
...
10.255.253.71 dev ppp1 proto kernel scope link src 10.255.255.1
...
10.255.253.91 dev ppp0 proto kernel scope link src 10.255.255.1
...
10.255.253.19 dev ppp92 proto kernel scope link src 10.255.255.1
...
192.168.0.0/22 dev ens3 proto kernel scope link src 192.168.2.103
192.168.4.0/24 dev ens4 proto kernel scope link src 192.168.4.4
Code: Select all
root@vpnnn:~# iptables -L -n -v
Chain INPUT (policy ACCEPT 8873K packets, 964M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 21M packets, 22G bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 16M packets, 22G bytes)
pkts bytes target prot opt in out source destination
Code: Select all
root@vpnnn:~# iptables-save
# Generated by iptables-save v1.6.0 on Thu Jun 13 13:51:25 2019
*nat
:PREROUTING ACCEPT [48656:4305598]
:INPUT ACCEPT [6991:1036079]
:OUTPUT ACCEPT [1029:73424]
:POSTROUTING ACCEPT [1358:89530]
-A POSTROUTING -o ens4 -j MASQUERADE
-A POSTROUTING -o ens3 -j MASQUERADE
COMMIT
# Completed on Thu Jun 13 13:51:25 2019
# Generated by iptables-save v1.6.0 on Thu Jun 13 13:51:25 2019
*filter
:INPUT ACCEPT [9052833:982199847]
:FORWARD ACCEPT [21790142:22517472879]
:OUTPUT ACCEPT [16557537:22688780309]
COMMIT
# Completed on Thu Jun 13 13:51:25 2019
# Generated by iptables-save v1.6.0 on Thu Jun 13 13:51:25 2019
*mangle
:PREROUTING ACCEPT [1804259276:1418061587813]
:INPUT ACCEPT [532812691:57256939703]
:FORWARD ACCEPT [1271131631:1360766991873]
:OUTPUT ACCEPT [990481415:1373320415759]
:POSTROUTING ACCEPT [2261621546:2734088415308]
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Thu Jun 13 13:51:25 2019
Code: Select all
root@vpnnn:~# cat /proc/sys/net/ipv4/ip_forward
1
root@vpnnn:~# cat /proc/sys/net/ipv4/ip_no_pmtu_disc
0
root@vpnnn:~# cat /proc/sys/net/ipv4/ip_forward_use_pmtu
0
root@vpnnn:~# cat /proc/sys/net/ipv4/conf/all/proxy_arp
0
убираем правило
-A POSTROUTING -o ens3 -j MASQUERADE (ну или iptables -t nat -D POSTROUTING -s 10.0.0.0/8 -j SNAT --to-source 192.168.2.103)
и примерно четверть филиалов "отваливается", 3/4 продолжает работать и логируют реальные айпишки. Конфигурации микротиков и версии прошивки идентичны за исключением номеров сетей.
На четверти филиалов наблюдается такая картина:
например с машинки 10.11.24.11 вин приложение не может установить https на хост 192.168.2.11 и в тоже время в браузере открывется страничка https с хоста 192.168.2.8 (дефолт гейтвеи на них одинаковые).
пускаем пинг на 192.168.2.11, наблюдаем порядка 10-15 "провалов, потом пинг начинает идти и "вдруг" начинают устанавливаться соединения, на стенде и на 3/4 филиалов никаких проблем не наблюдается.
только на сервисах начинают логироваться реальные айпишки....
Подскажите куда рыть..... идей уже нет:(
P.S.: есил нужны дополнительные данные, скажите какие - выложу.