mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
116 lines
4.0 KiB
ReStructuredText
116 lines
4.0 KiB
ReStructuredText
.. _interfaces-tunnel:
|
|
|
|
Tunnel Interfaces
|
|
=================
|
|
|
|
Generic Routing Encapsulation (GRE)
|
|
-----------------------------------
|
|
|
|
A GRE tunnel operates at layer 3 of the OSI model and is repsented by IP protocol 47. The
|
|
main benefit of a GRE tunnel is that you are able to route traffic across disparate networks.
|
|
GRE also supports multicast traffic and supports routing protocols that leverage multicast to
|
|
form neighbor adjacencies.
|
|
|
|
Configuration
|
|
^^^^^^^^^^^^^
|
|
|
|
A basic configuration requires a tunnel source (local-ip), a tunnel destination (remote-ip),
|
|
an encapsulation type (gre), and an address (ipv4/ipv6). Below is a configuration example
|
|
taken from a VyOS router and a Cisco IOS router. The main difference between these two
|
|
configurations is that VyOS requires you explicitly configure the encapsulation type.
|
|
The Cisco router defaults to 'gre ip' otherwise it would have to be configured as well.
|
|
|
|
**VyOS Router:**
|
|
|
|
.. code-block:: sh
|
|
|
|
set interfaces tunnel tun100 address '10.0.0.1/30'
|
|
set interfaces tunnel tun100 encapsulation 'gre'
|
|
set interfaces tunnel tun100 local-ip '198.18.0.2'
|
|
set interfaces tunnel tun100 remote-ip '198.18.2.2'
|
|
|
|
**Cisco IOS Router:**
|
|
|
|
.. code-block:: sh
|
|
|
|
interface Tunnel100
|
|
ip address 10.0.0.2 255.255.255.252
|
|
tunnel source 198.18.2.2
|
|
tunnel destination 198.18.0.2
|
|
|
|
Troubleshooting
|
|
^^^^^^^^^^^^^^^
|
|
|
|
GRE is a well defined standard that is common in most networks. While not inherently difficult
|
|
to configure there are a couple of things to keep in mind to make sure the configuration performs
|
|
as expected. A common cause for GRE tunnels to fail to come up correctly include ACL or Firewall
|
|
configurations that are discarding IP protocol 47 or blocking your source/desintation traffic.
|
|
|
|
**1. Confirm IP connectivity between tunnel local-ip and remote-ip:**
|
|
|
|
.. code-block:: sh
|
|
|
|
vyos@vyos:~$ ping 198.18.2.2 interface 198.18.0.2 count 4
|
|
PING 198.18.2.2 (198.18.2.2) from 198.18.0.2 : 56(84) bytes of data.
|
|
64 bytes from 198.18.2.2: icmp_seq=1 ttl=254 time=0.807 ms
|
|
64 bytes from 198.18.2.2: icmp_seq=2 ttl=254 time=1.50 ms
|
|
64 bytes from 198.18.2.2: icmp_seq=3 ttl=254 time=0.624 ms
|
|
64 bytes from 198.18.2.2: icmp_seq=4 ttl=254 time=1.41 ms
|
|
|
|
--- 198.18.2.2 ping statistics ---
|
|
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
|
|
rtt min/avg/max/mdev = 0.624/1.087/1.509/0.381 ms
|
|
|
|
**2. Confirm the link type has been set to GRE:**
|
|
|
|
.. code-block:: sh
|
|
|
|
vyos@vyos:~$ show interfaces tunnel tun100
|
|
tun100@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue state UNKNOWN group default qlen 1000
|
|
link/gre 198.18.0.2 peer 198.18.2.2
|
|
inet 10.0.0.1/30 brd 10.0.0.3 scope global tun100
|
|
valid_lft forever preferred_lft forever
|
|
inet6 fe80::5efe:c612:2/64 scope link
|
|
valid_lft forever preferred_lft forever
|
|
|
|
RX: bytes packets errors dropped overrun mcast
|
|
2183 27 0 0 0 0
|
|
TX: bytes packets errors dropped carrier collisions
|
|
836 9 0 0 0 0
|
|
|
|
**3. Confirm IP connectivity across the tunnel:**
|
|
|
|
.. code-block:: sh
|
|
|
|
vyos@vyos:~$ ping 10.0.0.2 interface 10.0.0.1 count 4
|
|
PING 10.0.0.2 (10.0.0.2) from 10.0.0.1 : 56(84) bytes of data.
|
|
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=1.05 ms
|
|
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=1.88 ms
|
|
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=1.98 ms
|
|
64 bytes from 10.0.0.2: icmp_seq=4 ttl=255 time=1.98 ms
|
|
|
|
--- 10.0.0.2 ping statistics ---
|
|
4 packets transmitted, 4 received, 0% packet loss, time 3008ms
|
|
rtt min/avg/max/mdev = 1.055/1.729/1.989/0.395 ms
|
|
|
|
Virtual Tunnel Interface (VTI)
|
|
------------------------------
|
|
|
|
Set Virtual Tunnel Interface
|
|
|
|
.. code-block:: sh
|
|
|
|
set interfaces vti vti0 address 192.168.2.249/30
|
|
set interfaces vti vti0 address 2001:db8:2::249/64
|
|
|
|
Results in:
|
|
|
|
.. code-block:: sh
|
|
|
|
vyos@vyos# show interfaces vti
|
|
vti vti0 {
|
|
address 192.168.2.249/30
|
|
address 2001:db8:2::249/64
|
|
description "Description"
|
|
}
|