From: Фёдоров Алексей <alexey_fyodorov@mail.ru>
Date: Mon, 25 Feb 2003
Subject: Создание VPN GRE тунеля в Linux
Создание VPN тунеля в линукс (Linux) за 5 минут без дополнительного ПО.
-------------------
Просмотрев много статей по созданию тунелей я к своему удивлению не нашел ничего
о том как быстро и без проблем создать тунель между двумя машинами (сетями)
через интернет. И вот решил написать.
Буду предельно краток...
И так, ДАНО:
1. Сеть 192.168.1.0/24 (255.255.255.0) В которой есть машина подключенная
к интернет. Со стороны локальной сети машина имеет IP: 192.168.1.1 (на eth1)
а со стороны инета имеет IP: 195.64.21.123 (на eth0) Назовем эту машину ALPHA.
2. Сеть 192.168.2.0/24 (255.255.255.0) В которой есть машина подключенная
к интернет. Со стороны локальной сети машина имеет IP: 192.168.2.1 (на eth1)
а со стороны инета имеет IP: 62.5.195.124 (на eth0) Назовем эту машину BETTA.
Цель: Надо организовать тунель между машинами ALPHA и BETTA, чтобы компьютеры
одной сети имели доступ к компьютерам в другой сети.
Решение:
Пишется скрипт следующего содержания и запускается на машине ALPHA:
#!/bin/sh
# insmod ip_gre
tnl=tnl0
remote=62.5.195.124
local=195.64.21.123
ip=192.168.1.1
range=192.168.2.0/24
# ip tunnel del $tnl
ip tunnel add $tnl mode gre local $local remote $remote ttl 255
ip addr add $ip dev $tnl
ip link set $tnl up
ip route add $range dev $tnl
-----------------------------------------------------------------------
А для машины BETTA пишется другой аналогичный скрипт и запускается:
#!/bin/sh
# insmod ip_gre
tnl=tnl0
remote=195.64.21.123
local=62.5.195.124
ip=192.168.2.1
range=192.168.1.0/24
# ip tunnel del $tnl
ip tunnel add $tnl mode gre local $local remote $remote ttl 255
ip addr add $ip dev $tnl
ip link set $tnl up
ip route add $range dev $tnl
-------------------------------------------------------------------------
И ВСЕ. Тепрь две сетки связаны тунелем.
Теперь примечания:
1.) Ядро должно быть собрано с включенными опциями поддержки тунелей
(GRE в частности). А так же с включенной опцией поддержки Advanced Routing.
(У меня вообще все фичи того что касается IP сетей ВКЛЮЧЕНЫ БЫЛИ)
2.) Строка "insmod ip_gre" у меня закоментирована т.к. ядро собрано без модулей
(все в ядре). Если у вас используются модули для тунеля, то просто
раскоментируйте строку в скриптах.
3.) Строка "ip tunnel del $tnl" у меня закоментирована. Если ее раскоментировать
то все будет работать, но при ПЕРВОМ запуске скрипта он ругнется (что не страшно).
Она нужна для того, если вы хотите повторно запустить скрипт (например сделали
изменения в параметрах тунеля) Тогда эта строка прибьет существующий тунель и
потом будет создан новой. При первом запуске прибивать нечего, а потому скрипт
ругается :) Для того чтоб никого не смущать я ее закоментировал.
Это все. Если что пишите на alexey_fyodorov@mail.ru
PS: Испытания проводились на ядрах Linux 2.4.19 2.4.20
644 Прочтений • [Создание VPN GRE тунеля в Linux (linux vpn tunnel)] [08.05.2012] [Комментариев: 0]