Blog en espanol destinado a diferentes temas tecnicos principalmente en IT y Networking. Se desea cubrir Linux, DNS, DNSSEC, RPKI, BGP, Cisco, Programacion (Bash, Python, etc), Protocolos de Enrutamiento, Seguridad en Redes, VoIP.
lunes, 14 de enero de 2013
miércoles, 2 de enero de 2013
DNS64 y NAT64 paso a paso con explicación
Introducción:
DNS64 y NAT64 son dos tecnología diferentes que comunmente trabajan en conjunto.
DNS64 y NAT64 es ideal para colocar en el borde una red donde unicamente existan host con IPv6, algo cada día es más común sobre todo en el mundo de redes celulares y se gran cantidad de sensores.
En Internet hay mucha información sobre como configurar NAT64 y DNS64, la mayoría dice que muy fácil, otros lo colocan más complicado. En lo personal no conseguí ninguna que explicara paso a paso como hacerlo y adicionalmente que explicara la topología de red donde se estaba configurando.
En este post comienzo instalando DNS64 y luego procedemos con NAT64. Se puede instalar en cualquier orden.
Que se necesita antes de comenzar:
- Una subred IPv6 libre (una /96 esta bien) para realizar el mapeo DNS entre IPv4 e IPv6. Esta misma subred la utilizaremos dentro de Tayga para el NAT64
- Logicamente conectividad IPv6 entre los clientes y el servidor DNS64 y NAT64 (no se requiere IPv4)
Topología:
a) Servidor realizando. Solo tiene una interfaz (eth1)
IPv6: 2001:db8:1:1::/64 (eth1).
IPv4: 192.168.124.107
b) IP de un cliente (eth2):
2001:db8:1:1::2/64
c) Subredes IPv6:
Red que "retorna" el DNS64 2001:db8:1:ffff::/96
Pool de NAT en el NAT64: 2001:db8:1:ffff::/96
(si, son el mismo bloque)
d) Interfaz dns64:
192.168.124.107/32
2001:db8:1::1/128
(correcto!, la IPv6 e IPv4 de eth1 se solapan con interfaz dns64)
Procedimiento de DNS64.
Paso 1:
Instalar BIND9:
#aptitude install bind9
Paso 2:
Configurar /etc/bind/named.conf.options:
a) Asegurar que BIND escuche en IPv6 (recordemos que los clientes van a estar en IPv6)
listen-on-v6 { any; };
b) Permitir consultas desde cualquier IP. Si estas utilizando un servidor público o en producción favor restringir las consultas a tus clientes
allow-query { any; };
c) Realizar el DNS64 con la siguiente directiva.
dns64 2001:db8:1:ffff::/96 {
clients {
any; };
};
La configuración del punto "c" lo que indica es que aquellas consultas DNS de aquellos registros que SOLO tienen tienen registro A (no tienen registro AAAA) serán entregadas a los clientes añadiendo 2001:db8::1:ffff::/96
d) Reiniciar bind9
#/etc.init.d/bind9 restart
Probar DNS64:
a) En un PC cliente colocar como servidor DNS: 2001:db8:1:1::1
b) Ubicarse en un cliente y realizar consultar DNS de hosts solo con direcciones IPv4 (registros A). Por ejemplo:
root@ubuntu-VirtualBox:~# dig ipv4.google.com aaaa @2001:db8:1:1::1
; <<>> DiG 9.8.0-P4 <<>> ipv4.google.com aaaa @2001:db8:1:1::1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- 64252="64252" br="br" id:="id:" noerror="noerror" opcode:="opcode:" query="query" status:="status:">;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 4, ADDITIONAL: 0
;; QUESTION SECTION:
;ipv4.google.com. IN AAAA
;; ANSWER SECTION:
ipv4.google.com. 0 IN CNAME ipv4.l.google.com.
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8268
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8269
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:826a
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8293
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8263
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8267
;; AUTHORITY SECTION:
google.com. 171975 IN NS ns1.google.com.
google.com. 171975 IN NS ns4.google.com.
google.com. 171975 IN NS ns2.google.com.
google.com. 171975 IN NS ns3.google.com.
;; Query time: 219 msec
;; SERVER: 2001:db8:1:1::1#53(2001:db8:1:1::1)
;; WHEN: Wed Jan 2 16:11:57 2013
;; MSG SIZE rcvd: 294->
Nota: La parte a destacar en esta salida son las direcciones IPv6 que comienzan por: 2001:db8:1:ffff..., ya en este momento sabemos que DNS64 esta funcionando.
Ahora NAT64
1) Utilizamos Tayga. El sitio oficial y link para descargarlo se encuentra en: http://www.litech.org/tayga/
2) Lo descomprimimos y desempaquetamos:
#tar -jxvf tayga-0.9.2.tar.bz2
#cd tayga-0.9.2
#./configure
#make
#make install
3) Creamos el directorio donde Tayga guardará los logs:
#mkdir /var/log/tayga
4) Editamos el archivo /usr/local/etc/tayga.conf
y copiamos y pegamos:
tun-device nat64
ipv4-addr 192.168.255.1
prefix 2001:db8:1:ffff::/96
dynamic-pool 192.168.255.0/24
data-dir /var/log/tayga
Tayga es stateless y realiza un nat 1:1 entre IPv6 e IPv4. En la configuración anterior a cada cliente IPv6 se le asignará un IP del pool 192.168.255.0/24; por ello si tenemos más de 255 hosts será necesario utililzar un pool más grande que /24. En caso de que tengas IPv4 públicas suficientes puede ser útil para evitar un doble NAT IPv4.
La directiva prefix indica el prefijo que utilizará Tayga para reconocer los 32 bits de IPv4, es decir, cuando el destino IPv6 sea: 2001:db8:1:ffff::/96, Tayga tomará los ultimos 32 bits para reconocer que ese es el destino IPv4
5) Habilitar routing IPv6 e IPv4 en el servidor.
#echo "1" > /proc/sys/net/ipv6/conf/all/forwarding
#echo "1" > /proc/sys/net/ipv4/ip_forward
6) Creación y configuración de la interfaz nat64:
#tayga --mktun
#ip link set nat64 up
#ip addr add 192.168.124.107 dev nat64
#ip addr add 2001:db8:1::1 dev nat64
(estos comandos crean la interfaz nat64 con las direcciones ip 192.168.0.1/32 y 2001:db8:1::1/128, como dije anteriormente no importa que se solape con los IPs de eth1).
Para revisar:
root@aacosta-ThinkPad-E420:~# ifconfig nat64
nat64 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.0.1 P-t-P:192.168.0.1 Mask:255.255.255.255
inet6 addr: 2001:db8:1::1/128 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:2393 errors:0 dropped:0 overruns:0 frame:0
TX packets:2395 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:1615556 (1.6 MB) TX bytes:1614316 (1.6 MB)
7) Creación de rutas:
#ip route add 192.168.255.0/24 dev nat64
#ip route add 2001:db8:1:ffff::/96 dev nat64
8) Ejecutamos Tayga
#tayga -d
(el -d es opcional, solo es para tener más información)
PROBAR NAT64
a) Probamos que todo este bien (el ping debe ser satisfactorio):
root@aacosta-ThinkPad-E420:~# ping6 2001:db8:1:ffff::192.168.0.1
PING 2001:db8:1:ffff::192.168.0.1(2001:db8:1:ffff::c0a8:1) 56 data bytes
64 bytes from 2001:db8:1:ffff::c0a8:1: icmp_seq=109 ttl=63 time=2.18 ms
64 bytes from 2001:db8:1:ffff::c0a8:1: icmp_seq=110 ttl=63 time=0.209 ms
64 bytes from 2001:db8:1:ffff::c0a8:1: icmp_seq=111 ttl=63 time=0.190 ms
64 bytes from 2001:db8:1:ffff::c0a8:1: icmp_seq=112 ttl=63 time=0.126 ms
b) Realizamos NAT con la interfaz IPv4 saliente (solo si el pool IPv4 en Tayga es privado):
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#iptables -A FORWARD -i eth0 -o nat64 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i nat64 -o eth0 -j ACCEPT
c) Ahora solo debes dirigirte a la máquina cliente y todo debe estar funcionando. Ejemplos de ping y trace:
[root@localhost ~]# traceroute6 www.algo.com -n
traceroute to algo-com-prod-elb-170663297.us-east-1.elb.amazonaws.com (2001:db8:1:ffff::36f3:7ac3) from 2001:db8:1:1::2, 30 hops max, 16 byte packets
1 2001:db8:1:1::1 1.224 ms 3.8 ms 0.352 ms
2 2001:db8:1:ffff::c0a8:ff01 0.787 ms 0.772 ms 0.268 ms
3 2001:db8:1:ffff::c0a8:1 0.76 ms 0.869 ms 0.278 ms
[root@localhost ~]# ping6 www.parmalat.com.ve -n
PING www.parmalat.com.ve(2001:db8:1:ffff::c82f:4f04) 56 data bytes
64 bytes from 2001:db8:1:ffff::c82f:4f04: icmp_seq=1 ttl=56 time=7.30 ms
64 bytes from 2001:db8:1:ffff::c82f:4f04: icmp_seq=2 ttl=56 time=5.82 ms
64 bytes from 2001:db8:1:ffff::c82f:4f04: icmp_seq=3 ttl=56 time=5.93 ms
64 bytes from 2001:db8:1:ffff::c82f:4f04: icmp_seq=4 ttl=56 time=8.38 ms
Puedes ver un estado de las asignaciones de Tayga en: /var/log/tayga/dynamic.map
Voila!... todo debe estar funcionado en este momento!
Mas información:
http://www.litech.org/tayga/
http://www.litech.org/tayga/README-0.9.2
http://kurser.iha.dk/eit/itifn/workshops/vne_workshop_2.html
http://ipvsix.me/?tag=tayga
Notas importantes:
- El DNS64 no funciona cuando la respuesta DNS tenga registros AAAA y A. En realidad no es una eroor porque se asume que el host tiene acceso IPv6 a Internet
- Es importante que el DNS64 y NAT64 compartan el mismo prefijo IPv6 (en el ejemplo de este post 2001:db8:1:ffff::/96.
- Durante todo el post describo el procedimiento utilizando la subred IPv6 2001:db8::/32. Favor notar que esta subred debe ser sustituida por sus redes respectivas (al igual que la información referente a IPv4).
- Pueden utilizar 2001:db8::/32 y va a funcionar igualmente pero sin acceso a destinos a IPv6
- El servidor DNS64 y NAT64 pueden ser diferentes equipos/máquinas
to get detailed information about Managed IT Services visit https://wetheitteam.com
DNS64 y NAT64 son dos tecnología diferentes que comunmente trabajan en conjunto.
DNS64 y NAT64 es ideal para colocar en el borde una red donde unicamente existan host con IPv6, algo cada día es más común sobre todo en el mundo de redes celulares y se gran cantidad de sensores.
En Internet hay mucha información sobre como configurar NAT64 y DNS64, la mayoría dice que muy fácil, otros lo colocan más complicado. En lo personal no conseguí ninguna que explicara paso a paso como hacerlo y adicionalmente que explicara la topología de red donde se estaba configurando.
En este post comienzo instalando DNS64 y luego procedemos con NAT64. Se puede instalar en cualquier orden.
Que se necesita antes de comenzar:
- Una subred IPv6 libre (una /96 esta bien) para realizar el mapeo DNS entre IPv4 e IPv6. Esta misma subred la utilizaremos dentro de Tayga para el NAT64
- Logicamente conectividad IPv6 entre los clientes y el servidor DNS64 y NAT64 (no se requiere IPv4)
Topología:
a) Servidor realizando. Solo tiene una interfaz (eth1)
IPv6: 2001:db8:1:1::/64 (eth1).
IPv4: 192.168.124.107
b) IP de un cliente (eth2):
2001:db8:1:1::2/64
c) Subredes IPv6:
Red que "retorna" el DNS64 2001:db8:1:ffff::/96
Pool de NAT en el NAT64: 2001:db8:1:ffff::/96
(si, son el mismo bloque)
d) Interfaz dns64:
192.168.124.107/32
2001:db8:1::1/128
(correcto!, la IPv6 e IPv4 de eth1 se solapan con interfaz dns64)
Procedimiento de DNS64.
Paso 1:
Instalar BIND9:
#aptitude install bind9
Paso 2:
Configurar /etc/bind/named.conf.options:
a) Asegurar que BIND escuche en IPv6 (recordemos que los clientes van a estar en IPv6)
listen-on-v6 { any; };
b) Permitir consultas desde cualquier IP. Si estas utilizando un servidor público o en producción favor restringir las consultas a tus clientes
allow-query { any; };
c) Realizar el DNS64 con la siguiente directiva.
dns64 2001:db8:1:ffff::/96 {
clients {
any; };
};
La configuración del punto "c" lo que indica es que aquellas consultas DNS de aquellos registros que SOLO tienen tienen registro A (no tienen registro AAAA) serán entregadas a los clientes añadiendo 2001:db8::1:ffff::/96
d) Reiniciar bind9
#/etc.init.d/bind9 restart
Probar DNS64:
a) En un PC cliente colocar como servidor DNS: 2001:db8:1:1::1
b) Ubicarse en un cliente y realizar consultar DNS de hosts solo con direcciones IPv4 (registros A). Por ejemplo:
root@ubuntu-VirtualBox:~# dig ipv4.google.com aaaa @2001:db8:1:1::1
; <<>> DiG 9.8.0-P4 <<>> ipv4.google.com aaaa @2001:db8:1:1::1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- 64252="64252" br="br" id:="id:" noerror="noerror" opcode:="opcode:" query="query" status:="status:">;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 4, ADDITIONAL: 0
;; QUESTION SECTION:
;ipv4.google.com. IN AAAA
;; ANSWER SECTION:
ipv4.google.com. 0 IN CNAME ipv4.l.google.com.
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8268
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8269
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:826a
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8293
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8263
ipv4.l.google.com. 300 IN AAAA 2001:db8:1:ffff::4a7d:8267
;; AUTHORITY SECTION:
google.com. 171975 IN NS ns1.google.com.
google.com. 171975 IN NS ns4.google.com.
google.com. 171975 IN NS ns2.google.com.
google.com. 171975 IN NS ns3.google.com.
;; Query time: 219 msec
;; SERVER: 2001:db8:1:1::1#53(2001:db8:1:1::1)
;; WHEN: Wed Jan 2 16:11:57 2013
;; MSG SIZE rcvd: 294->
Nota: La parte a destacar en esta salida son las direcciones IPv6 que comienzan por: 2001:db8:1:ffff..., ya en este momento sabemos que DNS64 esta funcionando.
Ahora NAT64
1) Utilizamos Tayga. El sitio oficial y link para descargarlo se encuentra en: http://www.litech.org/tayga/
2) Lo descomprimimos y desempaquetamos:
#tar -jxvf tayga-0.9.2.tar.bz2
#cd tayga-0.9.2
#./configure
#make
#make install
3) Creamos el directorio donde Tayga guardará los logs:
#mkdir /var/log/tayga
4) Editamos el archivo /usr/local/etc/tayga.conf
y copiamos y pegamos:
tun-device nat64
ipv4-addr 192.168.255.1
prefix 2001:db8:1:ffff::/96
dynamic-pool 192.168.255.0/24
data-dir /var/log/tayga
Tayga es stateless y realiza un nat 1:1 entre IPv6 e IPv4. En la configuración anterior a cada cliente IPv6 se le asignará un IP del pool 192.168.255.0/24; por ello si tenemos más de 255 hosts será necesario utililzar un pool más grande que /24. En caso de que tengas IPv4 públicas suficientes puede ser útil para evitar un doble NAT IPv4.
La directiva prefix indica el prefijo que utilizará Tayga para reconocer los 32 bits de IPv4, es decir, cuando el destino IPv6 sea: 2001:db8:1:ffff::/96, Tayga tomará los ultimos 32 bits para reconocer que ese es el destino IPv4
5) Habilitar routing IPv6 e IPv4 en el servidor.
#echo "1" > /proc/sys/net/ipv6/conf/all/forwarding
#echo "1" > /proc/sys/net/ipv4/ip_forward
6) Creación y configuración de la interfaz nat64:
#tayga --mktun
#ip link set nat64 up
#ip addr add 192.168.124.107 dev nat64
#ip addr add 2001:db8:1::1 dev nat64
(estos comandos crean la interfaz nat64 con las direcciones ip 192.168.0.1/32 y 2001:db8:1::1/128, como dije anteriormente no importa que se solape con los IPs de eth1).
Para revisar:
root@aacosta-ThinkPad-E420:~# ifconfig nat64
nat64 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.0.1 P-t-P:192.168.0.1 Mask:255.255.255.255
inet6 addr: 2001:db8:1::1/128 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:2393 errors:0 dropped:0 overruns:0 frame:0
TX packets:2395 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:1615556 (1.6 MB) TX bytes:1614316 (1.6 MB)
7) Creación de rutas:
#ip route add 192.168.255.0/24 dev nat64
#ip route add 2001:db8:1:ffff::/96 dev nat64
8) Ejecutamos Tayga
#tayga -d
(el -d es opcional, solo es para tener más información)
PROBAR NAT64
a) Probamos que todo este bien (el ping debe ser satisfactorio):
root@aacosta-ThinkPad-E420:~# ping6 2001:db8:1:ffff::192.168.0.1
PING 2001:db8:1:ffff::192.168.0.1(2001:db8:1:ffff::c0a8:1) 56 data bytes
64 bytes from 2001:db8:1:ffff::c0a8:1: icmp_seq=109 ttl=63 time=2.18 ms
64 bytes from 2001:db8:1:ffff::c0a8:1: icmp_seq=110 ttl=63 time=0.209 ms
64 bytes from 2001:db8:1:ffff::c0a8:1: icmp_seq=111 ttl=63 time=0.190 ms
64 bytes from 2001:db8:1:ffff::c0a8:1: icmp_seq=112 ttl=63 time=0.126 ms
b) Realizamos NAT con la interfaz IPv4 saliente (solo si el pool IPv4 en Tayga es privado):
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#iptables -A FORWARD -i eth0 -o nat64 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i nat64 -o eth0 -j ACCEPT
c) Ahora solo debes dirigirte a la máquina cliente y todo debe estar funcionando. Ejemplos de ping y trace:
[root@localhost ~]# traceroute6 www.algo.com -n
traceroute to algo-com-prod-elb-170663297.us-east-1.elb.amazonaws.com (2001:db8:1:ffff::36f3:7ac3) from 2001:db8:1:1::2, 30 hops max, 16 byte packets
1 2001:db8:1:1::1 1.224 ms 3.8 ms 0.352 ms
2 2001:db8:1:ffff::c0a8:ff01 0.787 ms 0.772 ms 0.268 ms
3 2001:db8:1:ffff::c0a8:1 0.76 ms 0.869 ms 0.278 ms
[root@localhost ~]# ping6 www.parmalat.com.ve -n
PING www.parmalat.com.ve(2001:db8:1:ffff::c82f:4f04) 56 data bytes
64 bytes from 2001:db8:1:ffff::c82f:4f04: icmp_seq=1 ttl=56 time=7.30 ms
64 bytes from 2001:db8:1:ffff::c82f:4f04: icmp_seq=2 ttl=56 time=5.82 ms
64 bytes from 2001:db8:1:ffff::c82f:4f04: icmp_seq=3 ttl=56 time=5.93 ms
64 bytes from 2001:db8:1:ffff::c82f:4f04: icmp_seq=4 ttl=56 time=8.38 ms
Puedes ver un estado de las asignaciones de Tayga en: /var/log/tayga/dynamic.map
Voila!... todo debe estar funcionado en este momento!
Mas información:
http://www.litech.org/tayga/
http://www.litech.org/tayga/README-0.9.2
http://kurser.iha.dk/eit/itifn/workshops/vne_workshop_2.html
http://ipvsix.me/?tag=tayga
Notas importantes:
- El DNS64 no funciona cuando la respuesta DNS tenga registros AAAA y A. En realidad no es una eroor porque se asume que el host tiene acceso IPv6 a Internet
- Es importante que el DNS64 y NAT64 compartan el mismo prefijo IPv6 (en el ejemplo de este post 2001:db8:1:ffff::/96.
- Durante todo el post describo el procedimiento utilizando la subred IPv6 2001:db8::/32. Favor notar que esta subred debe ser sustituida por sus redes respectivas (al igual que la información referente a IPv4).
- Pueden utilizar 2001:db8::/32 y va a funcionar igualmente pero sin acceso a destinos a IPv6
- El servidor DNS64 y NAT64 pueden ser diferentes equipos/máquinas
to get detailed information about Managed IT Services visit https://wetheitteam.com
jueves, 27 de diciembre de 2012
Que hacer cuando falla "clear line N" en Cisco
Caso:
Al realizar un "clear line" en Cisco para desconectar una sesión Telnet o SSH sencillamente sigue apareciendo el usuario.
Ejemplo:
IMP#sh user
Line User Host(s) Idle Location
2 vty 0 aacosta idle 00:00:01 a.b.c.d
* 4 vty 2 pepe idle 00:00:00 xx.yy.zz.dd
Queremos sacar a pepe del equipo y realizamos:
IMP#clear line vty 2
y sigue apareciendo:
IMP#who
Line User Host(s) Idle Location
2 vty 0 aacosta idle 00:00:39 a.b.c.d
* 4 vty 2 pepe idle 00:00:00 xx.yy.zz.dd
Procedimiento y solución:
Hay dos manera de hacerlo:
a) Manera rápida y 99% seguro que funciona (y menos probabilidades de error de dañar otra cosa). En vez de utilizar "clear line vty" utilizaremos "clear tcp line":
Así (nuevamente para desconectar a pepe):
IMP#clear tcp line 2
[confirm]
[OK]
Al realizar un "clear line" en Cisco para desconectar una sesión Telnet o SSH sencillamente sigue apareciendo el usuario.
Ejemplo:
IMP#sh user
Line User Host(s) Idle Location
2 vty 0 aacosta idle 00:00:01 a.b.c.d
* 4 vty 2 pepe idle 00:00:00 xx.yy.zz.dd
Queremos sacar a pepe del equipo y realizamos:
IMP#clear line vty 2
y sigue apareciendo:
IMP#who
Line User Host(s) Idle Location
2 vty 0 aacosta idle 00:00:39 a.b.c.d
* 4 vty 2 pepe idle 00:00:00 xx.yy.zz.dd
Procedimiento y solución:
Hay dos manera de hacerlo:
a) Manera rápida y 99% seguro que funciona (y menos probabilidades de error de dañar otra cosa). En vez de utilizar "clear line vty" utilizaremos "clear tcp line":
Así (nuevamente para desconectar a pepe):
IMP#clear tcp line 2
[confirm]
[OK]
b) Manera más drástica:
Buscamos las conexiones TCP que tenga el router en ese momento. Para ello utilizamos el comando "show tcp brief". Filtramos el puerto 23 (Telnet) o 22 (SSH) según sea el caso. Por ejemplo:
IMP#show tcp brief | i \.23_
63820270 n.n.n.n.23 a.b.c.d.56691 ESTAB
637E1AC0 x.x.x.x.23 xx.yy.zz.dd.39431 ESTAB
El valor del lado izquiero es la dirección dentro del TCB (TCP Block), esto es precisamente la conexión TCP que estaremos eliminando.
El comando es el siguiente:
IMP#clear tcp tcb 637E1AC0
NOTA: Favor estar seguros antes de eliminar la sesión TCP, recuerden que el router puede tener conexiones HTTP, BGP y otras importantes.
Suerte, espero haya sido útil,
viernes, 7 de diciembre de 2012
Solucion: Apache solo escucha sobre IPv6
Situación:
Apache solo funciona sobre IPv6
Troubleshoooting:
a) Para que escuche en IPv4:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar por ejemplo:
Listen 192.168.1.10:80
Se pueden colocar varias directivas Listen. Tales como:
Listen 192.168.1.10:80
Listen 127.0.0.1:80
Para escuchar en todo IPv4 (cualquier IPv4 configurado en el server):
Listen 0.0.0.0:80
b) Para escuchar en IPv6:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar <[direccionIPv6]:puerto>. Por ejemplo:
Listen [2001:db8::4]:80
Reiniciar apache..., por ejemplo: /etc/init.d/apache2 restart
Diagnóstico:
Para saber que servicios, a que direcciones IP escucha y que proceso esta asociado recomiendo utilizar el comando: netstat -pan
#netstat -pan | more
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 965/mysqld
tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1162/perl
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8478/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 816/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 192.168.1.10:22 192.168.1.2:57997 ESTABLISHED 19601/sshd: aacosta
tcp6 0 0 ::1:587 :::* LISTEN 1020/sendmail: MTA:
tcp6 0 0 :::80 :::* LISTEN 1134/apache2
tcp6 0 0 :::22 :::* LISTEN 816/sshd
En el extracto anterior la ultima linea indica que se está escuchando en todas las direcciones IPv6 (se puede comprender gracias a la culumna de la izquiera que indica tcp6 y luego en la cuarta columa indica ::22). El puerto está en estado listen por el proceso sshd y el pid 816
Para el primera linea se entiende que mysqld está escuchando en la dirección IPv4 127.0.0.1 en el puerto 3306 bajo el pid (process id) 965. Es decir, mysql no esta habilitado para escuchar conexiones de red (solo escucha localhost)
Mas información:
- http://serverfault.com/questions/332409/how-to-set-apache-virtualhost-to-work-with-ipv6- http://www.linuxweblog.com/blogs/sandip/20081027/forcing-apache-listen-ipv4
- http://www.linuxask.com/questions/limit-apache-only-listen-to-ipv4-address
Apache solo funciona sobre IPv6
Troubleshoooting:
a) Para que escuche en IPv4:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar
Listen 192.168.1.10:80
Se pueden colocar varias directivas Listen. Tales como:
Listen 192.168.1.10:80
Listen 127.0.0.1:80
Para escuchar en todo IPv4 (cualquier IPv4 configurado en el server):
Listen 0.0.0.0:80
b) Para escuchar en IPv6:
- Editar el archivo /etc/apache2/ports.conf
- En la directiva Listen colocar <[direccionIPv6]:puerto>. Por ejemplo:
Listen [2001:db8::4]:80
Reiniciar apache..., por ejemplo: /etc/init.d/apache2 restart
Diagnóstico:
Para saber que servicios, a que direcciones IP escucha y que proceso esta asociado recomiendo utilizar el comando: netstat -pan
#netstat -pan | more
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 965/mysqld
tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1162/perl
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8478/vsftpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 816/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1020/sendmail: MTA:
tcp 0 0 192.168.1.10:22 192.168.1.2:57997 ESTABLISHED 19601/sshd: aacosta
tcp6 0 0 ::1:587 :::* LISTEN 1020/sendmail: MTA:
tcp6 0 0 :::80 :::* LISTEN 1134/apache2
tcp6 0 0 :::22 :::* LISTEN 816/sshd
En el extracto anterior la ultima linea indica que se está escuchando en todas las direcciones IPv6 (se puede comprender gracias a la culumna de la izquiera que indica tcp6 y luego en la cuarta columa indica ::22). El puerto está en estado listen por el proceso sshd y el pid 816
Para el primera linea se entiende que mysqld está escuchando en la dirección IPv4 127.0.0.1 en el puerto 3306 bajo el pid (process id) 965. Es decir, mysql no esta habilitado para escuchar conexiones de red (solo escucha localhost)
Mas información:
- http://serverfault.com/questions/332409/how-to-set-apache-virtualhost-to-work-with-ipv6- http://www.linuxweblog.com/blogs/sandip/20081027/forcing-apache-listen-ipv4
- http://www.linuxask.com/questions/limit-apache-only-listen-to-ipv4-address
miércoles, 5 de diciembre de 2012
Instalar Skype en Mandriva Linux 2012.0 (Cooker) 64 bits
Situación:
Deseo instalar Skype en Mandriva Cooker 2012 de 64 bits
Solución:
Tan fácil como (tomado de:
http://nafcom.blogspot.com/2012/06/installing-skype-for-linux-on-mandriva.html)
#urpmi.addmedia tmp_Main_32_release http://mirror.yandex.ru/mandriva/official/2011/i586/media/main/release
#urpmi.addmedia tmp_Main_32_updates http://mirror.yandex.ru/mandriva/official/2011/i586/media/main/updates
#urpmi.addmedia tmp_MIB_Basic_64 http://mib.pianetalinux.org/MIB/2011.0/64/basic/
#urpmi skype --allow-suggest --auto --force
#urpmi.removemedia tmp_Main_32_release
#urpmi.removemedia tmp_Main_32_updates
#urpmi.removemedia tmp_MIB_Basic_64
Importante:
No intenten el rpm de Suse de 64 bits ;-)
Mas información (post original):
http://nafcom.blogspot.com/2012/06/installing-skype-for-linux-on-mandriva.html
Deseo instalar Skype en Mandriva Cooker 2012 de 64 bits
Solución:
Tan fácil como (tomado de:
http://nafcom.blogspot.com/2012/06/installing-skype-for-linux-on-mandriva.html)
#urpmi.addmedia tmp_Main_32_release http://mirror.yandex.ru/mandriva/official/2011/i586/media/main/release
#urpmi.addmedia tmp_Main_32_updates http://mirror.yandex.ru/mandriva/official/2011/i586/media/main/updates
#urpmi.addmedia tmp_MIB_Basic_64 http://mib.pianetalinux.org/MIB/2011.0/64/basic/
#urpmi skype --allow-suggest --auto --force
#urpmi.removemedia tmp_Main_32_release
#urpmi.removemedia tmp_Main_32_updates
#urpmi.removemedia tmp_MIB_Basic_64
Importante:
No intenten el rpm de Suse de 64 bits ;-)
Mas información (post original):
http://nafcom.blogspot.com/2012/06/installing-skype-for-linux-on-mandriva.html
lunes, 19 de noviembre de 2012
Realizar copy/paste en aquellos websites que tienen deshabilitado click derecho y el boton de control
Introducción:
Quizás te sientas frustado como yo porque algunas pocas páginas no permiten realizar copiar/pegar (copy/paste). Creo yo que lo hacen pensando en la seguridad de la página y del website en general. Esto lo respeto mucho. Pero en fin, en mi caso particular me pasaba con la página de un banco donde no puedo realizar ni el copy de un número de transferencia ni podía realizar un paste de un número de cuenta a la que deseo transferir.
Situación:
El día de hoy necesitaba trabajar sobre la página de dicho banco y me propuse a conseguir la solución.
Solución:
La solución es muy sencilla, seguramente al hacer click derecho o presionar la tecla "control" (Ctrl) te aparece un error Javascript indicando "Función no permitida". Lo que debes hacer es lo siguiente:
1) Selecciona el texto que deseas copiar
2) Presiona la tecla control (NO LA SUELTES)
Aparecerá el mensaje "Función no permitida"
3) Haz click sobre Ok/Aceptar en el recuadro del mensaje (SIN HABER SOLTADO LA TECLA CONTROL)
4) Presiona la tecla "c" y listo, tienes el texto en el portapapeles listo para pegar en cualquier sitio (block de notas, email, etc)
Para pegar es el procedimiento parecido, el truco son los pasos 2 y 3. Recuerdo que los navegadores permiten gran cantidad de funciones con la tecla Control.
Suerte, espero te sea útil, para mi es genial.
Quizás te sientas frustado como yo porque algunas pocas páginas no permiten realizar copiar/pegar (copy/paste). Creo yo que lo hacen pensando en la seguridad de la página y del website en general. Esto lo respeto mucho. Pero en fin, en mi caso particular me pasaba con la página de un banco donde no puedo realizar ni el copy de un número de transferencia ni podía realizar un paste de un número de cuenta a la que deseo transferir.
Situación:
El día de hoy necesitaba trabajar sobre la página de dicho banco y me propuse a conseguir la solución.
Solución:
La solución es muy sencilla, seguramente al hacer click derecho o presionar la tecla "control" (Ctrl) te aparece un error Javascript indicando "Función no permitida". Lo que debes hacer es lo siguiente:
1) Selecciona el texto que deseas copiar
2) Presiona la tecla control (NO LA SUELTES)
Aparecerá el mensaje "Función no permitida"
3) Haz click sobre Ok/Aceptar en el recuadro del mensaje (SIN HABER SOLTADO LA TECLA CONTROL)
4) Presiona la tecla "c" y listo, tienes el texto en el portapapeles listo para pegar en cualquier sitio (block de notas, email, etc)
Para pegar es el procedimiento parecido, el truco son los pasos 2 y 3. Recuerdo que los navegadores permiten gran cantidad de funciones con la tecla Control.
Suerte, espero te sea útil, para mi es genial.
viernes, 19 de octubre de 2012
Normas o reglas en Listas de Correo (Netiquette)
En líneas generales a la hora de estar en una lista de correo (mailing-list) uno debe comportarse igual o mejor a como lo haríamos en nuestra vida diaria.
Aquí dejo una lista de normas que de manera general son convenientes seguir en todas aquellas listas de correo en las que participemos. Muchas a su vez sirven de nuestra vida diaria en el uso del correo electrónico.
1.- Respete las normas (este listado).
2.- Para enviar nuevos correos
a la lista:
- No contestar un correo comenzando un nuevo subject
- No contestar un correo y cambiar el subject y el tema
- No contestar un correo, mantener el subject y comenzar un nuevo tema
- Crear un correo completamente nuevo y enviarlo a la dirección de la lista
3.- El correo a enviar a la
lista debe ser relacionado con tópico de la misma.
4.- Evitar correos OFF-TOPIC
al menos que sean muy esporádicos o pueda considerarse de interés a
los participantes de la lista.
5.- Enfrentamientos, malas
palabras, groserías son visto con mal gusto por parte del resto de
los participantes.
6.- Es una demostración de
cortesía ante los integrantes del grupo:
- Si usted comentió un error: reconocerlo
- Ser humilde en sus respuestas a pesar de sus conocimientos
- Enviar respuestas directas a las preguntas
- Suscribirse con una cuenta de correo donde no utilice Auto-Responder
- Ser cordial, decir buenos días, gracias, por favor, me gustaría, entre otros
- Compartir tus conocimientos con los otros
- Respetar la privacidad de los demás
6.- El correo máximo por
línea debe contener 75 caracteres
7.- Se aconseja el uso de
emoticones como: :-(, :-) ellos ofrecen cuerpo al mensaje y
mejora la intención del mismo expresando mejor chistes, mensajes
sarcásticos, etc.
8.- Es una buena práctica
contestar dentro del cuerpo del correo anterior, el mismo utilizar el
cáracer “ >” como indicador del correo previo
9.- Borrar el final de algunos
correos (información de Antivirus y cosas no relevantes de la
conversación)
10.- No escribir correos todo
en mayúsculas ni todo en minúsculas. Un correo en MAYÚSCULAS
indica que estás gritando.
11.- Para destacar argumentos
dentro del correo se recomienda usar comillas o raya inferior (_)
alrededor de la palabra
12.- Se prohiben mensajes:
SPAM y/o cualquier correo relacionado a publicidad de un producto,
venta de servicios o productos, políticos, religiosos y otras
indoles que puedan considerarse de mal gusto a los participantes.
13.- Se cuidadoso con ciertas
palabras (slangs), recuerda que hay personas de diferentes países y
nacionalidades que potencialmente pueden leer tu correo. El
significado de cierta palabra no es la misma para tí que para el
receptor.
14.- Evitar mensajes
unilaterales en la lista
15.- Para algunos integrantes
puede ser mal visto enviar un correo a muchas listas de correo
simultáneamente. Favor crear un correo por cada lista a la que se
desea enviar.
16.- Favor incluir -al menos-
tu nombre en el correo. Esto es particularmente importante en
aquellos participantes que usan direcciones de correo donde no
aparece el nombre o cuentas de correo genéricas (noc@...
routing@... ventas@)
17.- Favor revisa el correo
antes de enviarlo.
18.- Configura la hora
correcta de tu cliente de correo electrónico, basado en timezone.
19.- Se tolerante en los
debates. Objetivo en las discusiones
20.- Por ultimo: "Se
tolerante con lo que recibes, se precavido con lo que envías".
Recuerda que un correo tuyo es potencialmente leído por otras
personas.
Espero sea útil,
Suscribirse a:
Entradas (Atom)
Se viene esta palabra: noiafobia
noiafobia = No Inteligencia Artificial Fobia o noaifobia = No Artificial Intelligence Fobia
-
Debido al crecimiento moderado que ha tenido el presente blog se me ocurrió añadir/integrar las estadisticas de google analytics a mi blog. ...
-
Introduccion: En algunas ocasiones es necesario "bajar" o deshabilitar iptables en nuestro Linux, el procedimiento depende de...
-
Saludos, Lo primero que debemos de hacer para quitar el stacking entre los switches es desconectar los cables Stack que los unen.... Es buen...