Записки системного администратора

Ещё один блог о системном администрировании, операционных системах, СУБД, сетях, костылях-велосипедах и пр.

CentOS 7: настройка IPIP-туннеля за 5 минут

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

Стоит отметить, что удобство использования IPIP-туннеля состоит еще в том, что его можно настроить как на UNIX-системах, так и на роутерах Mikrotik или Cisco. В дистрибутиве Centos7 уже имеется все необходимое для создания IPIP-туннеля. Служебные скрипты для настройки сети и сами конфигурационные файлы хранятся по традиции в каталоге /etc/sysconfig/network-scripts/.

Итак, обозначим исходные данные, которые необходимы для настройки туннеля.
Имеем два сервера виртуализации под управлением Centos7 со следующими внешними IP-адресами:

srv-kvm1 WAN: 111.112.113.114
srv-kvm2 WAN: 121.122.123.124

На каждом сервере имеется виртуальная локальная сеть:

srv-kvm1 LAN: 10.1.1.0/24
srv-kvm2 LAN: 10.1.2.0/24

И нам необходимо соединить эти виртуальные локальные сети посредством IPIP-туннеля со следующими параметрами:

srv-kvm1 IPIP: 10.10.1.1/30
srv-kvm2 IPIP: 10.10.1.2/30

Создаем файл ifcfg-tun0 на сервере srv-kvm1 со следующим содержимым:

DEVICE=tun0
MY_OUTER_IPADDR=111.112.113.114
PEER_OUTER_IPADDR=121.122.123.124
MY_INNER_IPADDR=10.10.1.1/30
PEER_INNER_IPADDR=10.10.1.2/30
TYPE=IPIP
TTL=255
ONBOOT=yes

На сервере srv-kvm2 создаем такой же файл, с зеркальной заменой адресов:

DEVICE=tun0
MY_OUTER_IPADDR=121.122.123.124
PEER_OUTER_IPADDR=111.112.113.114
MY_INNER_IPADDR=10.10.1.2/30
PEER_INNER_IPADDR=10.10.1.1/30
TYPE=IPIP
TTL=255
ONBOOT=yes

Думаю, описывать содержимое этих файлов не стоит, и так все понятно :)

Теперь необходимо создать таблицу маршрутизации для нашего интерфейса на каждом сервере. В файл /etc/iproute2/rt_tables добавляем строку:

100    tabletun0

Опишем правила маршрутизации. На сервере srv-kvm1 создаем файл rule-tun0 cо следующим содержимым:

from 10.10.1.1 lookup tabletun0

На втором сервере:

from 10.10.1.2 lookup tabletun0

Опишем необходимые маршруты. Для этого на сервере srv-kvm1 в файле route-tun0 запишем:

default dev tun0 table tabletun0
10.1.2.0/24 dev tun0

На втором сервере:

default dev tun0 table tabletun0
10.1.1.0/24 dev tun0

В настройках iptables каждого сервера нужно разрешить принимать протокол ipip.
На srv-kvm1:

# iptables -A INPUT -p ipip -s 121.122.123.124 -j ACCEPT

На srv-kvm2:

# iptables -A INPUT -p ipip -s 111.112.113.114 -j ACCEPT

Поднимаем интерфейс командой:

# ifup tun0

На этом настройка закончена. В результате нам удалось соединить две виртуальные локальные сети IPIP-туннелем, который будет автоматически подниматься после перезагрузки серверов со всеми необходимыми маршрутами.

Комментарии (RSS)

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

Комментарий ожидает проверки

HTML Preview:

Коротко о себе:

Привет! Меня зовут Вадим. В этом блоге я пишу об интересующих меня вещах, о проблемах, с которыми сталкиваюсь во время работы, и о путях их решения.

Связаться со мной можно, написав письмо на адрес vadim@adminbook.click