Problemas con IP alias y "bindaddr" en sip.conf

1,564 views
Skip to first unread message

Iñaki Baz Castillo

unread,
Jan 20, 2009, 12:35:00 PM1/20/09
to aster...@googlegroups.com
Hola, he comprobado un comportamiento bastante fuera de lugar cuando se usa
una IP alias.

Supongamos el servidor con las IP's:

- eth0: 22.22.22.10
- eth0:1 22.22.22.1

Si pongo en sip.conf:
bindaddr = 22.22.22.1
entonces Asterisk sólo permite tráfico SIP con destino la IP alias 22.22.22.1
(parece correcto), rechazando el tráfico a la 22.22.22.10 con "403
Forbidden", perfecto.

Pero si pongo en sip.conf:
bindaddr = 0.0.0.0 (en todos los interfaces)
entonces resulta que Asterisk sólo permite tráfico SIP con destino la IP
22.22.22.10, prohibiendo con "403" el tráfico a la IP alias 22.22.22.1.
Esto no tiene sentido alguno.

¿Alguien se ha encontrado con esto y lo puede confirmar?


--
Iñaki Baz Castillo
<ib...@xtratelecom.es>

Raúl Alexis Betancor Santana

unread,
Jan 20, 2009, 3:22:02 PM1/20/09
to aster...@googlegroups.com
El Martes, 20 de Enero de 2009 17:35, Iñaki Baz Castillo escribió:
> Hola, he comprobado un comportamiento bastante fuera de lugar cuando se usa
> una IP alias.
>
> Supongamos el servidor con las IP's:
>
> - eth0: 22.22.22.10
> - eth0:1 22.22.22.1
>
> Si pongo en sip.conf:
> bindaddr = 22.22.22.1
> entonces Asterisk sólo permite tráfico SIP con destino la IP alias
> 22.22.22.1 (parece correcto), rechazando el tráfico a la 22.22.22.10 con
> "403 Forbidden", perfecto.
>
> Pero si pongo en sip.conf:
> bindaddr = 0.0.0.0 (en todos los interfaces)
> entonces resulta que Asterisk sólo permite tráfico SIP con destino la IP
> 22.22.22.10, prohibiendo con "403" el tráfico a la IP alias 22.22.22.1.
> Esto no tiene sentido alguno.

Si tiene sentido, todo el del mundo, Asterisk no soporta multihoming, es un
tema que se ha discutido hasta la saciedad.

> ¿Alguien se ha encontrado con esto y lo puede confirmar?

Te lo confirmo, te lo confirmo, incluso intentamos corregir ese comportamiento
del chan_sip, pero no hay tutía, como una interfaz tenga más de una IP,
Asterisk hace guarradas a tutiplen.

Son cutres a mas no poder.

--
Raúl Alexis Betancor Santana
Dimensión Virtual

Germán Aracil Boned

unread,
Jan 20, 2009, 3:38:05 PM1/20/09
to aster...@googlegroups.com
Tengo cierta experiencia en el tema. La verdad es que solo uso la ip
adicional para dar servicio y no he intentado hacerlo con la primera ip.
De todas formas.. creas la ruta correcta para que por el interface
eth0:1 tenga salida a internet u otras redes a las que precises acceder ?

Raúl Alexis Betancor Santana escribió:

--


-
-------------------------------------
Germán Aracil Boned
Director de Sistemas
Zoon Suite S.L.

www.zoonsuite.com
963146030 - General
963146031 - Asistencia de incidencias
963146032 - FAX
-------------------------------------
-

davidp

unread,
Jan 21, 2009, 3:03:41 AM1/21/09
to asterisk-es

> Si pongo en sip.conf:
>   bindaddr = 22.22.22.1
> entonces Asterisk sólo permite tráfico SIP con destino la IP alias 22.22.22.1
> (parece correcto), rechazando el tráfico a la 22.22.22.10 con "403
> Forbidden", perfecto.

Vaya. Yo pensaba que el bindaddr lo que hacía era que asterisk
"escuchara" conexiones por esa IP, y no aceptara conexiones por otras
IPs, pero a un nivel más bajo. Es decir: no que te devuelva un "403
forbidden", sino que simplemente no escuchara las peticiones que le
llegan por esa otra IP.

davidp.

Elio Rojano

unread,
Jan 21, 2009, 3:36:43 AM1/21/09
to aster...@googlegroups.com
Madre mía... utiliza un bindaddr=0.0.0.0 y usa el iptables como todo el mundo! >:)
--
http://www.sinologic.net/

Iñaki Baz Castillo

unread,
Jan 21, 2009, 3:53:27 AM1/21/09
to aster...@googlegroups.com
El Tuesday 20 January 2009 21:22:02 Raúl Alexis Betancor Santana escribió:
> > Pero si pongo en sip.conf:
> >   bindaddr = 0.0.0.0 (en todos los interfaces)
> > entonces resulta que Asterisk sólo permite tráfico SIP con destino la IP
> > 22.22.22.10, prohibiendo con "403" el tráfico a la IP alias 22.22.22.1.
> > Esto no tiene sentido alguno.
>
> Si tiene sentido, todo el del mundo, Asterisk no soporta multihoming, es un
> tema que se ha discutido hasta la saciedad.

Vaya, pensaba que lo que no soportaba era multihoming un poco más "complejo",
qué mal...


> > ¿Alguien se ha encontrado con esto y lo puede confirmar?
>
> Te lo confirmo, te lo confirmo, incluso intentamos corregir ese
> comportamiento del chan_sip, pero no hay tutía, como una interfaz tenga más
> de una IP, Asterisk hace guarradas a tutiplen.

Confirmado queda, gracias.

Iñaki Baz Castillo

unread,
Jan 21, 2009, 3:56:47 AM1/21/09
to aster...@googlegroups.com

Tendría sentido, pero como dice Elio, sinceramente yo sólo confiaría en
Iptables para ese cometido, y nunca en la capa de aplicación.

davidp

unread,
Jan 22, 2009, 7:54:31 AM1/22/09
to asterisk-es


On 21 ene, 09:36, Elio Rojano <hel...@gmail.com> wrote:
> Madre mía... utiliza un bindaddr=0.0.0.0 y usa el iptables como todo el
> mundo! >:)
>

Es de estas veces que la solución más simple es la que no se te
ocurre ;-)

davidp.

David Calvache

unread,
Jan 23, 2009, 4:31:57 AM1/23/09
to asterisk-es

>
> Supongamos el servidor con las IP's:
>
> - eth0:   22.22.22.10
> - eth0:1  22.22.22.1
>
>
> Pero si pongo en sip.conf:
>   bindaddr = 0.0.0.0 (en todos los interfaces)
> entonces resulta que Asterisk sólo permite tráfico SIP con destino la IP
> 22.22.22.10, prohibiendo con "403" el tráfico a la IP alias 22.22.22.1.
> Esto no tiene sentido alguno.


Mmmm, perdonad que pregunte una cosa, pero en el caso de que sea
heartbeat el que levanta la interfaz eth0:1 Asterisk si responde a la
vez a ambas ip estando bindeado a 0.0.0.0.

En otra maquina yo tengo tambien levantadas ips virtuales y asterisk
tambien me constesta a ambas ips, lo que si es cierto es que asterisk
solo devuelve el trafico a traves de la ip no virtual.

Es decir, tenemos una extension registrada con la 22.22.22.1 y el
audio pasando por asterisk y los paquetes de subida trabajan con la
22.22.22.1 y en los paquetes de bajada le llegan al telefono desde la
22.22.22.10.

Si en mi caso funciona , no entiendo porque a ti no. Y ya puesto al
caso,¿como podria hacer para que en ambos casos el asterisk me
devolviera el trafico por la ip no virtual?


Iñaki Baz Castillo

unread,
Jan 23, 2009, 4:36:45 AM1/23/09
to aster...@googlegroups.com
El Friday 23 January 2009 10:31:57 David Calvache escribió:
> Es decir, tenemos una extension registrada con la 22.22.22.1 y el
> audio pasando por asterisk y los paquetes de subida trabajan con la
> 22.22.22.1 y en los paquetes de bajada le llegan al telefono desde la
> 22.22.22.10.

Gracias por el dato.


> Si en mi caso funciona , no entiendo porque a ti no.

Porque mi tfno está detrás de NAT, así que si envío un REGISTER a la IP1 y
Asterisk me devuelve desde la IP2, la respuesta no va a pasar el NAT.


> Y ya puesto al
> caso,¿como podria hacer para que en ambos casos el asterisk me
> devolviera el trafico por la ip no virtual?

Creo que Raúl tiene "buenas" experiencias tratando de lograr eso... XD

Julian J. M.

unread,
Jan 23, 2009, 6:16:24 AM1/23/09
to aster...@googlegroups.com
2009/1/23 Iñaki Baz Castillo <ib...@xtratelecom.es>:

> El Friday 23 January 2009 10:31:57 David Calvache escribió:
>> Si en mi caso funciona , no entiendo porque a ti no.
>
> Porque mi tfno está detrás de NAT, así que si envío un REGISTER a la IP1 y
> Asterisk me devuelve desde la IP2, la respuesta no va a pasar el NAT.

Con iptables se puede reescribir la IP de origen y forzarla a la de la
IP virtual (eth0:1), pero claro entonces las peticiones a la IP real
(eth0) tendrán el mismo problema ;)

Una ñapa, la verdad, aunque no creo que sea muy complicado parchear esto.

Julian J. M.


--
http://www.julianmenendez.es

Raúl Alexis Betancor Santana

unread,
Jan 23, 2009, 6:47:30 AM1/23/09
to aster...@googlegroups.com
El Friday 23 January 2009 09:31:57 David Calvache escribió:

> Mmmm, perdonad que pregunte una cosa, pero en el caso de que sea
> heartbeat el que levanta la interfaz eth0:1 Asterisk si responde a la
> vez a ambas ip estando bindeado a 0.0.0.0.

Nadie ha dicho que no responda, se ha dicho que no lo hace como debe.

> En otra maquina yo tengo tambien levantadas ips virtuales y asterisk
> tambien me constesta a ambas ips, lo que si es cierto es que asterisk
> solo devuelve el trafico a traves de la ip no virtual.

Equilicua ... asterisk solo devuelve tráfico por la IP "primaria" del interfaz,
ignorando totalmente por que IP le llegó y por tanto saltandose el estandar a
saco.

> Es decir, tenemos una extension registrada con la 22.22.22.1 y el
> audio pasando por asterisk y los paquetes de subida trabajan con la
> 22.22.22.1 y en los paquetes de bajada le llegan al telefono desde la
> 22.22.22.10.

Y te funciona por la simple magia de que ambas IP's son del mismo rango y
porque en la respuesta SDP Asterisk pone la IP primaria como IP de Media y es
ahí donde el teléfono mandará el tráfico RTP y desde donde Asterisk se lo
enviará al terminal.
De hecho el dialog SIP suele palmarla.

> Si en mi caso funciona , no entiendo porque a ti no. Y ya puesto al
> caso,¿como podria hacer para que en ambos casos el asterisk me
> devolviera el trafico por la ip no virtual?

Si haces trazas SIP, verás que "te funciona" de chiripa.

--
Raúl Alexis Betancor Santana

Dimensión Virtual S.L.

Raúl Alexis Betancor Santana

unread,
Jan 23, 2009, 6:49:07 AM1/23/09
to aster...@googlegroups.com
El Friday 23 January 2009 09:36:45 Iñaki Baz Castillo escribió:
> Creo que Raúl tiene "buenas" experiencias tratando de lograr eso... XD

La única forma semi-limpia de que funcione, es usar siproxd y colgarlo de
ambas IP's y hacer que el flujo sea:

Asterisk <-> siproxd <-> UAC/UAS

Y la config es bastante guarra.

David Calvache

unread,
Jan 23, 2009, 7:00:16 AM1/23/09
to asterisk-es

> Si haces trazas SIP, verás que "te funciona" de chiripa.
>


Conociendo asterisk esta es una repuesta que tomo como muy
aceptable :)

Iñaki Baz Castillo

unread,
Jan 23, 2009, 7:10:15 AM1/23/09
to aster...@googlegroups.com
El Friday 23 January 2009 12:47:30 Raúl Alexis Betancor Santana escribió:
> > Es decir, tenemos una extension registrada con la 22.22.22.1 y el
> > audio pasando por asterisk y los paquetes de subida trabajan con la
> > 22.22.22.1 y en los paquetes de bajada le llegan al telefono desde la
> > 22.22.22.10.
>
> Y te funciona por la simple magia de que ambas IP's son del mismo rango y
> porque en la respuesta SDP Asterisk pone la IP primaria como IP de Media y
> es ahí donde el teléfono mandará el tráfico RTP y desde donde Asterisk se
> lo enviará al terminal.
> De hecho el dialog SIP suele palmarla.

Respuesta chorra en plan pro-Asterisk:
"seguro que eso lo puedes corregir con un AGI"

ops...

Raúl Alexis Betancor Santana

unread,
Jan 23, 2009, 7:57:42 AM1/23/09
to aster...@googlegroups.com
El Friday 23 January 2009 11:16:24 Julian J. M. escribió:
> Una ñapa, la verdad, aunque no creo que sea muy complicado parchear esto.

uy, uy, uy ... que me digas tú que parchear chan_sip no es complicado .. XDD
... hay prácticamente que reescribirlo, porque para empezar hay cosas que
siendo "la misma" las hacen de 3 o 4 formas diferentes, en función del fulano
que desarrolló esa parte.

Saludos

Iñaki Baz Castillo

unread,
Jan 23, 2009, 8:26:57 AM1/23/09
to aster...@googlegroups.com
El Friday 23 January 2009 13:57:42 Raúl Alexis Betancor Santana escribió:
> El Friday 23 January 2009 11:16:24 Julian J. M. escribió:
> > Una ñapa, la verdad, aunque no creo que sea muy complicado parchear esto.
>
> uy, uy, uy ... que me digas tú que parchear chan_sip no es complicado ..
> XDD ... hay prácticamente que reescribirlo, porque para empezar hay cosas
> que siendo "la misma" las hacen de 3 o 4 formas diferentes, en función del
> fulano que desarrolló esa parte.

¿Para qué desarrollar SIP teniendo IAX? IAX es mejor porque permite infinitas
cosas menos que SIP y además emula el sistema de telefonía analógico
prehistórico (señalización y media por el mismo canuto) haciéndose
anti-nescalable para su uso en terminales.
Pero eso da igual porque "IAX es mejor para el NAT..."

Reply all
Reply to author
Forward
0 new messages