Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.


Оглавление



Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12



Предупреждение

Данные пересылаются через туннели GRE без применения защитного преобразования, поэтому туннели GRE допустимо использовать только с протоколами передачи данных, поддерживающими защитное преобразование данных (например, протокол HTTPS).

Заголовок пакета GRE занимает 24 байта, соответственно MSS пакетов, пересылаемых через тоннели GRE уменьшается на 24 байта, что может вызвать проблемы при передаче через Интернет.


Исходные данные

В качестве стенда используются два сервера, каждый из которых снабжен двумя сетевыми интерфейсам. Один интерфейс используется для подключения в общей сети серверов, второй интерфейс - для подключения к локальной сети сервера. Конфигурация:

  • cервер А:
    • интерфейс eth0 (интерфейс общей сети):
      • IP-адрес: 192.168.27.137;
    • интерфейс eth1 (интерфейс сети сервера А):
      • IP-адрес: 192.168.166.237;
      • сеть: 192.168.166.0/24:
    • внутренний IP-адрес туннеля GRE: 10.0.1.1/30;
  • cервер Б:
    • интерфейс eth0:
      • IP-адрес: 192.168.27.56;
    • интерфейс eth1 (интерфейс сети сервера Б):
      • IP-адрес: 192.168.17.174;
      • сеть: 192.168.17.0/24:
    • внутренний IP-адрес туннеля GRE: 10.0.1.2/30;


Настройка тоннеля GRE

Включение перенаправления сетевых пакетов

Независимо от выбранного далее способа настройки тоннеля GRE для его работы нужно разрешить перенаправление сетевых пакетов. Для этого на сервере А и на сервере Б:

  1. В файле /etc/sysctl.conf раскомменировать строку:

    Блок кода
    net.ipv4.ip_forward=1


  2. Для активации сделанных изменений выполнить команду:

    Command
    sudo sysctl -p


Сделанные изменения будут сохраняться после перезагрузки ОС.

Настройка правил iptables

Информация
Правила iptables по умолчанию после перезагрузки не сохраняются. Для настройки автоматического восстановление правил iptables после перезагрузки см: Сохранение и восстановление после перезагрузки правил iptables.


Если в правила iptables включено применение по умолчанию правила reject, то работу тоннеля GRE необходимо разрешить специальным правилом. Это можно сделать выполнив на обоих серверах команду:

Command
sudo iptables -A INPUT -p gre -j ACCEPT

Или, что более безопасно, разрешить подключение только для конкретного сервера:

На сервере АНа сервере Б


Command
sudo iptables -A INPUT -p gre -s 192.168.27.56 -j ACCEPT



Command
sudo iptables -A INPUT -p gre -s 192.168.27.137 -j ACCEPT


Для предотвращения проблем с передачей пакетов из-за уменьшенного на 20 байт MTU на всех серверах можно добавить правило iptables, включающее автоматический перерасчет MSS для соединений:

Command
sudo iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Настройка тоннеля GRE c помощью интерфейса командной строки NetworkManager

Информация
Для того, чтобы команды выполнялись без использования привилегий суперпользователя, текущий пользователь должен быть включен в группу netdev.


Действия по настройке серверов симметричны, здесь и далее для наглядности различия в командах выделены цветом:

ШагНа сервере АНа сервере Б
1.Создать соединение и устройство тоннеля GRE с именем gre1. При выполнении команды будут автоматически загружены необходимые для работы GRE модули ядра.


Command
nmcli con add type ip-tunnel ip-tunnel.mode gre con-name gre1 ifname gre1 \
remote 192.168.27.56 local 192.168.27.137



Command
nmcli con add type ip-tunnel ip-tunnel.mode gre con-name gre1 ifname gre1 \
remote 192.168.27.137 local 192.168.27.56


2.Назначить созданному устройству тоннеля GRE статический IP-адрес.
Команды должны выполняться в указанном порядке: сначала присвоение адреса, потом выбор метода:


Command
nmcli con mod gre1 ipv4.addresses '10.0.1.1/30'
nmcli con mod gre1 ipv4.method manual



Command
nmcli con mod gre1 ipv4.addresses '10.0.1.2/30'
nmcli con mod gre1 ipv4.method manual


3.Создать статический маршрут для перенаправления трафика в сеть сервера Б
(сеть 192.168.17.0/24):
Создать статический маршрут для перенаправления трафика в сеть сервера А
(сеть 192.168.166.0/24):


Command
nmcli con mod gre1 +ipv4.routes "192.168.17.0/24 10.0.1.2"



Command
nmcli con mod gre1 +ipv4.routes "192.168.166.0/24 10.0.1.1"


4.Включить соединение gre1:


Command
sudo nmcli con up gre1


Сделанные изменения будут сохраняться после перезагрузки ОС.

Настройка тоннеля GRE c помощью графического плагина NetworkManager nm-connection-editor

Информация
Для того, чтобы редактирование сетевых интерфейсов было доступно без использования привилегий суперпользователя, текущий пользователь дожен должен быть включен в группу netdev.

Графический плагин NetworkManager для редактирования сетевых соединений доступен для запуска из системного трея (нажать правой кнопкой мыши на иконку сетевых соединений, затем во всплывающем меню выбрать пункт "Изменить соединения")
или из командной строки командой:

Command
nm-connection-manager

После запуска приложения для создания нового туннеля:

  1. Нажать значок "+";
  2. Выбрать тип соединения "ip-туннель";
  3. Нажать кнопку "Создать";
  4. В появившейся форме:
    1. Выбрать режим "GRE";
    2. Заполнить остальные параметры (значения параметров приведены в предыдущем разделе);
    3. Перейти во вкладку "Параметры IPv4";
    4. Нажать кнопку "Маршруты" и добавить необходимые маршруты;
  5. Нажать кнопку "Сохранить".

Сделанные изменения будут сохраняться после перезагрузки ОС.

Настройка тоннеля GRE с помощью службы networking

Для создания тоннеля GRE с помощью службы networking:

1. Добавить в файл /etc/network/interfaces следующие строки:

На сервере АНа сервере Б

auto gre1
iface gre1 inet static
        address 10.0.1.1
        netmask 255.255.255.252
        mtu 1400
        up ifconfig gre1 multicast
        pre-up iptunnel add gre1 mode gre remote 192.168.27.56 local 192.168.27.137 dev eth0
        post-up route add -net 192.168.17.0 netmask 255.255.255.0 gw 10.0.1.2
        pointopoint 10.0.1.2
        post-down iptunnel del gre1

auto gre1
iface gre1 inet static
        address 10.0.1.2
        netmask 255.255.255.252
        mtu 1400
        up ifconfig gre1 multicast
        pre-up iptunnel add gre1 mode gre remote 192.168.27.137 local 192.168.27.56 dev eth0
        post-up route add -net 192.168.166.0 netmask 255.255.255.0 gw 10.0.1.1
        pointopoint 10.0.1.1
        post-down iptunnel del gre1

2. Перезапустить службу networking:

Command
sudo systemctl restart networking

Сделанные изменения будут сохраняться после перезагрузки ОС.

Настройка тоннеля GRE c помощью сценария

На сервере АНа сервере Б


Command
sudo ip tunnel add gre1 mode gre remote 192.168.27.56 local 192.168.27.137 dev eth0
sudo ifconfig gre1 10.0.1.1 pointopoint 10.0.1.2
sudo ifconfig gre1 mtu 1400
sudo ifconfig gre1 up
sudo route add -net 192.168.17.0 netmask 255.255.255.0 gw 10.0.1.2



Command
sudo ip tunnel add gre1 mode gre remote 192.168.27.137 local 192.168.27.56 dev eth0
sudo /sbin/ifconfig gre1 10.0.1.2 pointopoint 10.0.1.1
sudo /sbin/ifconfig gre1 mtu 1400
sudo /sbin/ifconfig gre1 up
sudo route add -net 192.168.166.0 netmask 255.255.255.0 gw 10.0.1.1



Примечание
Сделанные изменения не будут сохраняться после перезагрузки ОС.

Настройка тоннелей GRE в режиме точка-многоточка. Использование ключей GRE

Исходные данные

  • cервер А:
    • IP-адрес: 192.168.0.101;
    • адрес GRE: 10.0.0.1;
  • cервер Б:
    • IP-адрес: 192.168.0.102;
    • адрес GRE: 10.0.0.2;
  • cервер В:
    • IP-адрес: 192.168.0.103;
    • адрес GRE: 10.0.0.3;

Предполагается, что серверы работают в сети, в которой запрещена рассылка multicast-сообщений (например, в сети Интернет).

Создание тоннеля

Сервер АСервер БСервер В

На всех серверах создается устройство GRE с именем mgre0 без указания адреса второго участника тоннеля и с указанием ключа GRE.
Ключ GRE- 32-битное число, одинаковое для всех участников тоннеля. Ключ GRE может быть задан как число или как октет десятичных чисел (как обычно записывается IP-адрес):

Command
sudo ip tunnel add mgre0 mode gre key 0xfffffffe


На каждом сервере созданному устройству назначается индивидуальный IP-адрес:


Command
sudo ip addr add 10.0.0.1/24 dev mgre0



Command
sudo ip addr add 10.0.0.2/24 dev mgre0



Command
sudo ip addr add 10.0.0.3/24 dev mgre0


Так как предполагается, что серверы работают в сети, в которой запрещена рассылка multicast-сообщений (например, в сети Интернет).
На каждом сервере его соседи указываются вручную. Команды:


Command

sudo ip neigh add 10.0.0.2 lladdr 192.168.0.102 dev mgre0
sudo ip neigh add 10.0.0.3 lladdr 192.168.0.103 dev mgre0



Command

sudo ip neigh add 10.0.0.1 lladdr 192.168.0.101 dev mgre0
sudo ip neigh add 10.0.0.3 lladdr 192.168.0.103 dev mgre0



Command

sudo ip neigh add 10.0.0.1 lladdr 192.168.0.101 dev mgre0
sudo ip neigh add 10.0.0.2 lladdr 192.168.0.102 dev mgre0


На всех серверах запустить созданные устройства:

Command
sudo ip link set mgre0 up



Проверка работоспособности тоннеля GRE

Проверить список имеющихся тоннелей можно командой:

Command
ip tunnel list

Простейшую проверку работоспособности созданного тоннеля GRE можно выполнить с помощью команды ping, отправляя пакеты на адрес интерфейса сети другого сервера (интерфейс eth1):

На сервере АНа сервере Б


Command
ping 192.168.17.174



Command
ping 192.168.166.237