Tunnel интерфейсы (GRE, IPIP) в VyOS

Tunnel интерфейсы в VyOS позволяют инкапсулировать один протокол в другой для создания виртуальных соединений через существующую инфраструктуру. VyOS поддерживает несколько типов туннелей: GRE, IPIP, SIT, GRETAP, и IP6GRE для различных сценариев соединения сетей.

Обзор

Tunnel интерфейсы используются для:

  • Соединения удаленных сетей: Через интернет без VPN overhead
  • IPv6 через IPv4: SIT туннели для IPv6 транспорта
  • Multicast routing: GRE поддерживает multicast трафик
  • Обход NAT: Туннели работают через NAT
  • Legacy connectivity: Соединение с устаревшим оборудованием
  • Простота настройки: Легче чем IPsec для некритичных сценариев

Типы туннелей

ТипИнкапсуляцияИспользованиеMulticastШифрование
GREIP-in-IP (протокол 47)Универсальные туннели, routing protocolsДаНет
IPIPIP-in-IP (протокол 4)IPv4-только туннелиНетНет
SITIPv6-in-IPv4IPv6 через IPv4 сетиНетНет
GRETAPEthernet-in-GRELayer 2 туннели (bridging)ДаНет
IP6GREIP-in-IPv6GRE через IPv6ДаНет

Важные особенности

Преимущества:

  • Простая настройка (без сертификатов, PSK)
  • Низкий overhead (меньше чем IPsec)
  • Поддержка routing protocols (OSPF, BGP через GRE)
  • Multicast support (GRE, GRETAP)

Недостатки:

  • Нет встроенного шифрования (используйте IPsec для защиты)
  • Может быть заблокирован файрволами (протокол 47, 4)
  • Не проходит через некоторые NAT (требуется GRE passthrough)

GRE (Generic Routing Encapsulation)

GRE - это самый универсальный тип туннеля, поддерживающий любые протоколы (IPv4, IPv6, multicast) и работающий с routing protocols.

Базовая конфигурация GRE

# Создание GRE туннеля
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30

commit
save

Параметры:

  • source-address: Локальный внешний IP-адрес
  • remote: Удаленный внешний IP-адрес
  • address: IP-адрес туннельного интерфейса

GRE с multicast (для OSPF/RIP)

# GRE туннель для OSPF
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30
set interfaces tunnel tun0 multicast enable

# OSPF через GRE
set protocols ospf area 0 network 10.10.10.0/30
set protocols ospf area 0 network 192.168.1.0/24

commit
save

GRE с IPsec для шифрования

# GRE туннель
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30

# IPsec для защиты GRE (transport mode)
set vpn ipsec esp-group ESP-GRE mode transport
set vpn ipsec esp-group ESP-GRE proposal 1 encryption aes256
set vpn ipsec esp-group ESP-GRE proposal 1 hash sha256

set vpn ipsec ike-group IKE-GRE key-exchange ikev2
set vpn ipsec ike-group IKE-GRE proposal 1 encryption aes256
set vpn ipsec ike-group IKE-GRE proposal 1 hash sha256

set vpn ipsec site-to-site peer 198.51.100.1 authentication mode pre-shared-secret
set vpn ipsec site-to-site peer 198.51.100.1 authentication pre-shared-secret 'SecretKey123!'
set vpn ipsec site-to-site peer 198.51.100.1 ike-group IKE-GRE
set vpn ipsec site-to-site peer 198.51.100.1 local-address 203.0.113.1
set vpn ipsec site-to-site peer 198.51.100.1 tunnel 0 protocol gre

commit
save

GRE ключ (для идентификации туннелей)

# GRE с ключом (для множественных туннелей к одному endpoint)
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30
set interfaces tunnel tun0 parameters ip key 100

# Второй туннель с другим ключом
set interfaces tunnel tun1 encapsulation gre
set interfaces tunnel tun1 source-address 203.0.113.1
set interfaces tunnel tun1 remote 198.51.100.1
set interfaces tunnel tun1 address 10.10.11.1/30
set interfaces tunnel tun1 parameters ip key 200

commit
save

IPIP Tunnel

IPIP - это простейший тип туннеля, инкапсулирующий IPv4 в IPv4. Не поддерживает multicast, но имеет минимальный overhead.

Базовая конфигурация IPIP

# Создание IPIP туннеля
set interfaces tunnel tun0 encapsulation ipip
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30

commit
save

IPIP для простой point-to-point связи

# Сайт A
set interfaces tunnel tun0 encapsulation ipip
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30

# Статический маршрут к удаленной сети
set protocols static route 192.168.2.0/24 next-hop 10.10.10.2

commit
save
# Сайт B
set interfaces tunnel tun0 encapsulation ipip
set interfaces tunnel tun0 source-address 198.51.100.1
set interfaces tunnel tun0 remote 203.0.113.1
set interfaces tunnel tun0 address 10.10.10.2/30

# Статический маршрут к удаленной сети
set protocols static route 192.168.1.0/24 next-hop 10.10.10.1

commit
save

SIT Tunnel (IPv6-in-IPv4)

SIT (Simple Internet Transition) туннели используются для транспорта IPv6 через IPv4 сети.

Базовая конфигурация SIT

# Создание SIT туннеля
set interfaces tunnel tun0 encapsulation sit
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 2001:db8:1::1/64

commit
save

SIT для подключения к IPv6 провайдеру (Hurricane Electric)

# Пример: Hurricane Electric Tunnel Broker
set interfaces tunnel tun0 encapsulation sit
set interfaces tunnel tun0 source-address 203.0.113.1  # Ваш IPv4
set interfaces tunnel tun0 remote 216.66.84.46        # HE tunnel server
set interfaces tunnel tun0 address 2001:470:1f0a:xxxx::2/64  # Ваш IPv6 (client)

# Маршрут по умолчанию через туннель
set protocols static route6 ::/0 next-hop 2001:470:1f0a:xxxx::1

# IPv6 на LAN интерфейсе
set interfaces ethernet eth1 address 2001:470:1f0b:xxxx::1/64

# Router Advertisement для клиентов
set service router-advert interface eth1 prefix 2001:470:1f0b:xxxx::/64

commit
save

SIT с множественными IPv6 подсетями

# SIT туннель
set interfaces tunnel tun0 encapsulation sit
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 2001:db8:1::1/64

# Дополнительные IPv6 адреса
set interfaces tunnel tun0 address 2001:db8:2::1/64
set interfaces tunnel tun0 address 2001:db8:3::1/64

commit
save

GRETAP (Ethernet over GRE)

GRETAP инкапсулирует Ethernet frames в GRE, позволяя создавать Layer 2 туннели (для bridging).

Базовая конфигурация GRETAP

# Создание GRETAP туннеля
set interfaces tunnel tun0 encapsulation gretap
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1

# MAC адрес туннельного интерфейса (опционально)
set interfaces tunnel tun0 address 00:11:22:33:44:55

commit
save

GRETAP с bridge для L2 extension

# GRETAP туннель
set interfaces tunnel tun0 encapsulation gretap
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1

# Bridge для расширения L2 сети
set interfaces bridge br0 member interface eth1
set interfaces bridge br0 member interface tun0
set interfaces bridge br0 address 192.168.1.1/24

commit
save

Теперь eth1 и удаленная сеть через tun0 находятся в одном L2 broadcast domain.

IP6GRE (GRE over IPv6)

IP6GRE - это GRE туннели, работающие через IPv6 transport.

Базовая конфигурация IP6GRE

# Создание IP6GRE туннеля
set interfaces tunnel tun0 encapsulation ip6gre
set interfaces tunnel tun0 source-address 2001:db8:1::1
set interfaces tunnel tun0 remote 2001:db8:2::1
set interfaces tunnel tun0 address 10.10.10.1/30

commit
save

Примеры конфигураций

Пример 1: GRE туннель для соединения офисов с OSPF

Офис A (203.0.113.1):

# WAN интерфейс
set interfaces ethernet eth0 address 203.0.113.1/24

# LAN интерфейс
set interfaces ethernet eth1 address 192.168.1.1/24

# GRE туннель к офису B
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30
set interfaces tunnel tun0 multicast enable

# OSPF для динамической маршрутизации
set protocols ospf area 0 network 10.10.10.0/30
set protocols ospf area 0 network 192.168.1.0/24
set protocols ospf parameters router-id 10.255.255.1

# Firewall для GRE (протокол 47)
set firewall ipv4 name WAN_LOCAL rule 100 action accept
set firewall ipv4 name WAN_LOCAL rule 100 protocol gre
set firewall ipv4 name WAN_LOCAL rule 100 source address 198.51.100.1

set interfaces ethernet eth0 firewall local name WAN_LOCAL

commit
save

Офис B (198.51.100.1):

# WAN интерфейс
set interfaces ethernet eth0 address 198.51.100.1/24

# LAN интерфейс
set interfaces ethernet eth1 address 192.168.2.1/24

# GRE туннель к офису A
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 198.51.100.1
set interfaces tunnel tun0 remote 203.0.113.1
set interfaces tunnel tun0 address 10.10.10.2/30
set interfaces tunnel tun0 multicast enable

# OSPF
set protocols ospf area 0 network 10.10.10.0/30
set protocols ospf area 0 network 192.168.2.0/24
set protocols ospf parameters router-id 10.255.255.2

# Firewall для GRE
set firewall ipv4 name WAN_LOCAL rule 100 action accept
set firewall ipv4 name WAN_LOCAL rule 100 protocol gre
set firewall ipv4 name WAN_LOCAL rule 100 source address 203.0.113.1

set interfaces ethernet eth0 firewall local name WAN_LOCAL

commit
save

Пример 2: GRE + IPsec для безопасного туннеля

Сайт A:

# GRE туннель
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30

# IPsec в transport mode для защиты GRE
set vpn ipsec esp-group ESP-GRE mode transport
set vpn ipsec esp-group ESP-GRE proposal 1 encryption aes256
set vpn ipsec esp-group ESP-GRE proposal 1 hash sha256

set vpn ipsec ike-group IKE-GRE key-exchange ikev2
set vpn ipsec ike-group IKE-GRE proposal 1 encryption aes256
set vpn ipsec ike-group IKE-GRE proposal 1 hash sha256

set vpn ipsec site-to-site peer 198.51.100.1 authentication mode pre-shared-secret
set vpn ipsec site-to-site peer 198.51.100.1 authentication pre-shared-secret 'StrongPassword123!'
set vpn ipsec site-to-site peer 198.51.100.1 ike-group IKE-GRE
set vpn ipsec site-to-site peer 198.51.100.1 local-address 203.0.113.1
set vpn ipsec site-to-site peer 198.51.100.1 tunnel 0 protocol gre

# Статический маршрут
set protocols static route 192.168.2.0/24 next-hop 10.10.10.2

commit
save

Пример 3: IPIP туннель для простой связи

# Сайт A
set interfaces tunnel tun0 encapsulation ipip
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.10.1/30

# MTU adjustment (IPIP overhead = 20 bytes)
set interfaces tunnel tun0 mtu 1480

# Статический маршрут
set protocols static route 192.168.2.0/24 next-hop 10.10.10.2

commit
save

Пример 4: SIT туннель для IPv6 (Hurricane Electric)

# Получить параметры от tunnelbroker.net

# SIT туннель
set interfaces tunnel tun0 encapsulation sit
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 216.66.84.46
set interfaces tunnel tun0 address 2001:470:1f0a:1234::2/64
set interfaces tunnel tun0 description 'HE IPv6 Tunnel'

# Маршрут по умолчанию IPv6
set protocols static route6 ::/0 next-hop 2001:470:1f0a:1234::1

# Routed /48 на LAN
set interfaces ethernet eth1 address 2001:470:1f0b:1234::1/64

# Router Advertisement
set service router-advert interface eth1 prefix 2001:470:1f0b:1234::/64

commit
save

Пример 5: Hub-and-Spoke с GRE

Hub (головной офис):

# Туннель к Spoke 1
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1
set interfaces tunnel tun0 address 10.10.1.1/30
set interfaces tunnel tun0 parameters ip key 100

# Туннель к Spoke 2
set interfaces tunnel tun1 encapsulation gre
set interfaces tunnel tun1 source-address 203.0.113.1
set interfaces tunnel tun1 remote 198.51.100.2
set interfaces tunnel tun1 address 10.10.2.1/30
set interfaces tunnel tun1 parameters ip key 200

# Туннель к Spoke 3
set interfaces tunnel tun2 encapsulation gre
set interfaces tunnel tun2 source-address 203.0.113.1
set interfaces tunnel tun2 remote 198.51.100.3
set interfaces tunnel tun2 address 10.10.3.1/30
set interfaces tunnel tun2 parameters ip key 300

# BGP для динамической маршрутизации
set protocols bgp local-as 65000
set protocols bgp neighbor 10.10.1.2 remote-as 65001
set protocols bgp neighbor 10.10.2.2 remote-as 65002
set protocols bgp neighbor 10.10.3.2 remote-as 65003

commit
save

Spoke 1:

# Туннель к Hub
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 source-address 198.51.100.1
set interfaces tunnel tun0 remote 203.0.113.1
set interfaces tunnel tun0 address 10.10.1.2/30
set interfaces tunnel tun0 parameters ip key 100

# BGP к Hub
set protocols bgp local-as 65001
set protocols bgp neighbor 10.10.1.1 remote-as 65000
set protocols bgp address-family ipv4-unicast network 192.168.1.0/24

commit
save

Пример 6: GRETAP для L2 extension

Сайт A:

# GRETAP туннель
set interfaces tunnel tun0 encapsulation gretap
set interfaces tunnel tun0 source-address 203.0.113.1
set interfaces tunnel tun0 remote 198.51.100.1

# Bridge для L2 extension
set interfaces bridge br0 member interface eth1
set interfaces bridge br0 member interface tun0

# DHCP relay через туннель (опционально)
set service dhcp-relay interface br0
set service dhcp-relay interface eth0
set service dhcp-relay server 192.168.1.10

commit
save

Мониторинг и диагностика

Просмотр статуса туннелей

# Показать все туннельные интерфейсы
show interfaces tunnel

# Детальная информация
show interfaces tunnel tun0

# Статистика
show interfaces tunnel tun0 statistics

Проверка связности

# Ping через туннель
ping 10.10.10.2 interface tun0

# Traceroute
traceroute 192.168.2.1

# MTU проверка (с Don't Fragment)
ping 10.10.10.2 size 1472 do-not-fragment

Мониторинг трафика

# Захват пакетов на туннельном интерфейсе
sudo tcpdump -i tun0 -nn

# Захват GRE пакетов на физическом интерфейсе
sudo tcpdump -i eth0 proto gre

# Захват IPIP
sudo tcpdump -i eth0 proto 4

# Детальный вывод
sudo tcpdump -i tun0 -vvv

Проверка routing

# Таблица маршрутизации
show ip route

# Конкретный маршрут
show ip route 192.168.2.0/24

# OSPF routes (если используется)
show ip ospf route

# BGP routes (если используется)
show ip bgp

Диагностика MTU

# Path MTU Discovery
ping 10.10.10.2 size 1400 do-not-fragment

# Постепенное увеличение размера пакета
ping 10.10.10.2 size 1200 do-not-fragment
ping 10.10.10.2 size 1300 do-not-fragment
ping 10.10.10.2 size 1400 do-not-fragment
ping 10.10.10.2 size 1500 do-not-fragment  # Должен провалиться

Проверка конфигурации

# Показать конфигурацию туннеля
show configuration interfaces tunnel tun0

# Все туннели
show configuration interfaces tunnel

Устранение неполадок

Проблема: Туннель не поднимается

Диагностика:

# 1. Проверка интерфейса
show interfaces tunnel tun0

# 2. Проверка связности внешних IP
ping 198.51.100.1

# 3. Проверка firewall
show firewall

# 4. Логи
show log | match tun0

Решение:

# Проверить source/remote адреса
show configuration interfaces tunnel tun0

# Разрешить GRE в firewall (протокол 47)
set firewall ipv4 name WAN_LOCAL rule 100 action accept
set firewall ipv4 name WAN_LOCAL rule 100 protocol gre

# Для IPIP (протокол 4)
set firewall ipv4 name WAN_LOCAL rule 100 protocol 4

commit
save

Проблема: Туннель работает, но нет связности

Диагностика:

# Ping по туннельному IP
ping 10.10.10.2

# Проверка маршрутов
show ip route

# Traceroute
traceroute 192.168.2.1

Решение:

# Добавить маршруты (если статические)
set protocols static route 192.168.2.0/24 next-hop 10.10.10.2

# Проверить routing protocol (если OSPF/BGP)
show ip ospf neighbor
show ip bgp summary

commit
save

Проблема: Низкая производительность / packet loss

Причина: MTU issues - туннель добавляет overhead.

Диагностика:

# Проверка MTU
show interfaces tunnel tun0

# Path MTU Discovery
ping 10.10.10.2 size 1472 do-not-fragment

Решение:

# Уменьшить MTU на туннеле
# GRE overhead = 24 bytes (20 IP + 4 GRE)
# IPIP overhead = 20 bytes
# Standard MTU 1500 - 24 = 1476

set interfaces tunnel tun0 mtu 1476

# MSS clamping для TCP (опционально)
set firewall ipv4 name FORWARD rule 100 action accept
set firewall ipv4 name FORWARD rule 100 protocol tcp
set firewall ipv4 name FORWARD rule 100 tcp flags syn
set firewall ipv4 name FORWARD rule 100 tcp mss 1436

commit
save

Проблема: GRE не работает через NAT

Причина: NAT не всегда корректно обрабатывает GRE (протокол 47).

Решение:

Используйте GRE over IPsec (NAT-T автоматически обрабатывается IPsec).

# GRE + IPsec конфигурация (см. Пример 2 выше)
set vpn ipsec site-to-site peer <remote> tunnel 0 protocol gre

Или используйте VTI (Virtual Tunnel Interface) с IPsec.

Проблема: OSPF/BGP не работает через туннель

Диагностика:

# Проверка multicast на GRE
show configuration interfaces tunnel tun0 multicast

# OSPF neighbors
show ip ospf neighbor

# BGP neighbors
show ip bgp summary

Решение:

# Включить multicast на GRE (для OSPF)
set interfaces tunnel tun0 multicast enable

# Проверить OSPF network statements
set protocols ospf area 0 network 10.10.10.0/30

commit
save

Проблема: SIT туннель не получает IPv6

Диагностика:

# Проверка туннеля
show interfaces tunnel tun0

# Ping IPv6 gateway
ping 2001:470:1f0a:1234::1

# IPv6 routing
show ipv6 route

Решение:

# Проверить source/remote адреса
show configuration interfaces tunnel tun0

# Добавить маршрут по умолчанию
set protocols static route6 ::/0 next-hop 2001:470:1f0a:1234::1

# Проверить firewall для IPv6
show firewall ipv6

commit
save

Лучшие практики

1. Правильный выбор типа туннеля

# GRE - для универсальных нужд с routing protocols
set interfaces tunnel tun0 encapsulation gre

# IPIP - для простых IPv4 туннелей без multicast
set interfaces tunnel tun0 encapsulation ipip

# SIT - только для IPv6 через IPv4
set interfaces tunnel tun0 encapsulation sit

2. MTU configuration

Всегда настраивайте правильный MTU:

# GRE: 1500 - 24 = 1476
set interfaces tunnel tun0 mtu 1476

# IPIP: 1500 - 20 = 1480
set interfaces tunnel tun0 mtu 1480

# SIT: 1500 - 20 = 1480
set interfaces tunnel tun0 mtu 1480

3. Безопасность туннелей

Туннели без шифрования - используйте IPsec:

# GRE + IPsec для шифрования
set vpn ipsec site-to-site peer <remote> tunnel 0 protocol gre

4. Firewall rules

Разрешайте туннельные протоколы:

# GRE (протокол 47)
set firewall ipv4 name WAN_LOCAL rule 100 action accept
set firewall ipv4 name WAN_LOCAL rule 100 protocol gre
set firewall ipv4 name WAN_LOCAL rule 100 source address <remote-ip>

# IPIP (протокол 4)
set firewall ipv4 name WAN_LOCAL rule 101 action accept
set firewall ipv4 name WAN_LOCAL rule 101 protocol 4
set firewall ipv4 name WAN_LOCAL rule 101 source address <remote-ip>

5. Monitoring

Мониторьте состояние туннелей:

# Task Scheduler для проверки
set system task-scheduler task check-tunnel interval '*/5 * * * *'
set system task-scheduler task check-tunnel executable path '/config/scripts/check-tunnel.sh'

Скрипт /config/scripts/check-tunnel.sh:

#!/bin/bash
if ! ping -c 3 -W 2 10.10.10.2 > /dev/null 2>&1; then
    logger -t tunnel-monitor "Tunnel tun0 is DOWN"
    echo "Tunnel tun0 is DOWN" | mail -s "Tunnel Alert" admin@example.com
fi

6. Описания интерфейсов

Документируйте туннели:

set interfaces tunnel tun0 description 'GRE to Branch-Office-B (198.51.100.1)'

7. GRE keys для множественных туннелей

Используйте GRE keys для идентификации:

set interfaces tunnel tun0 parameters ip key 100
set interfaces tunnel tun1 parameters ip key 200

8. Redundancy

Настройте резервные туннели для критичных связей:

# Основной туннель через ISP1
set interfaces tunnel tun0 source-address 203.0.113.1

# Резервный туннель через ISP2
set interfaces tunnel tun1 source-address 198.51.100.1

# BGP для автоматического failover
set protocols bgp neighbor 10.10.10.2 remote-as 65001
set protocols bgp neighbor 10.10.11.2 remote-as 65001

9. QoS через туннели

Применяйте QoS для приоритизации трафика:

set traffic-policy shaper TUNNEL-QOS bandwidth 50mbit
set traffic-policy shaper TUNNEL-QOS class 10 bandwidth 10mbit
set traffic-policy shaper TUNNEL-QOS class 10 priority 7
set traffic-policy shaper TUNNEL-QOS class 10 match voip ip dscp ef

set interfaces tunnel tun0 traffic-policy out TUNNEL-QOS

10. Documentation

Документируйте все туннели в системе:

# Файл /config/tunnels.txt
# tun0: GRE to Branch-B (198.51.100.1), OSPF enabled
# tun1: GRE to Branch-C (198.51.100.2), OSPF enabled
# tun2: SIT for IPv6 (HE Tunnel Broker)

Полезные команды

# Показать все туннели
show interfaces tunnel

# Детали конкретного туннеля
show interfaces tunnel tun0

# Статистика
show interfaces tunnel tun0 statistics

# Конфигурация
show configuration interfaces tunnel tun0

# Ping через туннель
ping 10.10.10.2 interface tun0

# MTU test
ping 10.10.10.2 size 1472 do-not-fragment

# Traceroute
traceroute 192.168.2.1

# tcpdump на туннеле
sudo tcpdump -i tun0 -nn

# tcpdump GRE на физическом интерфейсе
sudo tcpdump -i eth0 proto gre

# Маршруты
show ip route

# OSPF (если используется)
show ip ospf neighbor
show ip ospf route

# BGP (если используется)
show ip bgp summary

# Логи
show log | match tun

Заключение

Tunnel интерфейсы в VyOS предоставляют гибкие возможности для соединения удаленных сетей через IP-инфраструктуру. Различные типы туннелей (GRE, IPIP, SIT, GRETAP, IP6GRE) подходят для разных сценариев - от простых point-to-point соединений до сложных hub-and-spoke топологий с динамической маршрутизацией.

Основные преимущества туннелей:

  • Простота настройки по сравнению с IPsec
  • Поддержка routing protocols (OSPF, BGP через GRE)
  • Multicast support (GRE, GRETAP)
  • Низкий overhead
  • Гибкость в топологии

Рекомендации для production:

  • Выбирайте правильный тип туннеля для задачи
  • Используйте GRE + IPsec для шифрования
  • Настраивайте правильный MTU (избегайте фрагментации)
  • Мониторьте состояние туннелей
  • Применяйте firewall rules для туннельных протоколов
  • Документируйте все туннели
  • Используйте routing protocols для автоматического failover
  • Применяйте QoS для критичного трафика

Туннели в VyOS обеспечивают надежное и гибкое соединение сетей, являясь альтернативой или дополнением к VPN решениям для различных enterprise и ISP сценариев.