LINUX.ORG.RU
ФорумAdmin

Нет ответа на пинг при запуске через crontab и openvpn(tun)

 


1

2

проблемка - нет ответа на пинг при запуске через crontab(vixie-cron).
Стоит OpenVPN серверная часть на шлюзе. Делаю контроль «качества сети»(пинга) клиента через OpenVPN.
В OpenVPN настроено через TUN-интерфейс(tun0) в режиме topology subnet.
Клиентский ip(vpn) - 192.168.1.1
Серверный ip(vpn) - 192.168.1.254

Связь в норме. В интерактивном режиме пользователя(root|nginx) - пинг отвечает без проблем!!!

в кронтабе(root|nginx) записан максимально упрощенный вариант
*/5 * * * * /bin/ping -I tun0 192.168.1.1
приходит почта с кронтаба - в ней видно 100% потеря пакетов.

Смотрел «tcpdump -vvvv -n -i tun0 host 192.168.1.1 and icmp»
Идентичные параметры для исходящего пакета как в случае интерактивного запуска под пользователем так и для планого запуска через crontab!
А вот входящего пакета-ответа в случае crontab - НЕТУ!!!
Только в случае интерактивного сеанса.

SELINUX - отключен! Chroot для crontab - не делал!

Также проверил вариант «/bin/ping -I eth0 10.0.0.1» - т.е. пинг на комп во локальной сети.
ОБА ВАРИАНТА(интерактивный и плановый ) ОТРАБОТАЛИ НОРМАЛЬНО!

В общем мои мысли закончились.... прошу помощи в студии...

★★★★★

Последнее исправление: Atlant (всего исправлений: 2)

«/bin/ping -I tun0 192.168.1.1» в crontab ? Да ты изверг!

Ты бы хоть число ответов ограничил бы!

Вообще, это нужно сделать в виде скрипта с анализом результата завершения пинг, а весь вывод ping пустить в /dev/zero

что-то типа

if /bin/ping -q -c 3 -w 3 -i 0.5 -I tun0 192.168.1.1 >/dev/zero 2>&1 ; then echo OK ; else echo BAD; fi

vel ★★★★★
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от Radjah

для вывода данных - пофиг.

Это когда ввод перенаправляют, тогда есть разниза между /dev/zero & /dev/null

vel ★★★★★
()

Возможно, у вас используются либо правила iptables с ограничением по пользователю или группе (-m owner), либо таблицы в ip rule, с такими же правилами.

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

на шлюзе точно нету такого. Да и в том то проблема что в ручную под разными пользователями пинг проходит. Проблема только при запуске через crontab, и только для одного ip! Для других ip(других клиентов openvpn, а так же своей локальной сети) - проблем не возникало.
Я мог бы предположить проблему в клиенте, но клиент отвечает на пинг в ручном режиме без сбоев!

Atlant ★★★★★
() автор топика
Ответ на: комментарий от mky

а вот тут - да! Cмотрю и не верю.
В tcpdump (на сервере) вижу уходящий пакет icmp request(при запуске через crontab).
На клиенте (микротик) его - не вижу!

В tcpdump (на сервере) ВИЖУ уходящий пакет icmp request и ответ на него(при ручном запуске).
На клиенте (микротик) его - тоже ВИЖУ!



Если я правильно помню, tcpdump видит уходящие пакеты уже после iptables. Так что куда они делись непонятно. Или я плохо знаю этот микротик.

Atlant ★★★★★
() автор топика
Ответ на: комментарий от Atlant

Ну временно подключите вместо микротика с этими же параметрами (ключами, ip-адресами) другой openvpn-клиент (линукс допустим)...

mky ★★★★★
()
Ответ на: комментарий от mky

подключите вместо микротика

сегодня слил конфигурацию с микротика - пока изучаю.
А предлагаемый вариант, пока не оптимален (оборудование в тестовом режиме за этими микротиками стоит). Возможно позже.

Atlant ★★★★★
() автор топика

От какого пользователя пускаете в ручном режиме и у какого прописаны правила в crontab

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

пробовал от обоих(root и nginx) и в ручном и через cron.
Изначально было только у nginx в кроне. В процессе выяснения причин - тестировал у обоих.

P.S.
Сейчас разбираю конфиг микротика, и есть непонятки

/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
    ipsec-policy=out,none out-interface-list=WAN

В целом код понятен - провести маскарадинг(SNAT) для трафика исходящего из списка-интерфейсов WAN, но что означает «ipsec-policy=out,none» ?
это только для для ipsec трафика или это означает что применять(точнее не применить(none) ) шифрование ipsec для проходящего трафика ??

Atlant ★★★★★
() автор топика
Последнее исправление: Atlant (всего исправлений: 1)
Ответ на: комментарий от Atlant

так особых проблем в конфиге я не нашел, кроме такого ощущения что происходит двойной SNAT.
Комментарии - мои.

/ip firewall filter
### Входная цепочка (INPUT)
# Всё равно отключенные правила, поэтому закоменнтировал
# add action=accept chain=input comment=\
#     "defconf: accept established,related,untracked" connection-state=\
#     established,related,untracked disabled=yes
# add action=drop chain=input comment="defconf: drop invalid" connection-state=\
#     invalid disabled=yes
# add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \
#     protocol=icmp
# add action=accept chain=input comment=\
#     "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \
#     dst-address=127.0.0.1
# add action=drop chain=input comment="defconf: drop all not coming from LAN" \
#     disabled=yes in-interface-list=!LAN
# add action=accept chain=forward comment="defconf: accept in ipsec policy" \
#     disabled=yes ipsec-policy=in,ipsec
# add action=accept chain=forward comment="defconf: accept out ipsec policy" \
#     disabled=yes ipsec-policy=out,ipsec
# add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
#     connection-state=established,related disabled=yes
# add action=accept chain=forward comment=\
#     "defconf: accept established,related, untracked" connection-state=\
#     established,related,untracked disabled=yes
# add action=drop chain=forward comment="defconf: drop invalid" \
#     connection-state=invalid disabled=yes

# Разрешить всем от микротика черз интерфейс GSM
add action=accept chain=output out-interface=lte1
# Разрешить входящие пинги
add action=accept chain=input protocol=icmp
# Разрешить входящие со стороны LAN
add action=accept chain=input in-interface-list=LAN
# Разрешить входящие на порт 1723, НЕПОНЯТНО ЧТО ЗА ПОРТ GRE with PPTP???
add action=accept chain=input dst-port=1723 protocol=tcp

### NAT
/ip firewall nat
# НЕНУЖНО???. Маскарадинг(SNAT) для выходящих в инет(IPSEC) 
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
# НЕПОНЯТНО, ДВАЖДЫ МАСКАРАДИНГ??. Маскарадин(SNAT) подсетки 192.168.2.0/24 на выходной интерфейс моста(бриджа)
add action=masquerade chain=srcnat out-interface=bridge src-address=192.168.2.0/24
# Проброс порта 4455 от VPN до сервера
add action=netmap chain=dstnat dst-port=4455 in-interface=ovpn1 protocol=tcp to-addresses=192.168.1.5 to-ports=4455
# Проброс порта 8090 от VPN до сервера	
add action=netmap chain=dstnat dst-port=8090 in-interface=ovpn1 protocol=tcp to-addresses=192.168.1.5 to-ports=8090
/ip route
add distance=1 dst-address=10.0.0.0/24 gateway=192.169.1.254

Atlant ★★★★★
() автор топика
Последнее исправление: Atlant (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.