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

Linux iptables, solucion al error: Warning: wierd character in interface

Introducción:
  En Linux cuando intentamos realizar un NAT con alguna interfaz que posea el caracter ":" recibimos el error:  Warning: wierd character in interface `eth0:0' (No aliases, :, ! or *).
  Por ejemplo en el siguiente escenario:

   #iptables -t nat -A POSTROUTING -o venet0:0 -j MASQUERADE  
   Warning: wierd character in interface `eth0:0' (No aliases, :, ! or *).

Explicación:
  Luego de una investigación en muchas páginas en Internet llegué a la conclusión que no es posible realizar el NAT con una "subinterfaz" (interfaz secundaria, IP secundario, etc) con Linux que posea ":" , durante mi busqueda conseguí que es un problema del manejo de los ARP en dicha interfaz, sin embargo no hay que preocuparse, existe una alternativa y es la que voy a plantear en este post. 

Solución:
  La solución es bastante sencilla y al menos funciona en todos los escenarios donde la dirección IP con la que deseamos natear es estática. La misma se conoce como SNAT (Source NAT) y se utiliza como IP saliente el IP secundario de la interfaza utilizar (ej. eth0:0). La diferencia principal es que hay que indicar cual es la red a la cual deseamos hacer NAT, esto no debe ser ningún inconveniente porque seguramente sabremos esta información.
  En definitiva la solución es realizar el NAT con el IP "saliente" en vez de la interfaz saliente e indicando la red a la cual deseamos realizar el NAT.

Comandos:

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -A POSTROUTING -t nat -s 192.168.56.0/24 -j SNAT --to 123.4.5.6

  Con  lo anterior estaremos nateando la red 192.168.56.0/24 con la dirección IP 123.4.5.6, es decir, cualquier equipo con dirección IP fuente en el rango 192.168.56.0/24 se verá en Internet con 123.4.5.6. En ningún momento hace referencia a "eth0:0"

Espero les sea útil,

Saludos,

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




miércoles, 15 de agosto de 2012

Enrutamiento asimetrico a traves de Juniper SSG no funciona

Situacion:
   En una red con enrutamiento asimetrico tengo problemas para que dos segmentos diferentes de red se puedan comunicar via TCP, es decir, el ping (el cual es ICMP) responde satisfactoriamente

Topologia Ejemplo:

PC-ORIGEN ---- Router --- FW --- SRV-DESTINO

Sin embargo, el enrutamiento es asimetrico, es decir, en una de las direcciones los paquetes no atraviesan el Firewall Juniper. Una opcion para revisar esto puede ser realizar tracerouter del origen al destino y viceversa, seguramente no son inversamente proporcionales.

Importante: Juniper recomienda arreglar el enrutamiento y no realizar este procedimiento. Claro, no siempre es posible, quizas hay que solucionar rapidamente, probablemente no tenemos acceso a un Router o LAN Switch que este enrutando, etc.

Explicacion:
   Ocurre que Juniper + JunOS es un Firewall Stateful y realiza "chequeo de SYN" por defecto, por elllo, si el Firewall no "ve" un paquete SYN todos los siguientes paquetes TCP seran descartados. Esto es un comportamiento eficiente porque efectivamente el equipo no debe permitir aquellos paquetes de conexiones que teoricamente no han comenzado.
 
Soluciones:
1) Arreglar el enrutamiento y que sea 100% simetrico

2) Deshabilitar "SYN Checking" siguiendo el siguiente procedimeinto:


    root# cli
   
root> configure
    [edit]
    root@#set security flow tcp-session no-syn-check



    Con lo anterior es suficiente, sin embargo, si sigue sin funcionar, probablemente sea necesario adicionalmente deshabilitar el chequeo de por ejemplo numeros de secuencias (Sequence Number de TCP). El comando es:

    root@#set security flow tcp-session no-sequence-check  

Mas informacion:
http://kb.juniper.net/InfoCenter/index?page=content&id=KB16110
y
http://www.juniper.net/techpubs/software/junos-security/junos-security95/junos-security-swconfig-security/id-19932.html


Learn more about cloudways promocode woblogger at https://woblogger.com/cloudways-coupon-code/
Learn more about money market account financiallygenius at www.financiallygenius.com

lunes, 13 de agosto de 2012

Entrevista en la radio sobre IPv6



http://tecnologiahechapalabra.com/archivo/media.asp?i=858

Gustavo Terrero, Presidente de CAVEDATOS; Ricardo Holmquist, Presidente de ISOC Venezuela; y Alejandro Acosta, director del Foro Latinoamericano de IPv6; conversan con Peter Cernik en la oportunidad de explicar la necesidad de migrar toda la estructura de direcciones de internet al Protocolo de Internet version 6, que debe sustituir al IPv4, ya que este último ha agotado su capacidad de manejar identificaciones únicas para cada dispositivo conectado y por conectarse en la red de redes.

Click Aqui

- - - 

Duración = 00:24:38. 


Tomado de/Información original en:
http://tecnologiahechapalabra.com/archivo/media.asp?i=858

jueves, 9 de agosto de 2012

Extraer el audio de un archivo mp4

Objetivo:
  Deseo extraer el audio de un video. Es decir, crear un archivo mp3 con el audio de un archivo mp4.

Pasos:
1) Primero es necesario instalar las siguientes aplicaciones: faad y lame
  # aptitude install faad lame

2) Luego solo hay que indicar el archivo origen (el archivo .mp4) y el archivo de salida (.mp3)
 
   #faad  -o - archivoorigen.mp4 | lame - archivodestino.mp3


Listo!..., ahora solo hay que escuchar el archivo .mp3


Espero haya sido útil,




lunes, 6 de agosto de 2012

Error 1017 en Cacti. MySQL. Graficas en blanco



Error:
07/04/2012 05:37:49 PM - CMDPHP: Poller[0] ERROR: SQL Cell Failed!, Error:'1017', SQL:"SELECT count(*) FROM polle
r_time WHERE poller_id=0 AND end_time>'0000-00-00 00:00:00'"

 07/04/2012 05:38:34 PM - CMDPHP: Poller[0] ERROR: SQL Cell Failed!, Error:'1017', SQL:"SELECT count(*) FROM polle
r_time WHERE end_time='0000-00-00 00:00:00'"

 Procedimiento:
  En el archivo cacti.log se ve el error anterior. El mismo indica que no consigue (o no puede trabajar) con tabla poller_output de mysql.
  En este sentido, hay tres soluciones:

1) Reparar la tabla de mysql con el script php que trae cacti

 #php $PATH-TO-CACTI/cli/repair_database.php

2) Reparar la tabla con comandos mysql: 

 #mysql> REPAIR TABLE poller_output;
 
  Si no sabes la información de usuario, clave y DB del cacti, la misma la puedes conseguir en:


$PATH-TO-CACTI/include/config.php


3) Borrar la tabla y volverla a hacer (esta solución en lo personal a pesar de ser agresiva funciona perfectamente y no pierdes el historico de Cacti). Para ello entra en el CLI de mysql y ejecuta:

 --
-- Table structure for table `poller_output`
--
DROP TABLE IF EXISTS `poller_output`;
CREATE TABLE `poller_output` (
`local_data_id` mediumint(8) unsigned NOT NULL default '0',
`rrd_name` varchar(19) NOT NULL default '',
`time` datetime NOT NULL default '0000-00-00 00:00:00',
`output` text NOT NULL,
PRIMARY KEY (`local_data_id`,`rrd_name`,`time`)
) TYPE=MyISAM;
--
-- Dumping data for table `poller_output`
--
LOCK TABLES `poller_output` WRITE;
/*!40000 ALTER TABLE `poller_output` DISABLE KEYS */;
/*!40000 ALTER TABLE `poller_output` ENABLE KEYS */;
UNLOCK TABLES;



Listo!, luego puedes esperar a que el poller se ejecute y a los 15 minutos seguramente tendrás algo en tus gráficas. Si desees forzar el poller el comando es el siguiente:


#/usr/bin/php -q /var/www/miserver-cacti/poller.php --force


 Espero sea útil,





Una propuesta inesperada dentro de IETF – Ethernet sobre HTTPS

En el presente post quiero hablar mayormente sobre un documento con poco tiempo en IETF llamado “Ethernet sobre HTTPS”. Debo confesar que su...