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

viernes, 20 de marzo de 2020

Demo tunel GRE - Conectando islas IPv4 sobre IPv6

En el video se ofrece una pequeña introducción a GRE, se realiza un demo para conectar dos redes IPv4 sobre un transporte IPv6, se configura OSPF en IPv4 dentro del tunel GRE y finalmente se realiza una captura en Wireshark



miércoles, 11 de marzo de 2020

Tunel GRE entre Linux y Cisco IOS

Lado del linux:

[root@server]# ip tunnel add tun0 mode gre remote $public_ip_cisco local $public_ip_linux ttl 255
[root@server]# ip link set tun0 up

[root@server]# ip addr add 172.20.0.2/30 dev tun0


Del lado del Cisco

interface Tunnel0
 description Tunel hacia sitio remoto
 ip address 172.20.0.1 255.255.255.252
 tunnel source $public_ip_cisco
 tunnel destination $public_ip_linux

end

  Para enrutar cierta red desde el Cisco hacia el linux via el tunel: 

ip route $prefix $mask 172.20.0.2 


Espero sea útil.

Saludos





sábado, 24 de octubre de 2015

Draytek Vigor 2920 y tunel IPv6 hacia Hurricane Electric

Introducción:
  En el presente post vamos a explicar como levantar un tunel IPv6 dentro de IPv4 hacia Hurricane Electric.

Pasos:

Del lado de he.net
1) Primero es necesario tener una cuenta tunnel en www.he.net.
2) Luego es necesario crear un tunel regular






3) Luego llenar los datos: correspondientes a la información del tunel



4) Posteriormente debes conseguir la información correspondiente a tu tunel aquí:


5) Y en la página siguiente después de hacer click sobre el nombre del tunel:





Nótese los números 1, 2, 3 que fueron añadidos. Esta misma información la necesitaremos más adelante.


Del lado del 2920/del equipo Draytek con Vigor:

6) Ir a: WAN --->  Internet Access --> IPv6


7)  En la siguiente panatalla debes llenar los siguientes datos. Necesitas la información tomada en el paso 5. He colocado los números para una fácil comprensión:




Puedes hacer otras cosas con la longitud prefijos pero colocando /64 es suficiente.


8) El router se va a reiniciar.


Para probar:
Linux:
  ping6 www.lacnic.net

Windows:
  ping -6 www.lacnic.net


Referencias:

Basado en experiencia propia y: http://kb.networksystemssolutions.info/index.php/IPv6


Where to order pain Relief without prescription

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,


viernes, 27 de enero de 2012

Preferir 6to4 sobre IPv4 en Windows 7

Introduccion:
  El dia de hoy un buen amigo me pidio que hiciera unas pruebas en una pagina Web sobre IPv6. Ocurre que en mi casa no uso tunel porque tengo 6to4 configurado sobre dd-wrt y en la oficina tengo IPv6 nativo.Como sabemos los SO tienen algun tipo de inteligencia donde deciden navegar y utilizar IPv6 dependiendo de la configuracion TCP/IP del mismo, es decir dependiendo de que lo que necesite utiliza IPv6 o IPv4. Generalmente es algo como: IPv4 tiene preferencia sobre IPv6 6to4 el cual tiene preferencia sobre IPv6 Teredo.

Problema:
  Windows 7 prefiere IPv4 sobre IPv6 cuando la direccion IPv6 corresponde a un prefijo 6to4 (2002:/16). Yo quiero que prefiriera IPv6 sobre IPv4 aun con el prefijo IPv6 6to4.

Solucion:
1. Start -> Run -> "cmd" -> "netsh" -> "interface" -> "ipv6"

2. Configurar IPv6 (6to4) como el protocolo por default en Windows
set prefix ::1/128 50 0
set prefix ::/0 40 1
set prefix 2002::/16 30 1
set prefix ::/96 20 3
set prefix ::ffff:0/96 10 4
set prefix 2001::/32 5 5

3. Si queremos volver a dejar todo original (Preferencia IPv4)
set prefix ::1/128 50 0
set prefix ::/0 40 1
set prefix 2002::/16 30 2
set prefix ::/96 20 3
set prefix ::ffff:0/96 10 4
set prefix 2001::/32 5 5

Link referencial y base de este articulo:
Win7 seems to prefer IPv4 native to IPv6/6to4 - which is not what the policy table says - which is right?

miércoles, 3 de noviembre de 2010

Tunel GRE entre Cisco y Linux (Debian)

Situación:
Deseo crear un tunel GRE entre en un equipos Linux y un router Cisco

Procedimiento:

a) Del lado del linux:

Lo primero que hay que hacer es levantar el modulo ip_gre del lado del Linux:
#modprobe ip_gre

Luego,necesitamos definir ante todo, el nombre de la interfaz, y la dirección que este va a tener, en mi caso, decidi que la interfaz se llamara "Core2", y usare la dirección IP 7.7.7.0/30 (OJO, esta es una dirección IP PUBLICA!!!!!!, es conveniente usar direcciones IP privadas, ejm: 10.0.0.0/8, en mi caso, esto se monto en un laboratorio).

Ejecutamos los siguientes comandos

ip tunnel add Core2 mode gre local 8.8.8.1 remote 9.9.9.2 dev eth0
ip add ad dev Core2 7.7.7.1/32
ip link set dev Core2 up



Local
hace referencia a la interfaz en nuestro linux (eth0 que tiene el IP 8.8.8.1) por donde sale el trafico, si manejamos una sola interfaz, en este caso usaríamos la dirección IP de la interfaz que tenemos configurado, si manejamos dos interfaces, es conveniente usar la interfaz por donde sabemos que el trafico hacia la otra punta del tunel va a salir. (usar un traceroute)

Remote
hace referencia a la dirección IP del peer, esta tendría que ser la dirección contra la que vamos a levantar el tunnel


Ahora, vemos como queda la configuracion de la interfaz

#ifconfig Core2
Core2 Link encap:UNSPEC HWaddr C8-2F-97-7E-05-08-00-00-00-00-00-00-00-00-00-00
inet addr:7.7.7.1 P-t-P:7.7.7.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1
RX packets:134 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11896 (11.6 KiB) TX bytes:3780 (3.6 KiB)


b) Del lado del equipo cisco , es un poco más sencillo,


GRE#conf t
Enter configuration commands, one per line. End with CNTL/Z.
GRE#int tunnel 100
GRE(config-if)#tunnel source 9.9.9.2
GRE(config-if)#tunnel destination 8.8.8.1
GRE(config-if)#ip address 7.7.7.2 255.255.255.252



Listo!!!

Veamos la configuracion

GRE#sh run in tu100
Building configuration...

Current configuration : 128 bytes
!
interface Tunnel100
ip address 7.7.7.2 255.255.255.252
tunnel source 9.9.9.2
tunnel destination 8.8.8.1
end

GRE#


Y listo Sres, ya tenemos nuestro Tunel levantado

GRE#sh int tunnel 100
Tunnel100 is up, line protocol is up
Hardware is Tunnel
Internet address is 7.7.7.2/30
MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 9.9.9.2, destination 8.8.8.1
Tunnel protocol/transport GRE/IP


Cabe destacar que la interfaz tunnel 100, usa por defecto un tunel modo GRE, asi que no hace falta definirlo.

Revisar:

Para probar conexión, un simple Ping podria darnos lo que buscamos


GRE#ping 7.7.7.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 7.7.7.1, timeout is 2 seconds:
!!!!!


Lab:/home/rollingpaper# tcpdump -i Core2 icmp
tcpdump: WARNING: arptype 778 not supported by libpcap - falling back to cooked socket
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on Core2, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
11:56:26.704400 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 0, length 80
11:56:26.708400 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 1, length 80
11:56:26.710648 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 2, length 80
11:56:26.712147 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 3, length 80
11:56:26.713897 IP 7.7.7.2 > 7.7.7.1: ICMP echo request, id 153, seq 4, length 80



Listo Sres, espero que haya sido de ayuda

sábado, 2 de mayo de 2009

Crear un tunel IPv6 in IPv4 entre Cisco y Linux

Tengo la fortuna de trabajar para un ISP con IPv6 implementado. Voy a explicar el procedimiento para levantar un tunel IPv4 para pasar paquetes IPv6 entre un router Cisco y un PC con Linux.

Topologia:

PC Linux (2820:26:11::/64) ------ RED IPv4 (ISP) ----- Cisco router (Ipv4 e IPv6) ---- RED IPv6

Comenzaremos configurando el Cisco:

Es necesario crear una interfaz tunnel similar a la siguiente:

interface Tunnel0
description Tunel hacia mi casa
no ip address
ipv6 address 2820:26:10::1/64
ipv6 enable
tunnel source 210.57.51.107
tunnel destination 211.28.235.85
tunnel mode ipv6ip
end

ipv6 route 2820:26:11::/64 Tunnel0

Explicacion:
En la configuracion anterior se aprecia que hay que indicarle la direccion IPv4 fuente, la direccion IPv6 destino y una direccion IPv6 al tunel. El modo del tunel es lo mas importante el cual indica que son paquetes ipv6 en ipv4. Recordemos que Cisco soporta muchos tipos de tunel y recomiendo ser explicito. Adicionalmente el modo del tunel concuerda con el tipo de tunel que vamos a utilizar en Linux (modo sit). Notese que la direccion IPv4 origen del tunel puede ser cualquier IPv4 configurado en el router (una loopback, otra interfaz, etc).
Por ultimo, el comando ipv6 route indica la red que va a manejarse del lado del linux. Muy importante para que exista conectividad y enrutamiento dentro del tunel.

A configurar el linux:

Del lado del Linux es mas facil de lo que uno esperaria. Estos son los comandos utilizados por mi persona:

ifconfig eth0 add 2820:26:11::1/64
ifconfig sit0 tunnel ::210.147.51.107
ifconfig sit1 up
route -A inet6 add ::0/ dev sit1
ping6 2820:26:10::1

Explicacion:
El primer comando le indica la red IPv6 a la interfaz eth0.
El segundo comando indica la interfaz sit (modo ipv6 en ipv4) y el IPv4 donde va a terminar el tunel. El comando route indica la ruta por defecto para que sea enviado por la interfaz sit 1.

Luego de esto, estamos listos para probar la conexion. Primero, vamos a ubicarnos del lado del Linux:

Lo primero es realizar un ping al IPv6 del tunel
[root@localhost ~]# ping6 2800:26:10::1 -c 4
PING 2800:26:10::1(2800:26:10::1) 56 data bytes
64 bytes from 2820:26:10::1: icmp_seq=1 ttl=64 time=153 ms
64 bytes from 2820:26:10::1: icmp_seq=2 ttl=64 time=154 ms
64 bytes from 2820:26:10::1: icmp_seq=3 ttl=64 time=153 ms
64 bytes from 2820:26:10::1: icmp_seq=4 ttl=64 time=152 ms

Luego un ping6 a ipv6.google.com:
[root@localhost ~]# ping6 ipv6.google.com -c 4
PING ipv6.google.com(qw-in-x68.google.com) 56 data bytes
64 bytes from qw-in-x68.google.com: icmp_seq=1 ttl=55 time=232 ms
64 bytes from qw-in-x68.google.com: icmp_seq=2 ttl=55 time=229 ms
64 bytes from qw-in-x68.google.com: icmp_seq=3 ttl=55 time=230 ms
64 bytes from qw-in-x68.google.com: icmp_seq=4 ttl=55 time=231 ms

Tambien recomiendo hacer traceroute y el primer salto que veras es el IPv6 del Cisco.

Ahora bien, del lado del Cisco podemos ver la cantidad de paquetes que han transitado por la interfaz tunel y comprobar el incrementos de paquetes:

#sh int tunne0
Linkstar_PBR#sh int tunnel 0
Tunnel0 is up, line protocol is up
Hardware is Tunnel
Description: Tunel a mi casa
MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 210.147.51.107, destination 211.28.235.85
Tunnel protocol/transport IPv6/IP
Tunnel TTL 255
Fast tunneling enabled
Tunnel transmit bandwidth 8000 (kbps)
Tunnel receive bandwidth 8000 (kbps)
Last input 00:00:07, output 00:00:06, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/0 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
19 packets input, 2736 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
51 packets output, 5540 bytes, 0 underruns
0 output errors, 0 collisions, 0 interface resets
0 output buffer failures, 0 output buffers swapped out

En otra oportunidad indicare como hacer que toda tu red navegue en IPv6 dentro del Tunel.

Suerte y exitos,

Una mejora práctica en el Transporte DNS sobre UDP en IPv6

Por Hugo Salgado y Alejandro Acosta Introducción y planteamiento del problema En el presente documento queremos discutir sobre un draft (bor...