Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Предупреждение |
---|
Данные пересылаются через туннели 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;
- интерфейс 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 модули ядра. | ||||||
sudo
|
| ||||||
2. | Назначить созданному устройству тоннеля GRE статический IP-адрес:. Команды должны выполняться в указанном прорядке, сначала присвоение адреса, потом выбор метода: | ||||||
sudo nmcli con mod gre1 ipv4.method manual sudo
|
| ||||||
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 |
С помощью сценария
Проверка работоспособности тоннеля GRE
2. Перезапустить службу networking:
Command |
---|
sudo systemctl restart networking |
Настройка тоннеля GRE c помощью сценария
На сервере А | На сервере Б | ||||
---|---|---|---|---|---|
|
|
Проверка работоспособности тоннеля GRE
Проверить список имеющихся тоннелей можно командой:
Command |
---|
ip tunnel list |
Простейшую проверку работоспособнности созданного тоннеля GRE можно выполнить с помощью команды ping, отправляя пакеты на адрес интерфейса сети другого сервера (интерфейс eth1):
На сервере А | На сервере Б | ||||
---|---|---|---|---|---|
|
|