Как лучше привязать все Trunk'и по умолчанию к интерфейсу?

Ссылка скопирована
1 ответ

Камрады,
По вводным: требуется помощь знающих во FreePBX, поскольку ИИ сломался и начал повторяться. Нужна помощь кожаных мешков.
По вводным: есть Debian 12 + FreePBX 17:
По вводным: ens18 - первая сеть в локалку
По вводным: ens19 - вторая в локалку Ростелекома (они предоставляются VoIP), транки регистрируются на их сервере, который доступен по внутренней сети.
По вводным: два шлюза нельзя сделать, поэтому настроены rule

Interfaces

auto ens18 iface ens18 inet static address 192.168.8.3 netmask 255.255.252.0 up ip route add 192.168.8.0/22 dev ens18 src 192.168.8.3 table 10 up ip route add default via 192.168.8.1 dev ens18 table 10 up ip route add default via 192.168.8.1 dev ens18 metric 100 up ip rule add from 192.168.8.3 lookup 10 priority 100 down ip rule del from 192.168.8.3 lookup 10 priority 100 down ip route flush table 10 auto ens19 iface ens19 inet static address 10.10.199.18 netmask 255.255.255.252 up ip route add 10.10.199.16/30 dev ens19 src 10.10.199.18 table 20 up ip route add default via 10.10.199.17 dev ens19 table 20 up ip rule add from 10.10.199.18 lookup 20 priority 200 down ip rule del from 10.10.199.18 lookup 20 priority 200 down ip route flush table 20
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Антон С. Ответ

Для FreePBX/Asterisk в вашей схеме важно не “привязать транки к интерфейсу” в абстрактном смысле, а гарантировать, что SIP-регистрация и RTP к Ростелекому уходят с адреса ens19 через нужную таблицу маршрутизации. Если Linux выбирает дефолтный маршрут через ens18, транки могут регистрироваться нестабильно или ответы будут уходить не тем интерфейсом.

Первое — сделайте отдельные маршруты до SIP/RTP-сетей Ростелекома через ens19. Не обязательно делать второй default gateway. Нужны точные сети провайдера:

ip route add 10.10.0.0/16 dev ens19 src 10.10.199.18
ip route add X.X.X.X/32 via 10.10.199.1 dev ens19 src 10.10.199.18

ip route add 10.10.0.0/16 dev ens19 src 10.10.199.18 ip route add X.X.X.X/32 via 10.10.199.1 dev ens19 src 10.10.199.18

Где X.X.X.X — IP SIP-сервера Ростелекома, если он не в локальной сети ens19. Проверяйте маршрут так:

ip route get IP_СЕРВЕРА_РОСТЕЛЕКОМА

ip route get IP_СЕРВЕРА_РОСТЕЛЕКОМА

В ответе должно быть dev ens19 src 10.10.199.18. Если там ens18, Asterisk будет ходить не туда.

В PJSIP можно дополнительно указать транспорт, привязанный к нужному адресу. В FreePBX это аккуратнее делать через GUI, но логика такая:

[transport-rostelecom]
type=transport
protocol=udp
bind=10.10.199.18:5060

[transport-rostelecom] type=transport protocol=udp bind=10.10.199.18:5060

Затем trunk должен использовать этот transport. Если используется chan_sip, смотрите bindaddr/externip/localnet, но на FreePBX 17 обычно актуален PJSIP.

Также не забудьте про RTP. SIP может зарегистрироваться, но звука не будет, если RTP идёт через другой интерфейс или firewall. Проверьте диапазон RTP в FreePBX и маршруты до медиасерверов провайдера. Для диагностики:

tcpdump -ni ens19 host IP_СЕРВЕРА_РОСТЕЛЕКОМА
tcpdump -ni ens18 host IP_СЕРВЕРА_РОСТЕЛЕКОМА

tcpdump -ni ens19 host IP_СЕРВЕРА_РОСТЕЛЕКОМА tcpdump -ni ens18 host IP_СЕРВЕРА_РОСТЕЛЕКОМА

Итог: не делайте два равноправных дефолта. Добавьте точные маршруты до сетей Ростелекома через ens19, проверьте ip route get, привяжите PJSIP transport к IP второго интерфейса и tcpdump-ом подтвердите, что SIP/RTP реально уходят через нужную сетевую карту.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

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

Вам также может быть интересно