Como ya sabréis, para hacer NAT por puertos en un router cisco, hay que añadir una línea por cada uno de ellos, del tipo:
ip nat inside source static tcp 192.168.2.3 8080 X.X.X.X 8080 route-map nonat extendable
Aquí estamos NATeando el puerto 8080 a la máquina 192.168.2.3 de nuestra red, donde X.X.X.X es la ip pública nuestra.
Pero el problema es, si queremos NATear un rango entero de puertos…. por ejemplo…. publicamos nuestro servidor de VoIP y necesitamos del 10000 al 20000 UDP para el media y el 5060 UDP para el signaling.
La pesadilla puede ser tremenda…. aunque no es necesario para la voIP los 10000 puertos, pero hacer un rango de 10 o 20, es poco elegante, más si nuestro router ya tiene más nats hechos, con lo que la config se puede volver muuuuy larga.
hace unos días, leyendo documentación de cisco por otros temas, veo el NAT ROTARY, siendo la definición de cisco:
Destination Address Rotary Translation
A dynamic form of destination translation can be configured for some outside-to-inside traffic. Once a mapping is set up, a destination address matching one of those on an access list will be replaced with an address from a rotary pool. Allocation is done in a round-robin basis, performed only when a new connection is opened from the outside to the inside. All non-TCP traffic is passed untranslated (unless other translations are in effect).
Y vemos la palabra mágica:
Destination address matching one of those on an access list
Vamos a investigar un poco:
Primero, hacemos el access-list para los puertos de nuestro VoIP server:
ip access-list extended voip
permit udp any any eq 5060
permit udp any any range 10000 20000
Y ahora el nat con el access-list, contra la ip 192.168.2.5, que será nuestro VoIP Server:
ip nat pool ASTERISK 192.168.2.5 192.168.2.5 netmask 255.255.255.0 type rotary
Finalmente, la destinación del NAT con la ACL:
ip nat inside destination list voip pool ASTERISK
Y ahora, enjoy the nat!!!, hasta que llegue el IPv6.
Te felicito realmente por tu blog, siempre que lo visito encuentro información interesante.
Gracias
por algina razon no funciono el ip acceslist
Si no te va, es por lo siguiente:
– IOS muy antÃgua
– El router no lo soporta (he probado en 87x, 180x, 28XX y 38xx y sà que funciona)
salu2
Hice lo que pusiste ahi, tengo conexión de salida… osea puedo llamar a otro telefono por VoIP pero no se realiza la comunicación, quiere decir que cuando hablan las 2 personas en la llamada… no se escuchan entre si.
eso es para la entrada… debes de tener más problemas de NAT o de configuración.
El problema de audio es por el RTP que no pasa el NAT o no tienes bien configurada la parte externa en tu centralita.
Revisa los puertos y la config de tu centralita.
Te comento mi NAT.
Tengo en primer lugar un estatico que es asi:
ip nat inside source static udp x.x.x.x (ip del asterisk) 5060 interface Fastethernet0/0 5060
De ahi tengo el NAT rotativo:
ip nat pool ASTERISK x.x.x.x x.x.x.x (la ip de mi asterisk) m.m.m.m (mascara) type rotary
en ese pool la ip inicial y final es la misma.
ip nat inside destination list voip pool ASTERISK
ip access-list extended voip
permit udp any any eq 5060
permit udp any any range 10000 20000
Quisiera saber que mas me faltaria o en que he cometido el error.
Gracias.
en el sip.conf tienes bien definido el externalip y localip ???
pega por aquà el sip.conf y a ver que puede ser..
lo que me olvidaba comentar, tengo 2 internets, cuando salgo por uno que es ADSL abro los puertos en el router sencillo que me brinda ese ISP y puedo establecer la comunicación, todo bien.
Cuando entro al internet con mi router cisco 1841 ahà tengo el inconveniente que muestro.
sip.conf ????
prueba deshabilitar el alg en el cisco, aunque no creo que sea eso:
http://diablo.craem.net/wordpress/?p=53
¿ es un peer, proveedor, cliente ??
el sip.conf no lo he tocado el arhivo que he modificado algo es el sip.nat… que diferencia habria entre modificar esos archivos???.. y si me puedes enviar un ejemplo de como deberian estar configurados ambos archivos. muchas gracias por tu ayuda.
sip.nat ??? no existe. eso.
Estás usando asterisk??? freepbx ?? elastix ???
estoy usando elastix
puff… derivados y enlatados de asterisk; no domino elastix / freepbx.
estoy seguro que es tema de configuración del sip.conf
Hola, ya tengo bien mi configuracion, funcionan mis anexos ya me registran bien, llamo de fuera hacia mi elastix y me comunico bien el unico inconveniente es en llamadas de extensiones remotas que no pasan la voz, quiere decir: que yo de mi celular(configurado a mi elastix) llamo a un telefono externo y no me comunica. Por eso es que digo que es una extensión remota.
Te agradeceria bastante si me pudieses orientar en esto, pienso que es un problema en el NAT he buscado en otros foros y no dan una respuesta exacta, agradeceria nuevamente tu ayuda.
ip nat inside source static 192.168.0.213 190.119.217.173 route-map Asterix
ip access-list extended PBX
permit udp host 192.168.0.213 range 10000 20000 any
route-map Asterix permit 10
match ip address PBX