2 votes

Dépannage d'une connexion SIP défaillante

J'ai un serveur Asterisk sous linux qui se trouve derrière un pare-feu. Le pare-feu a trois interfaces :

  • eth0 est le LAN, où Asterisk réside,
  • eth2 est la passerelle par défaut vers l'internet (via un modem / routeur ADSL),
  • eth3 est une connexion internet secondaire

Si je laisse les choses telles quelles, Asterisk se connecte au trunk SIP sans problème. Il sera acheminé via la route par défaut à travers eth2. eth2 est MASQUERADED.

Si je définis une route statique vers mon fournisseur SIP via eth3 ( ip route add sip.provider.ip via gateway.ip dev eth3 ), je peux envoyer un ping au fournisseur SIP. Tout ce qui va et vient de mon fournisseur SIP est autorisé par le pare-feu. Mais Asterisk refuse de se connecter (peer become unreachable)...

J'ai utilisé iptables TRACE pour examiner les paquets, et ils sortent bien via eth3. Mais je ne vois aucun paquet revenir. eth3 a aussi une règle MASQUERADE...

La suppression de la route statique via eth3 restaure la connectivité.

Je suis à la recherche de conseils et d'astuces pour m'aider à résoudre ce problème.

1voto

dunxd Points 598

Je soupçonne que votre serveur asterisk est configuré pour utiliser UDP, qui est sans connexion, et que la requête SIP sortante peut contenir l'adresse IP de retour que l'utilisateur final doit utiliser pour se reconnecter à vous.

Vérifiez le externip dans vos fichiers de configuration sip :

Jetez également un coup d'œil à ce qui suit, qui contient beaucoup de bonnes choses. http://www.asteriskguru.com/tutorials/sip_nat_oneway_or_no_audio_asterisk.html

Obtenir une trace du réseau à l'aide de wireshark ou de tcpdump pour eth2 et eth3 permettra également de mieux comprendre le problème.

0 votes

Je n'ai pas défini externip, mais j'ai externaddr, et je ne peux pas faire la différence... Je vais essayer avec externip.

0 votes

Cela ne semble pas faire de différence... Et en passant par la passerelle par défaut (eth2), cela fonctionne sans externip... Je vais donc essayer d'aller plus loin dans les paquets... ou peut-être utiliser trace route...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X