VPSs y mas.

Mostrando entradas con la etiqueta mandriva. Mostrar todas las entradas
Mostrando entradas con la etiqueta mandriva. Mostrar todas las entradas

martes, 9 de diciembre de 2014

Linux - Touchpad no funciona al primer arranque pero si al reiniciar

Situacion:
  El touchpad de la laptop no funciona la primera vez que arranca la laptop/computadora pero si al reiniciar la misma

Solucion:
  1. Edita el archivo /etc/default/grub (NO es grub.cfg)

  2. Ubica la siguiente linea:
  GRUB_CMDLINE_LINUX=" "

  3. Agrega lo siguiente entre "":
  i8042.nomux=1 locale=fr_FR i8042.reset

  4. La linea debe quedar asi:
  GRUB_CMDLINE_LINUX="i8042.nomux=1 locale=fr_FR i8042.reset"

  5. Graba el archivo y sal.

  6. En el terminar ejecuta:
  #sudo update-grub

  7. Listo, apaga y prende tu computadora.


Creditos a:
http://ubuntuforums.org/showthread.php?t=2217553

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


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

jueves, 6 de septiembre de 2012

Tunel GRE entre Cisco y Linux + NAT

Introducción:
  En el siguiente escenario se plantean dos oficinas conectadas mediante un tunel GRE. En la oficina "A" existe un router Cisco y en la oficina "B" un servidor Linux.

Objetivo:
  Que la oficina "A" (la red con el router Cisco) salga a Internet (nateada) con el IP de la red de la oficina "B" (red con el servidor Linux)


Topologia:
 
Lado Cisco (Oficina A):
   LAN: 192.168.56.6
   WAN: 98.76.54.32
   TUNNEL 0: 192.168.56.6

Lado Linux (Oficina B):

   LAN: 192.168.1.200/24  (gre_if0)
   WAN: 123.45.67.89 (Interfaz: venet0:0)

Pasos (lado equipo Linux):
1) Levantar el modulo GRE
  #modprobe ip_gre

2) Crear la interfaz del tunel (llamada gre_if0). Puede tener cualquier nombre:
   #ip tunnel add gre_if0 mode gre remote 98.76.54.32 local 123.45.67.89 ttl 255

3) Asignarle un IP a la interfaz recien creada (gre_if0)
   #ip addr add 192.168.1.200/24 dev gre_if0

4) Levantar la interfaz del tunel (por defecto viene shutdown)
   #ip link set gre_if0 up (Levantar la interfaz gre_if0)

5) Enrutar por el tunel aquellas rutas que sean necesarias, por ejemplo: 
   #route add -net 192.168.56.6 netmask 255.255.255.255 dev gre_if0

Pasos (lado Cisco)



!Creación de la interfaz tunel
interface Tunnel0
 ip unnumbered FastEthernet0/0
 tunnel source Vlan1
 tunnel destination 123.45.67.89
 

!Configuración de la interfaz LAN
interface FastEthernet0/0
 description **Conexion LAN**
 ip address 192.168.56.6 255.255.255.252
 duplex auto
 speed auto
 

!La interfaz VLAN1 es la interfaz WAN
interface Vlan1
 description **Conexion WAN**
 ip address 98.76.54.32 255.255.255.248
 

!Hacer las rutas necesarias en el router
!para alcanzar la LAN de la oficina B
ip route 192.168.1.200 255.255.255.255 Tunnel0


PARA EL NAT (LADO LINUX):

1) Permitir routing en el equipo
  # echo 1 > /proc/sys/net/ipv4/ip_forward

2) Que el servidor Linux sepa alcanzar la LAN de Oficina A
   #route add -net 192.168.56.0 netmask 255.255.255.0 dev gre_if0


3) Realizar el NAT
   # iptables -A POSTROUTING -t nat -s 192.168.56.0/24 -j SNAT --to 123.45.67.89





  Notese que hubo que hacer Source NAT (SNAT). La explicación del motivo está indicada en el post: "Linux iptables, solucion al error: Warning: wierd character in interface"

 
Espero te sea útil,

domingo, 2 de septiembre de 2012

Deshabilitar/bajar iptables en Linux

Introduccion:
   En algunas ocasiones es necesario "bajar"  o deshabilitar iptables en nuestro Linux, el procedimiento depende de la distribución de Linux que estes utilizando. Aquí te dejo los más conocidos.

1) Procedimiento si estas utilizando Redhat, Fedora core, Mandriva/Mandrake o Centos, solo debes  ejecutar lo siguiente:
# service iptables save
# service iptables stop
# chkconfig iptables off
o
# /etc/init.d/iptables stop


2) Procedimiento para deshabilitar iptables en Debian o Ubuntu

  a) Crea un script llamado fw.stop con el siguiente contenido:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

  b) Dale permiso de ejecución a dicho script:

# chmod +x /root/fw.stop
o
# chmod 755 fw.stop

  c) Puedes ejecutar el scritp con el siguiente comando:
# fw.stop

Mas info en:
http://sources68.com/linux-disable-remove-the-iptables-firewall-1fa67761.html




jueves, 5 de julio de 2012

Linux con soporte CDP

El día de hoy tuve una necesidad donde necesitaba que Linux hablara CDP para realizar unas pruebas con Cisco, en fin, es bastante fácil y por ello lo dejo aquí:

Objetivo:
  Que linux hablé/soporte CDP

Pasos:

1) Bajar el paquete CDP: wget http://gpl.internetconnection.net/files/cdp-tools.tar.gz
2) Compilar el paquete:
   Tuve que bajar cierta cantidad de paquetes para poder compilar el mismo, les dejo lo que tuve que bajar:


  #apt-get install build-essential
  #apt-get install libnet0-dev
  #aptitude install libpcap0.8-dev
  #aptitude install libnet1-dev


3) Ahora si podemos compilar:
  #make

4) Listo!. Ejecutar: ./cdp-send eth0

Revisar que todo funcione:

1) Por ejemplo en un LAN Switch Cisco:

SW1#sh cdp neighbors        
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater


Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
ubuntu           Fas 0/30           127          H        x86_64    eth0



2) SW1-PQC-OESTE#sh cdp neighbors detail 
-------------------------
Device ID: ubuntu
Entry address(es): 
  IP address: 192.N.1X.86
Platform: x86_64,  Capabilities: Host 
Interface: FastEthernet0/30,  Port ID (outgoing port): eth0
Holdtime : 141 sec


Version :
Linux 3.2.0-24-generic


advertisement version: 2
Management address(es): 


También se puede colocar la interfaz a escuchar CDPs:

# ./cdp-listen eth0

# Interface: eth0
# Hostname: SEP0004f2113d06
# Address: 10.0.0.65
#
# TimeToLive: 180
# Capabilities: L3TXRX(host) unknown(00000090)
#
# Networks:


Más información:
- http://openmaniak.com/cdp.php

Espero les sea útil!!


martes, 26 de junio de 2012

Arrancar/bootear Mandriva sin X

Mini historia:

  Aunque parezca mentira hacer arrancar Mandriva sin interfaz gráfica (X) ha sido una verdadera pesadilla.

  Quizás algunos de ustedes agradezcan este post :)  en fin solo deseo que sea útil. Allí va:


Objetivo:
  Arrancar Mandriva Linux sin interfaz gráfica (para ahorrar memoria, CPU, seguridad, no lo necesito o sencillamente no quiero X)


Intentos infructuosos:
  Luego de muchos intentos donde se incluye la teoria de colocar Unix en runlevel 3 para multiuser en /etc/inittab, bueno, todo eso no funciona.

  Entre otras cosas también intenté link al estilo:



ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
(tampoco funciona)



Intenté también:

chkconfig --level 234567 dm off
(tampoco funciona)


   Y muchas otras cosas que me hicieron perder el tiempo

Solución definitiva:
  La solución ni siquiera fue por el OS, sino por el GRUB!, la solución es indicar en menu.lst al final de la linea el runlevel con el que deseas arrancar.
  Por ejemplo:

#more /boot/grup/menu.lst



title linux
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=c578d361-dc13-4821-ba42-e
f01abc2c55c  nokmsboot logo.nologo quiet resume=UUID=48a9d362-4b8c-40da-a0a4-775
c6072f2ac splash=silent vga=788 3
initrd (hd0,0)/boot/initrd.img


  Noten el "3" al final de la linea.

  Luego reinician el equipo y listo!!

Importante:
  Es posible que deben utilizar la combinación ALT+F2, ALT+F3, etc para moverse entre los vty, de igual manera recordemos que runleven 3 es multiuser y networking.


Suerte!,











lunes, 18 de junio de 2012

Cliente SSH dura varios segundos para conectarse

Otro post sumamente rápido (pero útil):

Caso:
  Cuando intento conectarme a un servidor SSH (Linux server) el mismo dura varios segundos antes de pedir login/password.
  Esto es muy comun en servidores que no tienen acceso a Internet o DNSs mal configurados.

  Ocurre que cuando intentamos conectarnos al SSH Server intenta hacer una solicitud de DNS reverso para IP origen (de donde nos intentamos conectar).

  Por ejemplo, si quiero conectarme desde el equipo 192.168.1.2 al servidor SSH ubicado en el IP 10.1.1.21, este último, durante la conexión intentará buscar el reverso del IP 192.168.1.2.  El tiempo que vemos antes de obtener "Login" es precisamente el timeout del SSH Server durante la operación DNS.

Solución:
  La solución es sumamente sencilla, existen dos manera:

1) Si siempre nos vamos a conectar desde la misma dirección IP (o muy pocas diferentes):
  En el servidor editar el archivo /etc/hosts y colocar los IPs de origen desde donde me conectaré. ejemplo:

192.168.1.2  blog.acostasite.com  aacostaPC
192.168.1.3  www.lomejordelemail.com miPC

2) La solución alternativa es colocar al final del archivo /etc/ssh/sshd_config 


UseDNS no


Más información

Espero haya sido útil.


miércoles, 13 de junio de 2012

Ajustar/Configurar la hora en Linux

Hola,
  Este es un post sumamente rápido

Situación:
  - Deseo ajustar la hora de mi equipo Linux (en mi caso Ubuntu)

Dos soluciones:
a)   Manera elegante:
  - Es necesario cambiar el time zone del equipo y ajustar via ntp

b)   Manera no elegante:
  - Forzar la hora usando el comando date



a) Procedimiento elegante:
#cd /etc  (colocarse en el directorio etc)
#mv timezone timezone.old  (un backup, porsia)
#ln -sf /usr/share/zoneinfo/America/Caracas /etc/localtime  (link simbolico al timezone de Caracas en mi caso)

# ntpdate 1.pool.ntp.org  (ajustar la hora con un ntp server)
13 Jun 10:51:15 ntpdate[5845]: step time server 200.3.168.192 offset -7459.178215 sec

b) Procedimiento no elegante:
   Colocar la hora y fecha: 6 de Noviembre de 2011 a las 20:25 con 00 segundos:
#date 110620252011.00


Revisar:
#date


Espero sea útil,


sábado, 26 de mayo de 2012

Como instalar un root server local (DNS).

Hola,
  Recientemente en algunas listas de discusión que sigo se hablaba sobre instalar un servidor DNS root server local, en fin, me llamó la curiosidad y lo hice solo por razones académicas.
  He escuchado que esto de alguna manera puede mejorar el performance de alguna red, sobre todo en el mundo de los ISPs, sin embargo, en lo personal no lo veo necesario, lo dejo al criterio de cada uno de ustedes.
 
Laboratorio:
  - Dos servidores y un cliente: Un servidor con Ubuntu, otro con Mandriva, el cliente también fue Mandriva. Donde:
    * Servidor Mandriva como Root Server (Nombre Z, IP=192.168.127.68)
    * Servidor Ubuntu como Servidor DNS recursivo (IP=192.168.127.86)

Primero:
    1) Logicamente probar que el servidor recursivo funcione correctamente
    2) Posteriormente, editar el archivo db.root de Ubuntu y dejar algo similar a:


;
.                        3600000  IN  NS    Z.ROOT-SERVERS.NET.
Z.ROOT-SERVERS.NET.      3600000      A     192.168.127.68
; End of File

  Notese que realmente lo que hice fue eliminar los root servers tradicionales y agregar las lineas correspondientes a Z.ROOT-SERVERS.NET (Z es el nombre del mi root server y 192.168.127.68 es la dirección). 
  Logicamente sin haber más hints de root server, el servidor recursivo se verá forzado a utilizar Z como root server.

Nota:
  En /var/log/syslog luego de reiniciar BIND puedes conseguir una línea similar a la siguiente:
May 25 19:05:16 ubuntu named[4953]: checkhints: extra NS 'Z.ROOT-SERVERS.NET' in hints

Segundo:
  Aqui es donde realmente instalamos el root server en el servidor Mandriva (que realmente es muy sencillo).
  1) Bajar el archivo root.zone de: http://www.iana.org/about/popular-links/
  2) En el archivo /etc/named.conf del root server hay que modificar el siguiente renglón:

  zone "." {
        type hint;
        file "/etc/bind/db.root";
};

  Por:

zone "." {
        type master;
        file "/etc/bind/root.zone";
};

 El archivo root.zone debe estar ubicado en el directorio correspondiente, en mi caso fue en /var/lib/named/var/named/, posteriormente hay que reiniciar y ya. En el root server ni siquiera hay que estar pendiente de recursividad y esas cosas porque este tipo de servidor tradionalmente no debe ni necesita hacer esta operación.

Tercero:
  Probar desde el cliente:

[root@localhost ~]# dig blog.acostasite.com

; <<>> DiG 9.8.0-P4 <<>> blog.acostasite.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26771
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;blog.acostasite.com.           IN      A

;; ANSWER SECTION:
blog.acostasite.com.    0       IN      CNAME   cf-protected-blog.acostasite.com.
cf-protected-blog.acostasite.com. 300 IN A      108.162.198.198
cf-protected-blog.acostasite.com. 300 IN A      108.162.195.100

;; AUTHORITY SECTION:
acostasite.com.         172800  IN      NS      bob.ns.cloudflare.com.
acostasite.com.         172800  IN      NS      leah.ns.cloudflare.com.

;; Query time: 199 msec
;; SERVER: 192.168.127.86#53(192.168.127.86)
;; WHEN: Fri May 25 19:34:24 2012
;; MSG SIZE  rcvd: 152


Mas información:


  Espero haya sigo útil.





   

jueves, 26 de abril de 2012

Completar el nombre de dominio en Linux

Introduccion:

  Este es un post muy corto, sencillo pero muy útil.

  El dia de hoy un amigo mio me preguntó como hacía para que su estación Linux completara el FQDN al momento de resolver un nombre, por ejemplo el quería escribir www y que su estación con linux buscara www.acostasite.com

Solución:
  La solución es sumamente sencilla, lo unico que hay que hacer es editar el archivo /etc/resolv.conf y colocar el parametro domain dentro del mismo. Recordemos que este archivo es donde se especifican los servidores DNS que utilizará Linux
  Por ejemplo, supongamos que yo deseo hacer ping a host blog dentro de blog.acostasite.com:

1) En /etc/resolv.conf debe haber algo como:


nameserver 8.8.8.8
domain acostasite.com

2) Posteriormente con solo hacer referencia a blog dentro un shell o en cualquier sitio del OS el mismo OS intentará ubicar el host blog, sino lo consigue colocará de manera automatica el sufijo acostasite.com

Ejemplo de la salida:

[root@localhost ~]# ping blog -n
PING cf-protected-blog.acostasite.com (173.245.61.138) 56(84) bytes of data.
64 bytes from 173.245.61.138: icmp_req=1 ttl=57 time=135 ms
64 bytes from 173.245.61.138: icmp_req=2 ttl=57 time=136 ms
64 bytes from 173.245.61.138: icmp_req=3 ttl=57 time=135 ms
64 bytes from 173.245.61.138: icmp_req=4 ttl=57 time=135 ms


Notese que en el ping yo solo escribí "blog" y el OS completó automaticamente acostasite.com (la opción "-n" solo evita el rdns de la respuesta)


Eso es todo!, espero sea útil,



martes, 17 de abril de 2012

Como deshabilitar IPv6 en Mandriva & RedHat

Situación:
  Deseo deshabilitar IPv6 en mi distribución Linux

Solución:
  Hay dos soluciones que pueden ser implementadas:
  • OPCION 1: Deshabilitar IPv6 solo en una interfaz en especifico
   a) Editar el archivo: /etc/sysconfig/network-scripts/ifcfg-
   b) Al final del mismo colocar: IPV6INIT=no

  Luego subir y bajar la interfaz, por ejemplo:
   c) #ifdown eth0; #ifup eth0

  • OPCION 2: Deshabilitar IPv6 en todo el sistema operativos
    a) Editar /etc/modprobe.conf y agregar:

      alias ipv6 off
      alias net-pf-10 off
      options ipv6 disable=1


     b) Editar el archivo /etc/sysconfig/network y agregar:
     NETWORKING_IPV6=no

  Reiniciar todo lo relacionado con networking (por ejemplo con /etc/rc.d/network restart)

Espero haya sido útil,

miércoles, 17 de agosto de 2011

Crear un archivo de determinado tamaño en Linux

Hola todos, este es un post sencillo pero quizás muy util


Introduccion:
  Deseo crear un archivo de un tamaño especifico en linux

Comando:
Para crear un archivo de..., digamos 5 Megabytes:

Formula:
(10*1024*1024=5242880 bytes). Esto quiere decir que 5 MB en bytes son: 5242880

El comando a ejecutar es:
$ dd if=/dev/zero of=archivo_5MB bs=5242880 count=1


Importante, si intentas utilizar el device if (input file) /dev/null NO SIRVE, el tamaño resultante del archivo será 0.

1+0 records in
1+0 records out
5242880 bytes (10 MB) copied, 0.392 s, 33.6 MB/s

Luego has un "ls -l" y revisa el tamaño del archivo.

lunes, 4 de julio de 2011

Problema:
  Al intentar arrancar Linux recibo el mensaje:
  Give root password for maintenance

  (or type Control-D to continue):


Diagnostico:
  El inconveniente es que existen errores en tu File System que no pudieron solucionarse automaticamente durante el arranque.
Solucion:
  El mensaje hay que obligatoriamente colocar el password de root. Posteriormente uno de los siguientes comandos:

- Solucion automaticamente
fsck -vfy /dev/sda5



- Solucion interactiva
fsck -vf /dev/sda5

Espero este pequeno articulo haya sido util.
Suerte!

domingo, 10 de abril de 2011

Instalar Flash Player de 64 bits en Mandriva Linux

Situación:
Deseo instalar Flash Player en Mandriva Linux de 64 bits

Procedimiento:
- Bajar el flash player de: http://labs.adobe.com/downloads/flashplayer10_square.html
- Descomprimir el archivo:

[root@localhost]# tar -zxvf flashplayer10_2_p3_64bit_linux_111710.tar.gz

- Luego copiar el archivo resultante en: /usr/lib64/mozilla/plugins/

[root@localhost Downloads]# cp libflashplayer.so /usr/lib64/mozilla/plugins/

- Cerrar y abrir el Firefox, para probar que tengas flash player puedes:

1) Abrir un video de www.youtube.com
y/o
2) En la barra de direcciones de mozilla escribe:
about:plugins
y busca (seguramente al final) el siguiente texto:

Shockwave Flash

File: libflashplayer.so
Version:
Shockwave Flash 10.3 d162


Suerte,

sábado, 2 de abril de 2011

Implementar DNSSEC sobre Linux. Solo resolver. Version 2

Este documento es una actualizacion de "Implementar DNSSEC sobre Linux. Solo resolver" fechado 25 de Noviembre de 2009.


Historia:
Luego de la firma de los root servers a mediados del año 2010 (ver http://www.root-dnssec.org/) habilitar DNSSEC en el resolver es mucho más sencillo debido a que solo hay que validar "." dentro de nuestro archivo de configuración. Anteriormente necesitabamos trust anchors para cada dominio (TLD, ccTLD, zonas) que queriamos validar. Este trabajo era insoportable de manejar y no era escalable.
Ahora con la firma de los root-servers todo es más sencillo.

Software:
Bind 9.7.2-P3
Linux Mandriva 2010.2

Procedimiento:
1) Primero es necesario colocar el trust-anchor para el root zone. Para obtenerlo:

#dig . dnssec

La salida anterior te entregará varios resultados:

root@localhost ~]# dig . dnskey
;; Truncated, retrying in TCP mode.

; <<>> DiG 9.7.2-P3 <<>> . dnskey
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60029
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;. IN DNSKEY

;; ANSWER SECTION:
. 136089 IN DNSKEY 257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=
. 136089 IN DNSKEY 256 3 8 AwEAAb5gVAzK59YHDxf/DnswfO1RmbRZ6W16JfhFecfI+EUHRXPWlXDi 47t2FHaKyMMEROapL5SZ8HiCzl05lORZGGdN37WY7fkv55rs+kwHdVRS rQdl81fUnEspt67IIgaj3SrGyZqgzyixNk/8oT3yEfKDycTeJy4chKPt 0JegWrjL
. 136089 IN DNSKEY 256 3 8 AwEAAcaGQEA+OJmOzfzVfoYN249JId7gx+OZMbxy69HfUyuGBbRN0+Hu TOpBxxBCkNOL+EJB9qJxt+0FEY6ZUVjEg58sRr4ZQ6Iu6b1xTBKgc193 zUARk4mmQ/PPGxn7Cn5VEGJ/1h6dNaiXuRHwR+7oWh7DnzkIJChcTqlF rXDW3tjt

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Apr 2 10:00:49 2011
;; MSG SIZE rcvd: 586

Nos interesa la sección correspondiente a la 257, este valor corresponde a SEP o Secure Entry Point, también conocido como los KSK o Key Signing Key. Como dato adicional el valor 256 corresponde a los Zone Signing Key (ZSK)

2) Del resultado anterior, vamos a copiar la llave (despues del "257 3 8") y vamos a crear la siguiente seccion managed-keys dentro de named.conf. Quedando así:

managed-keys {
"." initial-key 257 3 8 "AwEAAagAIKlVZrp...";
};

3) Dentro de la sección de opciones de named.conf vamos a colocar lo siguiente:

dnssec-enable yes;
dnssec-validation yes;

Reinicia BIND y debe estar funcionando.

Revisar que DNSSEC este operando bien:

La mejor opción es utilizar el famoso comando dig y chequear el flag AD en al respuesta. Por ejemplo:

RESPUESTA SIN DNSSEC

[root@localhost etc]# dig +dnssec registro.br

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43771
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5



RESPUESTA CON DNSSEC

[root@localhost etc]# dig +dnssec registro.br

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1063
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 6, ADDITIONAL: 1



Nótese que que el flag ad no esta encendido en la respuesta sin DNSSEC

Otra forma más sencilla de revisar si esta funcionando DNSSEC es entrar a la página: "DNSSEC test tool" de SIDN y correr la prueba.


Más información:

- El concepto de managed-keys fue introducido en Bind 9.7 en adelante. Ver
- Articulo excelente que indica como hacer que Bind se convierta en un DNSSEC validator

martes, 29 de marzo de 2011

Unir varios videos AVI en uno solo. Linux

Situacion:
Deseo unir varios videos .avi en un solo archivo

Solucion:
La solución es muy sencilla y es la siguiente:

#avimerge -o videocompleto.avi -i video1.avi video2.avi video3.avi

Incluso es posible utilizar un comando como el siguiente:

#avimerge -o videocompleto.avi -i *.avi

En este ultimo comando se tomarian todos los archivos .avi en el directorio actual y crearía un solo archivo destino (sin borrar los originales) llamado videocompleto.avi

Notas adicionales:
avimerge pertenece a un paquete llamado transcode. Para su instalación (solo en Mandriva):

#urpmi transcode
[root@localhost]# urpmi transcode
To satisfy dependencies, the following packages are going to be installed:
Package Version Release Arch
(medium "Main")
lib64mpeg2dec0 0.5.1 3mdv2010.1 x86_64
(medium "PLF Free")
transcode 1.1.5 4plf2010.1 x86_64
6.2MB of additional disk space will be used.
1.1MB of packages will be retrieved.

Espero haya sido util,

Suerte!

miércoles, 29 de diciembre de 2010

Error "unable to parse media.cfg" en Mandriva

Situacion:
Cada vez que se quiere utilizar urpmi en Mandriva se obtiene los errores:

unable to parse media.cfg
unable to add medium

Ejemplos del problema:
[root@localhost src]# urpmi.addmedia --distrib --mirrorlist 'http://api.mandriva.com/mirrors/basic.2009.1.i586.list'
unable to parse media.cfg
unable to add medium

Solucion:
La solucion es utilizar los mirror manuales al momento de ejecutar urpmi, el mejor sitio para buscar la lista de mirror es: http://easyurpmi.zarb.org. En esta pagina web debes indicarle tu distribucion exacta haciendo click sobre el texto: "Switch to manual mirror selection".
Para conocer la version exacta de la distribucion de Mandriva que estas utilizando revisa el contenido del archivo /etc/redhat-release (cat /etc/redhat-release).
En mi caso que estoy utilizando Mandriva 2009.1 i586 solucioné el problema anterior utilizando el comando:

[root@localhost src]# urpmi.addmedia --distrib http://mirror.fis.unb.br/pub/linux/MandrivaLinux/official/2009.1/i586

Recomiendo utilizar adicionalmente los dos siguientes comandos en caso de algún inconveniente al ejecutar el anterior:
[root@localhost src]# rm -fv /var/cache/urpmi/mirrors.cache
[root@localhost src]# urpmi.removemedia -a

Notese que es un mirror manual

Suerte, espero haya sido útil,

jueves, 25 de marzo de 2010

Utilizando DNSTOP

Objetivo:
Utilizar correctamente DNSTOP

Software utilizado:
Distribución Mandriva
DNSTOP (http://www.rpmfind.net/linux/rpm2html/search.php?query=dnstop&submit=Search+...)

Ejecutando dnstop:
La manera de ejecutar dnstop es: comando interface. Por ejemplo

# dnstop {interface-name}
# dnstop eth0
# dnstop wlan0

Una salida tipica es:

Queries: 53 new, 391 total Thu Mar 25 13:04:37 2010

Sources Count %
--------------- --------- ------
200.xx.xx.5 137 35.0
200.xx.xx.2 46 11.8
200.xx.xx.253 24 6.1
190.xx.xx.2 21 5.4
200.xx.xx.140 18 4.6
200.xx.xx.30 12 3.1
200.xx.xx.141 11 2.8
200.xx.xx.118 10 2.6
200.xx.xx.186 10 2.6
10.xx.xx.162 8 2.0
200.xx.xx.138 8 2.0
200.xx.xx.6 6 1.5

Ahora bien, dnstop no solo genera la salida anterior sino que puede generar MUCHA más información, todo es cuestión de saberlo utilizar.
Por ejemplo, puedes ejecutar dnstop con el siguiente comando:
#dnstop -l 3 eth1

Durante la ejecución presiona el numero "1" o "2" o "3". Podrás ver hasta 3 niveles de resolución de nombres y así saber que nombres generalmente resuelven tus clientes.

Otra opción muy interesante es el tipo de query sobre el DNS Server (A, AAAA, PTR, etc). Para ello durante la ejecución presiona "t".

Opciones típicas de dnstop:

 s - Sources list
d - Destinations list
t - Query types
o - Opcodes
r - Rcodes
1 - 1st level Query Names ! - with Sources
2 - 2nd level Query Names @ - with Sources
3 - 3rd level Query Names # - with Sources
4 - 4th level Query Names $ - with Sources
5 - 5th level Query Names % - with Sources
6 - 6th level Query Names ^ - with Sources
7 - 7th level Query Names & - with Sources
8 - 8th level Query Names * - with Sources
9 - 9th level Query Names ( - with Sources
^R - Reset counters
^X - Exit

? - this

Links:
Este articulo es una traducción y adaptación de experiencia propia de: http://www.cyberciti.biz/faq/dnstop-monitor-bind-dns-server-dns-network-traffic-from-a-shell-prompt/

lunes, 22 de febrero de 2010

Realizar estudios de performance sobre un DNS Server

INTRODUCCION:

Recientemente tuve la necesidad de realizar algún estudio sobre el funcionamiento de dos servidores DNS los cuales soy responsable por su administración. Mis dudas
eran relacionadas al performance de los servidores.
En el mundo de los DNS el performance se mide de dos maneras:
* Throughput (numero de queries por segundo que el DNS Server es capaz de manejar)
* Latencia (tiempo de resolución de los queries)

En base a lo anterior uno mismo puede contruir unos scripts y apoyandonos en el comando DIG obtener gran información. Sin embargo durante mi investigación y
a través de una lista conseguí dos herramientas que pueden realizar un excelente estudio: dnsperf y resperf (http://www.nominum.com/services/measurement_tools.php)

OBJETIVO
Realizar y evaluar el performance de un DNS Server

SOFTWARE NECESARIO:
En mi caso hice todas las pruebas sobre un DNS Server en mandriva las herramientas sobre mandriva.
Software adicional: dnsperf y resperf. Se puede conseguir: http://www.nominum.com/services/measurement_tools.php
GNUplot

INSTALACION

wget ftp://ftp.nominum.com/pub/nominum/dnsperf/1.0.1.0/dnsperf-1.0.1.0-1-rhel-5-i386.tar.gz
tar -zxvf dnsperf-1.0.1.0-1-rhel-5-i386.tar.gz
cd dnsperf-1.0.1.0-1
rpm -ivh dnsperf-1.0.1.0-1.i386.rpm
urpmi gnuplot (MUY RECOMENDADO para generar unas gráficas más adelantes)

Los archivos binarios quedaran instalados en:
/usr/local/nom/bin

DOCUMENTACION:
Luego de la instalación del paquete existe una excelente documentación en formato pdf ubicada en:

/usr/local/nom/doc/dnsperf


FUNCIONAMIENTO:
En fin, basicamente lo que ambos programas hacen es tomar una enorme lista (un archivo de texto) donde existen miles de dominios separados por el tipo de query (A, AAAA, PTR, TXT, etc), lo envia a un servidor DNS (indicado por linea de comando) y luego empieza a recabar información para finalmente ofrecer un resumen de los resultados.
El archivo de texto puede ser editado, cambiado, modificado, etc por uno mismo sin inconveniente (archivo original: queryfile-example-100thousand).

EJEMPLOS:
Vamos a nombrar dos diferentes comandos con los cuales podemos hacer una evaluación. Recomiendo ampliamente leer la documentación oficial antes de proseguir. Estas herramientas consumen alto procesamiento de CPU, consumo de memoria y ancho de banda. Es muy sencillo saturar un servidor y dejarlo fuera de linea con estas herramientas. Adicionalmente hay que tener mucho cuidado con diversos firewalls que pueden encontrarse
en el medio entre el DNS Server y el cliente que ejecuta la aplicación.
Aquí van los ejemplos:

Comando 1: resperf
  • Ejemplo 1-1:
Query de 100000 consultas al DNS Server de localhost con un máximo de 100 consultas por segundo:

./resperf -s 127.0.0.1 -d queryfile-example-100thousand.orig -m 100

Ejemplo de la salida:

DNS Resolution Performance Testing Tool

Nominum Version 1.0.1.0

[Status] Sending
[Status] Waiting for more responses
^C
[root@localhost bin]# ./resperf -s 127.0.0.1 -d queryfile-example-100thousand -m 100

DNS Resolution Performance Testing Tool

Nominum Version 1.0.1.0

[Status] Sending
[Status] Waiting for more responses
[Status] Testing complete

Statistics:

Queries sent: 2999
Queries completed: 2985
Queries lost: 14
Ran for: 100.000002 seconds
Maximum throughput: 98.000000 qps
Lost at that point: 2.00%



  • Ejemplo 1-2:
Query de 100000 consultas al DNS Server de localhost con un máximo de 10 consultas por segundo pero con un reporte en una página Web:

./resperf-report -s 127.0.0.1 -d queryfile-example-100thousand.orig -m 10
Ejemplo de la página Web:




  • Ejemplo 1-3:
Query de 100000 consultas al DNS Server de localhost con un máximo de 100000 consultas por segundo pero con un reporte en una página Web:
./resperf-report -s 127.0.0.1 -d queryfile-example-100thousand.orig


Comando 2: dnsperf

Ejemplo 2-1:
Ejecutar 3 queries maximos al servidor localhost con un histograma de 20 por 10 segundos:

./dnsperf -d ../examples/dnsperf/queryfile-example-100thousand -q 3 -H 20 -l 10 -s 127.0.0.1

Salida del comando anterior:

[root@localhost bin]# ./dnsperf -d queryfile-example-100thousand -q 10 -H20 -l 10

DNS Performance Testing Tool

Nominum Version 1.0.1.0

[Status] Processing input data
[Status] Sending queries (to 127.0.0.1)
[Status] Testing complete


Statistics:

Parse input file: multiple times
Run time limit: 10 seconds
Ran through file: 144 times

Queries sent: 870 queries
Queries completed: 870 queries
Queries lost: 0 queries

Avg request size: 37 bytes
Avg response size: 161 bytes

Percentage completed: 100.00%
Percentage lost: 0.00%

Started at: Mon Feb 22 18:17:43 2010
Finished at: Mon Feb 22 18:17:53 2010
Ran for: 10.105866 seconds

Queries per second: 86.088614 qps

Latency: Min: 0.000284 s; Max: 1.121552 s; Avg: 0.111007 s; StdDev: 0.169328

Response latency distribution (total 870 responses):

Latency Success Fail |
<>= 1.000s 8 0 |#

Legend:

##### = success responses (RCODE was NOERROR or NXDOMAIN)
----- = failure responses (any other RCODE)


Ejemplo 2-2:

Ejecutar 20 queries maximos al servidor localhost con un histograma de 4 por 20 segundos con una cantidad máxima de 25 queries por segundo:
./dnsperf -d queryfile-example-100thousand -q 20 -H4 -l 20 -Q 25

Suerte, espero sea de tu utilidad