Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 4 Следующий »

Данная статья применима к:

  • 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 занимает 20 байт, соответственно MTU пакетов, пересылаемых через GRE уменьшается на 20 байт, что может вызвать проблемы при передаче через Интернет.

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

  • 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. Для активации сделанных изменений выполнить команду:

    sudo sysctl -p

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

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

sudo iptables -A INPUT -p gre -j ACCEPT

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

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

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

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

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

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

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

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

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


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

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

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

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-адрес.
Команды должны выполняться в указанном прорядке, сначала присвоение адреса, потом выбор метода:

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

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.17.0/24):

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

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

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

sudo nmcli con up gre1

Настройка тоннеля GRE c помощью службы 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:

sudo systemctl restart networking

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

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

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

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

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

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

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

ping 192.168.17.174

ping 192.168.166.237

  • Нет меток