GRE туннель в Linux на примере


GRE туннель в Linux настраивается очень быстро. Единственное требование — наличие белых IP адресов. Туннелирование такого типа относится к типу Ethernet.



GRE туннель в Linux


Туннелирование происходит по публичной сети, поэтому нужны публичные ip адреса (про публичные и приватные диапазоны).

Через туннель хосты смогут взаимодействовать используя приватные адреса, так будто они находятся в одной сети физически.



Ниже приведён готовый к использованию шаблон, в котором нужно только подставить ip адреса



ip link add grelan type gretap local <IP1> remote <IP2>


ip link set grelan up


iptables -I INPUT -p gre -s <IP2> -j ACCEPT

ip link add grelan type gretap local <IP2> remote <IP1>


ip link set grelan up


iptables -I INPUT -p gre -s <IP1> -j ACCEPT



Пример настройки GRE туннеля


Имеем два хоста в публичной сети:

  • Машина 1 с внешним адресом 1.2.3.4
  • Машина 2 с внешним адресом 2.3.4.5


Адреса, которые будут у машин после создания туннеля

192.168.0.1

192.168.0.2



Машина 1:

1. Добавляем виртуальную сетевую карту-шлюз на машину 1:

ip link add grelan type gretap local 1.2.3.4 remote 2.3.4.5

Сетевой интерфейс будет видно в ip a, на можно добавлять адреса, добавлять в мост и т.п.



2. Включаем добавленную карту

ip link set grelan up



2. Если запущен IP-tables — разрешаем GRE-трафик

iptables -I INPUT -p gre -s 2.3.4.5 -j ACCEPT



Пример добавленного интерфейса в выводе ip a:

GRE туннель в Linux


Машина 2:

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

1. Виртуальная сетевая карта-шлюз

ip link add grelan type gretap local 2.3.4.5 remote 1.2.3.4



2. Включение карты

ip link set grelan up



3. Изменения в iptables

iptables -I INPUT -p gre -s 1.2.3.4 -j ACCEPT



GRE туннель в Linux создан,теперь нужно добавить адреса для интерфейсов и направить трафик для необходимых сетей или хостов в туннель на обеих сторонах.



Можно добавлять адреса


Машина 1:

ip addr add dev grelan 192.168.0.1/24

route add -net 192.168.0.0 netmask 255.255.255.0 gw 1.2.3.4



Машина 2:

ip addr add dev grelan 192.168.0.2/24

route add -net 192.168.0.0 netmask 255.255.255.0 gw 2.3.4.5



Для интерфейса после указания адреса, маски добавляем маршруты.

Правила будут в силе до ближайшей перезагрузки.



Чтобы изменения подгружались после перезагрузки нужно внести правила в сетевые настройки серверов. В Debian/Ubuntu изменения нужно вносить /etc/network/interfaces или в файлы в директории /etc/network/interfaces.d.



Читайте про туннели типа ip-ip

Сказать спасибо