IP-тунелинг под ОС Linux. IP-in-IP vs. CIPE - разное - Linux - Каталог статей - Игры под Ос Линукс
Воскресенье, 05.02.2012, 21:28 Приветствую Вас Гость

Cайт посвящённый играм под Linux

Меню сайта
Форма входа
E-mail:
Пароль:
Категории раздела
open-suse [5]
разное [155]
centos [5]
Slackware [145]
Ubuntu [53]
Mandriva [0]
Поиск
Главная » Статьи » Linux » разное

IP-тунелинг под ОС Linux. IP-in-IP vs. CIPE

Эта статья рассмотрит преимущества и недостатки ПО для организации туннелей между двумя компьютерами под управлением ОС Linux.

Что это такое и с чем это едят..

Что такое туннелинг? Многие из вас задавались этим вопросом кто-то находил ответ, кто-то нет. Я попробую разъяснить. Туннелинг это подобие выделенной линии, но только поверх уже существующей сети. Используется это для, например, для соединения нескольких IPX или NETBEUI сетей через Internet в единую. Вы спросите, а нельзя обойтись без туннелинга и просто соединить их в одну? Ответ нет. Особенность Internet такова, что в нем используется один единый протокол - IP (Internet Protocol).

Для чего это нужно?

Самым простым примером может служить данная схема:



С помощью IP-тунеля внутренняя IPX сеть может быть объединена в единую корпоративную сеть.

Как это работает?

Примерно так:



IPX пакеты из Сети А адресованные компьютеру в Сети Б запаковываются внутрь пакетов IP-тунеля Компьютером А и передаются Компьютеру Б, который в свою очередь их распаковывает и отправляет адресату в Сети Б.

Как это реализовать?

Реализуется это на уровне маршрутизаторов. Например, данная функция есть в маршрутизаторах Cisco и Bay Networks, но я не стану на этом задерживаться - эта статья посвящена реализации IP-тунелинга на ОС Linux.

Первым способом послужит встроенная в ядро системы функция IP-тунелинга. IP-in-IP

Естественно не достаточно ее просто включить, требуется специальная настройка. Вот пример настройки IP-тунеля:

Компьютер А: 111.112.101.37

Компьютер Б: 111.112.100.86

по какой-то причине между ними требуется поднять IP-тунель.
(Компьютер А и Б в одной подсети)

Необходимые действия на Компьютере А:


# ifconfig tunl 111.112.100.87 pointopoint 111.112.100.86
# ifconfig tunl netmask 255.255.255.0 - устанавливаем нет-маску
# route add 111.112.100.86 dev eth0 - делаем запись в таблицу
статических роутов для
Компьютера Б
# route add -net 111.112.100.0 dev tunl - Настраиваем таблицу роутов
для подсети Компьютера Б.



Необходимые действия на Компьютере Б:


# ifconfig tunl 111.112.100.86 pointopoint 111.112.101.37
# ifconfig tunl netmask 255.255.255.0
- устанавливаем нет-маску
# route add 111.112.100.87 dev eth0 - делаем запись в таблицу
статических роутов для
Компьютера Б
# arp -s 111.112.100.87 EE.EE.EE.EE.EE pub - Настраиваем ARP таблицу.

Команда "arp -s" необходима чтобы Компьютер Б знал ARP адрес Компьютера А, т.к. они в разных IP-подсетах,то Компьютер Б не будет знать ARP адрес Компьютера А, и ему надо помочь :-)

Недостаток данного варианта в том, что в данном случае надо произвести много манипуляций с ядром системы и производимые действия требуют довольно глубоких познаний в устройстве протокола TCP/IP и новичкам это порой неподсилу. Но есть и преимущества - установка IP-тунеля не требует специального ПО, все что может понадобиться идет в комплекте с ОС.

Вторым вариантом может послужить программа CIPE v0.5.

CIPE расшифровывается как Crypto IP Encapsulation, из этого явственно следует, что это не просто программа для образования туннеля, а ПО для организации туннеля с криптованием передаваемых данных. Настройка CIPE проще чем встроенного в ядро драйвера туннелинга. Может показаться, что этот вариант лучше во всех отношениях, но нет ничего идеального и у CIPE свои недостатки, на них я остановлюсь далее, а сейчас о настройке.

Предположим, что Серверу 1 надо организовать туннель с Сервером 2, условием является то что сервера находятся в разных странах. Конечно можно воспользоваться первым вариантом, но это потребует произвести гораздо больше действий, чем описано, поэтому предпочтительней данный. Для начала надо , скомпилировать и инсталлировать CIPE. После этого требуется сделать следующее на Сервере 1:


# insmod cip3b.o - загружаем модуль тунеля

Далее надо отредактировать файл /etc/cipe/options:


device cip3b0 - имя интерфейса туннеля.
ptpaddr 10.0.0.2 - адрес Сервера 2
ipaddr 10.0.0.1 - адрес Сервера 1
me 194.67.110.8:6789 - настоящий адрес
Сервера 1
peer 195.16.96.96:6543 - настоящий адрес
Сервера 2
key 3238fd21adf9c10ccf9ecу2393bbb6e4 - секретный ключ
для криптования

Далее:

# /ciped
# /etc/cipe/ip-up cip3b0 10.0.0.1 194.67.110.8 195.16.96.96


На Сервере 2 проделываем тоже самое только изменяем /etc/cipe/options:

device cip3b0 - имя интерфейса туннеля.
ptpaddr 10.0.0.1 - адрес Сервера 1
ipaddr 10.0.0.2 - адрес Сервера 2
me 195.16.96.96:6543 - настоящий адрес
Сервера 2
peer 194.67.110.8:6789 - настоящий адрес
Сервера 1
key 3238fd21adf9c10ccf9ecу2393bbb6e4 - секретный ключ
для криптования

ВАЖНО: параметр key должен совпадать на Сервере 1 и на Сервере 2.

# /ciped
# /etc/cipe/ip-up cip3b0 10.0.0.2 195.16.96.96 194.67.110.8



Основные преимущества CIPE перед "родным" туннелем в Linux в том что он гораздо более прост в настройке, защищен он перехвата пакетов (ведь данные закриптованы), не требует больших познаний в TCP/IP и что не маловажно не требует специальной настройки ядра системы, CIPE использует собственный драйвер туннелинга. Но есть большой недостаток если CIPE неправильно настроить он вызывает сбой системы и в нее можно попасть только с локальной консоли. Согласитесь большой недостаток, особенно если ваш Сервер 2 находится в другом городе или стране, тут сказывается выигрышность "родного" драйвера туннелинга, как ни как он гораздо более отказоустойчив.

Итак, выбор за вами!
Категория: разное | Добавил: Lorg_Andre (22.04.2010)
Просмотров: 405 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Архив записей
Библиотека минотавра
Мини-чат
200
Статистика
... Хостинг от uCoz