Пожалуй один из самых простых в настройке туннелей, который я знаю. Удобство ещё и в том, что его можно настроить как на unix-системе, так и на различных маршрутизаторах, в том числе Cisco, а также на Windows, последнее не проверял.
А самое приятное, что в любом Linux-дистрибутиве уже есть всё необходимое для создания ipip-туннеля.
Стоить отметить, что этот тип туннелей имеет тип точка-точка.
Есть и один недостаток этого вида туннеля в отличие от таких туннелей, как pptp, l2tp, openvpn, для ipip-туннеля необходимо условие: оба участника должны иметь внешние IP-адреса, или должны быть в одной сети, если быть точнее, между ними не должно быть никаких Nat’ов.
Чтобы проще понять алгоритм настройки обозначим исходные данные:
Сервер 1: IP-100.100.100.100
Сервер 2: IP-200.200.200.200
Нам нужно их объединить в одну сеть посредством vpn-туннеля со следующими данными:
Сервер 1: 10.0.0.1/255.255.255.252
Сервер 2: 10.0.0.2/255.255.255.252
Вся настройка состоит из трех команд на каждом из серверов:
Сервер 1:
1. Создадим ipip-туннельный интерфейс:
ip tunnel add tun0 mode ipip remote 200.200.200.200 local 100.100.100.100 dev eth0
2. Установим IP-адреса:
ifconfig tun0 10.0.0.1 netmask 255.255.255.252 pointopoint 10.0.0.2
3. Установим MTU и поднимем интерфейс:
ifconfig tun0 mtu 1492 up
Сервер 2:
1. Создадим ipip-туннельный интерфейс:
ip tunnel add tun0 mode ipip remote 100.100.100.100 local 200.200.200.200 dev eth0
2. Установим IP-адреса:
ifconfig tun0 10.0.0.2 netmask 255.255.255.252 pointopoint 10.0.0.1
3. Установим MTU и поднимем интерфейс:
ifconfig tun0 mtu 1492 up
Вот и всё!
Но для того, чтобы туннели восстанавливались после перезагрузки нужно написать скрипты с этими командами и добавить их например в /etc/rc.local
Любой дистрибутив подойдет? Правильно ли я понял, что основным условием является наличие белых ip на обоих шлюзах? Получается если все настроить так как написано в статье, мы получаем объединение двух удаленных офисов? А если есть третий или четвертый офис? Схема таже? Спасибо.
Да, достаточно прописать статические маршруты, и будет объединение офисов. Ещё, хотелось бы добавить, что если ваш провайдер блокирует различные vpn протоколы, по типу протокола, например gre, по портам, например TCP 1723 (pptp), UDP 1701 (l2tp), то заблокировать ipip равносильно блокировке протокола IP, или можно заблокировать по конкретным хостам.
и имеем грабли с MTU.
ifconfig tun0 mtu 1492 up
должно быть
Оно и с 1500 может работать, но вы правы, чтобы работало наверняка лучше MTU уменьшать.
+ 1 спасибо работает.
Но я правильно понимаю, что после этого надо маршруты ещё прописать между сетями которые находятся за хостами?
ip route add x.x.x.x/24 dev tun0 (x.x.x.x/24 local net)
Смотря какая задача. Если нужно просто между двумя хостами общаться по локальным IP, то не нужно добавлять никаких маршрутов. А если это два хоста, за каждым из которых находится своя локальная сеть , то да нужно прописывать маршруты для объединения двух локальных сетей.