Настройка туннеля ipip linux

Как сделать ipip tunnel между серверами linux?

Есть 2 сервера linux (debian\centos) Нужно сделать между ними ipip или vpn туннель, что бы «передать» ip с одного сервера на другой. S- сервер S1 123.123.123.123 S2 222.222.222.222 Нужно, что бы на S1 в интерфейсах отобразился «новый ip», подключенный через туннель (222.222.222.222) Но, что бы он отображался не как локальный 192.168.0.3 или 10.10.10.1, а именно 222. Читал статьи: netwild.ru/linuxipip https://debian.pro/1578 Но в них требуется, что бы на сервере-доноре было 2 ip (один из которых можно передать). А мне нужно сделать такой туннель (или «передать» ip), имея только по одному ip-адресу на серверах. P.S:Сервера в разных сетях и имеют статические ip. Как такое можно реализовать? Заранее спасибо

А если из интернета кто то шлет пакет на ip 222.222.222.222 то этот запрос должен поступать на обработку запущенной программе на первом сервере или на втором ? Как система должна это понимать, если ip на двух машинах ?

P.S. Но вообще то, что вы изначально спросили возможно. Я не зря ни в одном комментарии не употреблял слово «невозможно», а спрашивал как отличить одни пакеты от других. Просто настройка такой схемы с учетом правильных критериев отличия пакетов будет очень нетривиальной и запутанной, плюс те еще извраты с маршрутизацией, что бы часть пакетов машина перестала считать «своими». И в 99.999% случаев такое не нужно

Это что за туннель такой ? чем вы его поднимали ? Это очень похоже на алиас на интерфейсе а не на туннель, т.е. он не заворачивает пакеты в внешнюю оболочку. И почему на нем ip который приходится затирать на картинке, т.е. не внутренний

Читайте также:  Linux workspace in windows

Странный у вас vpn, pptp обычно поднимаем ppp интерфесы. А у вас на этом «интерфейсе» даже счетчиков пакетов нет. Он не настоящий, а просто алиас на на eth0. А вы попробуйте попингуйте с одной машины другую по ip которые на этих интерфейсах. Только перед этим rounte -n посмотрите, убедитесь, что ip который на vpn с другой стороны туннеля есть в маршрутизации отдельной записью

В ответе написал для туннеля ipip, если у вас vpn вдруг все таки рабочий, можете просто правила маршрутизации/фаервола взять и поставить в них нужные ip

4 ответа 4

Ответ на уточнения вопроса в комментариях к нему. Потому как решение вопроса «как есть» представляется не целесообразным. Пишу на скорую руку, без стендов .

Дано: 2 сервера, смотрящие в интернет и имеющие реальные ip адреса, стоящие на интерфейсах eth0 . Сервер S1 с ip 1.1.1.1 должен отправлять почту (и возможно что то еще) таким образом, что бы она реально уходила со второго сервера. Второй сервер S2 с ip 2.2.2.2

Конфигурация S1 (отправляющий почту):

#!/bin/sh ## ip tu add tunl1 mode ipip local 1.1.1.1 remote 2.2.2.2 # создаем туннель ## ifconfig tunl1 192.168.2.1 netmask 255.255.255.255 pointopoint 192.168.2.2 iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 0x2 # маркируем пакеты исходящей почты iptables -t nat -A POSTROUTING -s 1.1.1.1 -o tunl1 -j SNAT --to-source 192.168.2.1 # Создаем во 2й таблице маршрутизации маршрут по умолчанию ведущий через туннель ip route add tab 2 default via 192.168.2.2 src 192.168.2.1 # добавляем политику маршрутизации пакетов помеченных маркой 2 через 2ю таблицу ip rule add prio 100 fwmark 0x2/0x2 lookup 2 ip route flush cache # Сброс кеша маршрутизации. Перестраховка. В стартовых скриптах системы можно не делать 
#!/bin/sh echo 1 >/proc/sys/net/ipv4/ip_forward # разрешаем проброску трафика через систему (если не включено в /etc/sysctl.conf) ##ip tu add tunl1 mode ipip local 2.2.2.2 remote 1.1.1.1 ##ifconfig tunl1 192.168.2.2 netmask 255.255.255.255 pointopoint 192.168.2.1 iptables -t nat -A POSTROUTING -s 192.168.2.1 -o eth0 -j MASQUERADE # Все пакеты идущие из туннеля в интернет маскарадим в наш внешний ip 

Просмотр туннелей ip tu , удаление туннеля ip tu del tunl1 . Просмотр конкретной (2й например) таблицы маршрутизации ip ro li tab 2 , просмотр политики маршрутизации ip ru , удалении конкретной политики ip ru del параметры-правила

Читайте также:  Образ виртуальная машина linux для virtualbox

Источник

Туннель IPIP между двумя Linux

Пожалуй один из самых простых в настройке туннелей, который я знаю. Удобство ещё и в том, что его можно настроить как на 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

Читайте также:  Alcohol 120 on linux

Запись опубликована в рубрике vpn с метками cisco, ipip, linux, tunnel, vpn. Добавьте в закладки постоянную ссылку.

7 комментариев на «Туннель IPIP между двумя Linux»

Любой дистрибутив подойдет? Правильно ли я понял, что основным условием является наличие белых ip на обоих шлюзах? Получается если все настроить так как написано в статье, мы получаем объединение двух удаленных офисов? А если есть третий или четвертый офис? Схема таже? Спасибо.

Да, достаточно прописать статические маршруты, и будет объединение офисов. Ещё, хотелось бы добавить, что если ваш провайдер блокирует различные vpn протоколы, по типу протокола, например gre, по портам, например TCP 1723 (pptp), UDP 1701 (l2tp), то заблокировать ipip равносильно блокировке протокола IP, или можно заблокировать по конкретным хостам.

Источник

Оцените статью
Adblock
detector