NF_CONNTRACK_SIP Иногда не работает, перезапуская iptables обычно исправляет его

Я бы сделал это с не-EFI, так как он более совместим и дает меньше проблем с установками Linux.

Я бы также установил grub в MBR диска / dev / sda.

Вы установили его в / dev / sda1, и тем лучше, потому что я могу поклясться, что обновления / переустановки Windows не испортят его.

1
12.08.2018, 06:35
1 ответ

Решение

Решение состояло в том, чтобы просто пометить исходящие пакеты для обработки conntrack sip helper:

iptables -t raw -A OUTPUT -p udp -m udp --sport 5060 -j CT --helper sip

Причина

Проблема заключалась в том, что правило брандмауэра помечало только входящие пакеты для conntrack sip helper.

iptables -t raw -A PREROUTING -p udp -m udp --dport 5060 -j CT --helper sip

Когда АТС отправляла первый пакет на телефон, она устанавливала запись conntrack без помощника sip. Запись продолжала соответствовать разговору SIP без участия помощника SIP.

[root@test ~]# conntrack -L | grep -E '5060|sip'
conntrack v1.4.4 (conntrack-tools): 13 flow entries have been shown.
udp      17 159 src=10.47.1.11 dst=10.7.0.38 sport=5060 dport=1024 src=10.7.0.38 dst=10.47.1.11 sport=1024 dport=5060 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 use=1

Когда телефон отправлял первый пакет на АТС, он попадал в правило с «-j CT --helper sip», перечисленное выше, и запись conntrack создавалась с помощью sip helper.

[root@test ~]# conntrack -L | grep -E '5060|sip'
conntrack v1.4.4 (conntrack-tools): 9 flow entries have been shown.
udp      17 3588 src=10.7.0.38 dst=10.47.1.11 sport=1024 dport=5060 src=10.47.1.11 dst=10.7.0.38 sport=5060 dport=1024 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 helper=sip use=2

Обратите внимание на «helper=sip» в конце записи, сравните с его отсутствием в первом примере.

УАТС и телефон посылают SIP-пакеты друг другу, чтобы подтвердить присутствие другого, поэтому синхронизация показала -недетерминированность.

Asterisk сохраняет состояние одноранговых узлов при перезагрузке и проверяет их после перезагрузки, таким образом, гораздо более вероятно, что исходящий пакет будет отправлен первым, что приведет к появлению в conntrack вспомогательной записи, отличной от -SIP -.

Большое спасибо пользователю A.B за то, что указал мне правильное направление в комментариях.

Остается загадкой

Чего я не могу объяснить, так это почему, когда у меня была опция modprobe

options nf_conntrack nf_conntrack_helper=0

Он по-прежнему ломался и «чинился» точно так же. Я не тратил много времени на автоматический запуск помощника, поэтому, возможно, я сделал что-то не так. Я могу обновить этот ответ, если узнаю больше. Я не планирую использовать автоматический помощник.

2
27.01.2020, 23:43

Теги

Похожие вопросы