Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Предупреждение |
---|
Данные пересылаются через туннели GRE без применения защитного преобразования, поэтому туннели GRE допустимо использовать только с протоколами передачи данных, поддерживающими защитное преобразование данных (например, протокол HTTPS). Заголовок пакета GRE занимает 20 байт24 байта, соответственно MTU MSS пакетов, пересылаемых через тоннели GRE уменьшается на 20 байт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;
- интерфейс eth0 (интерфейс общей сети):
- 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;
- интерфейс eth0:
Настройка тоннеля GRE
Включение перенаправление сетевых пакетов
Независимо от выбранного далее способа настройки тоннеля GRE для его работы нужно разрешить перенаправление сетевых пакетов. Для этого на сервере А и на сервере Б:
В файле /etc/sysctl.conf раскомменировать строку:
Блок кода net.ipv4.ip_forward=1
Для активации сделанных изменений выполнить команду:
Command sudo sysctl -p
Настройка правил iptables
Если в правила iptables включено применение по умолчанию правила reject, то работу тоннеля GRE нужно разрешить. Это можно сделать выполнив на обоих серверах команду:
Command |
---|
sudo iptables -A INPUT -p gre -j ACCEPT |
Или, что более безопасно, разрешить подключение только для конкретного сервера:
На сервере А | На сервере Б | ||||
---|---|---|---|---|---|
|
|
Для предотвращения проблем с передачей пакетов из-за уменьшенного на 20 байт MTU можно добавить правило:
Command |
---|
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 модули ядра. | |||||
|
| |||||
2. | Назначить созданному устройству тоннеля GRE статический IP-адрес. Команды должны выполняться в указанном прорядке, сначала присвоение адреса, потом выбор метода: | |||||
|
| |||||
3. | Создать статический маршрут для перенаправления трафика в сеть сервера Б (сеть 192.168.17.0/24): | Создать статический маршрут для перенаправления трафика в сеть сервера А (сеть 192.168.17.0/24): | ||||
|
| |||||
4. | Включить соединение gre1: | |||||
|
Настройка тоннеля GRE c помощью службы networking
Для создания тоннеля GRE с помощью службы networking:
1. Добавить в файл /etc/network/interfaces следующие строки:
На сервере А | На сервере Б |
---|---|
auto gre1 | auto gre1 |
2. Перезапустить службу networking:
Command |
---|
sudo systemctl restart networking |
Настройка тоннеля GRE c помощью сценария
На сервере А | На сервере Б | ||||
---|---|---|---|---|---|
|
|
Проверка работоспособности тоннеля GRE
Проверить список имеющихся тоннелей можно командой:
Command |
---|
ip tunnel list |
Простейшую проверку работоспособнности созданного тоннеля GRE можно выполнить с помощью команды ping, отправляя пакеты на адрес интерфейса сети другого сервера (интерфейс eth1):
На сервере А | На сервере Б | ||||
---|---|---|---|---|---|
|
|