Generic Routing Encapsulation, создание GRE туннелей
GRE – Сетевой протокол от компании CISCO Systems для туннелирования соединений, путем инкапсуляции пакетов сетевого уровня в IP пакеты. С помощью протокола GRE создается непрерывное соединение между двумя узлами ( маршрутизаторами ), через общедоступную сеть. Протокол GRE может быть использован для создания простой частной сети (VPN), между пользователями, подключенными через сеть провайдера, или между пограничными маршрутизаторами с среде провайдера, для обмена обновлениями таблиц маршрутизации.
Имейте в виду, что данный протокол не поддерживает шифрование данных на маршруте, если для вас это критично и основной приоритет безопасность, лучше его не использовать.Операционная система FreeBSD, полностью поддерживает создание и управление туннелями, протокола GRE. Поддержка GRE, осуществляется на уровне ядра, соответствующую опцию можно включить в конфигурации ядра на стадии конфигурирования и последующей компиляции, если-же по каким-либо причинам это не сделано, при попытке активировать GRE устройство, в ядро динамически будет загружен необходимый модуль ( if_gre.ko ). Самый простой способ создать GRE интерфейс, использовать программу ifconfig, например командой:
# ifconfig gre0 createбудет создан интерфейс с именем gre0, если при создании интерфейса, не указывать номер устройства, будет назначен первый свободный, например, gre0 у нас уже есть, теперь, командой:
# ifconfig gre createбудет создан интерфейс с именем gre1, как видите команда ifconfig назначила первый свободный номер. С помощью той-же команды ifconfig, можно удалить не используемый интерфейс:
# ifconfig gre1 destroyТеперь, когда интерфейс GRE создан, нужно настроить всех участников соединения, делается это с помощью все той-же команды ifconfig. Предположим, нам нужно настроить туннель между хостами А и Б, схема выглядит следующим образом: Для начала создаем интерфейс gre0 на хосте А и назначаем конечные точки туннеля:
# ifconfig gre0 create # ifconfig gre0 192.168.10.1 192.168.10.2 netmask 255.255.255.0 # ifconfig gre0 tunnel 10.0.2.1 10.0.1.1На хосте Б делаем то-же самое, используя соответствующие адреса:
# ifconfig gre0 create # ifconfig gre0 192.168.10.2 192.168.10.1 netmask 255.255.255.0 # ifconfig gre0 tunnel 10.0.1.1 10.0.2.1
- Первой строкой, вышеприведенных команд, мы создаем интерфейс gre0.
- Второй, назначаем интерфейсу IP адреса, для текущего хоста и для другого конца туннеля.
- И наконец в третьей строке устанавливаем туннель между хостами, здесь нужно использовать реальные IP адреса сетевых интерфейсов.
# ifconfig gre0 gre0: flags=9051metric 0 mtu 1476 tunnel inet 10.0.2.1 --> 10.0.1.1 inet 192.168.10.1 --> 192.168.10.2 netmask 0xffffff00Значение MTU, будет высчитано и назначено автоматически с учетом GRE протокола. Теперь, когда интерфейсы туннеля подняты ( запущены, приведены в состояние UP ), можно проверить соединение пропинговав с хоста А, командой ping, IP адрес туннеля, хоста Б:
# ping -c3 192.168.10.2PING 192.168.10.2 (192.168.10.2): 56 data bytes 64 bytes from 192.168.10.2: icmp_seq=0 ttl=128 time=0.359 ms 64 bytes from 192.168.10.2: icmp_seq=1 ttl=128 time=2.512 ms 64 bytes from 192.168.10.2: icmp_seq=2 ttl=128 time=0.196 ms --- 192.168.10.2 ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.196/1.022/2.512/1.055 msИтак, мы довольно быстро подняли туннель, с помощью протокола GRE, между хостом А и Б. Тоже самое можно проделать и на маршрутизаторах ( CISCO или Juniper ). В данном примере мы создавали туннель вручную, этого вполне достаточно что-бы «потренироваться на кошках», но что-бы соединение было постоянным, то есть, после перезагрузки настраивалось автоматически, нужно дописать в стартовый скрипт /etc/rc.d следующие строчки:
cloned_interfaces="gre0" ifconfig_gre0="inet inet 192.168.10.1 192.168.10.2 netmask 255.255.255.0 tunnel 10.0.2.1 10.0.1.1"Таким образом, с помощью переменной cloned_interfaces можно назначить столько туннелей, сколько вам нужно, и обратите внимание, во второй строке мы объединили 2 команды в одну, то-же самое можно сделать и через командную строку.
Комментарии
Не понятно какой внешний а какой внутренний интерфейс из-за этого каша.
а вот тут для ключа tunnel используются другие адреса
http://sshd.su/pages/viewpage.action?pageId=819203
где правда ?
Отправить комментарий