Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
Очумелые Ручки
OpenBSD
Cisco
  Дополнительные порты для роутера
  Cisco ADSL
  Cisco VPDN с RADIUS авторизацией
  IPSEC over GRE with RIP
  Двойной NAT


www.lissyara.su —> статьи —> Cisco —> IPSEC over GRE with RIP

Cisco IPSEC over GRE with RIP on ADSL

Автор: m0ps.


ПРЕДИСЛОВИЕ: Тема довольно-таки избитая, поэтому в начале думал просто написать себе шпаргалку, но потом решил что вдруг еще кому-то сгодиться. За основу взято эту статью.
ЗАДАЧА:
Допустим, есть 2 территориально разнесенных офиса, в каждом из которых есть ADSL канал со статическим ip. Необходимо объединить их, обеспечив шифрование передающейся информации а также настроить динамический роутинг, дабы не париться каждый раз с маршрутами в ручную :)
РЕШЕНИЕ:
Для начала немного подробностей:
1) В моем случае связь между отделениями существенна через MPLS от УТ, но данная конфигурация должна без проблем работать если в качестве транзитной сети будет выступать интернет либо выделенная линия.
2) Оборудование - два Cisco ISR 857 с c850-advsecurityk9-mz.124-15.T7.bin IOS'ами.
3) Многие удивляться, почему я выбрал RIP? Ну во первых так сложилось исторически, а во вторых это единственный протокол, поддерживаемый всеми устройствами в сети. Конфигурацию рипа можно с с легкостью заменить на OSPF.
4) Сеть за первым роутером - 172.16.1.0/24 внутренний ip 172.16.1.254/24 внешний ip статический, но выдается провайдером - 10.10.10.1/24. Сеть за вторым роутером - 172.16.2.0/24 внутренний ip 172.16.2.254/24, внешний ip статический, но выдается провайдером - 10.10.10.2/24. IP адреса туннельных интерфейсов (Tunnel0) - 172.16.254.1/30 и 172.16.254.2/30
И так приступим... Для начала необходимо произвести базовые настройка маршрутизатора. Для этого подключаемся через консольный кабель, запускаем putty и подключаемся к serial порту к которому подключён кабель (скорее всего будет COM1). Не забываем произвести правильные настройки putty:
Speed:		9600
Data bits:	8
Stop bits:	1
Parity:		None
Flow control:	None

После включения маршрутизатора на экране должен отображаться процесс загрузки. Увидев приглашение, нажимаем Enter и вводим дефолтные логин (cisco) и пароль (cisco). В ответ получаем приглашение командной строки:
Router>

Переходим в привилегированный режим, в котором выполняются все основные операции,  следующей командой:
Router>enable
Router#

Далее можно сразу приступить к конфигурированию маршрутизатора, но я предпочитаю очищать дефолтный конфиг и настраивать с ноля. Для этого выполняем следующую команду и перегружаем роутер:
Router#erase startup-config
Router#reload

Далее подтверждаем желание перегрузиться и ждем…
В процессе загрузки маршрутизатор предложит войти в меню автоматической конфигурации, но мы вежливо отказываемся, ответив на вопрос no и дождавшись полной загрузки снова входим в привилегированный режим  (на это раз вводить логин и пароль не нужно). Для входа в меню конфигурации роутера вводим команду:
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#

Задаем имя роутера и доменное имя.
Router(config)#hostname R1
R1(config)#ip domain-name mydomain

Также добавляем пользователя:
R1(config)#username user privilege 15 password mypass

Теперь необходимо обеспечить элементарную безопасность роутера включив шифрование паролей, установив пароли на терминальное подключение и привилегированный режим а также включив ssh, который понадобиться в дальнейшем для управления маршрутизатором.
R1(config)#service password-encryption
R1(config)#line con 0
R1(config-line)#password mypassword
R1(config-line)#login
R1(config-line)#exit
R1(config)#enable secret mysecretpass
R1(config)#crypto key generate rsa
R1(crypto key generate rsa)#1024
R1(config)#ip ssh time-out 120
R1(config)#ip ssh authentication-retries 3
R1(config)#line vty 0 4 
R1(config-line)#transport input ssh
R1(config-line)#login local

Также за ненадобностью отключаем возможность управление роутером через SDM а так же протокол CDP:
R1(config)#no ip http server
R1(config)#no ip http secure-server
R1(config)#no cdp run

Если нужно, включаем SNMP, задав read-only commynity:
R1(config)#snmp-server community MY_COMMYNITY RO

Настраиваем отправку логов на внешний syslog-сервер:
R1(config)#logging origin-id hostname
R1(config)#logging source-interface Vlan1
R1(config)#logging 172.16.1.200

Дальше настроим автоматическое резервное копирование файлов конфигурации на ftp сервер. Для начала зададим имя пользователя и пароль для ftp:
R1(config)#ip ftp username cisco
R1(config)#ip ftp password mypassword

Теперь настроим само резервирование:
R1(config)#archive
R1(config-archive)#log config
R1(config-archive-log-cfg)#hidekeys
R1(config-archive)#path ftp://172.16.1.200/cisco-backups/$h-%t
R1(config-archive)#write-memory

Теперь при сохранении конфигурации командой write-memory, startup config автоматически будет копироваться на ftp сервер.
Теперь приступим к конфигурированию интерфейса, смотрящего в локальную сеть и ADSL подключения к провайдеру. Для начала локальный интерфейс, в случае с Cisco 857 надо назначить ip единственному влану - Vlan1:
R1(config)#interface Vlan1
R1(config-if)#description Localnet IP for FA ports
R1(config-if)#ip address 172.16.1.254 255.255.255.0
R1(config-if)#ip tcp adjust-mss 1360

Все, теперь можно управлять маршрутизатором через ssh подключившись к ip 172.16.1.254, подключив роутер к сети. Об ip tcp adjust-mss 1360 будет написано ниже.
Теперь переходим к настройке подключения к провайдеру.
R1(config)#interface atm0
R1(config-if)#description Connectet to Ukrtelecom's DSLAM
R1(config-if)#no ip address
R1(config-if)#logging event atm pvc state
R1(config-if)#pvc 1/32
R1(config-if-atm-vc)#encapsulation aal5snap
R1(config-if-atm-vc)#pppoe-client dial-pool-number 1
R1(config-if-atm-vc)#exit
R1(config)#interface Dialer0
R1(config-if)#description ISP PPPoE
R1(config-if)#ip address negotiated
R1(config-if)#ip nat outside
R1(config-if)#ip mtu 1492
R1(config-if)#encapsulation ppp
R1(config-if)#dialer pool 1
R1(config-if)#ppp authentication pap callin
R1(config-if)#ppp pap sent-username ppplogin@dsl.ukrtel.net password ppppass

И добавим маршрут по умолчанию:
R1(config)#ip route 0.0.0.0 0.0.0.0 Dialer0

Все, теперь можно приступать к настройке IPSEC over GRE. Для начала настроим isakmp policy, а также зададим pre-share key:
R1(config)#crypto isakmp policy 10
R1(config-isakmp)#encr aes
R1(config-isakmp)#hash md5
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#lifetime 43200
R1(config)#crypto isakmp key KJLNFHDSU*&4fj address 10.10.10.2

Теперь укажем transform-set и сконфигурируем криптомап и аксесс лист, для определения, какой трафик будет подвергнут шифрованию:
R1(config)#crypto ipsec transform-set VPN esp-aes esp-md5-hmac
R1(cfg-crypto-trans)#mode transport

R1(config)#crypto map main2branch 10 ipsec-isakmp
R1(config-crypto-map)#description Cryptomap Main to Branch Office
R1(config-crypto-map)#set peer 10.10.10.2
R1(config-crypto-map)#set transform-set VPN
R1(config-crypto-map)#match address 101
R1(config)#access-list 101 permit gre host 10.10.10.1 host 10.10.10.2

И наконец создаем туннельный интерфейс:
R1(config)#interface Tunnel0
R1(config-if)#description Tunnel interface to Branch Office
R1(config-if)#ip address 172.16.254.1 255.255.255.252
R1(config-if)#ip mtu 1400
R1(config-if)#tunnel source Dialer0
R1(config-if)#tunnel destination 10.10.10.2

Тут хочу немного остановиться на значениях mtu, ибо часто именно из-за размера пакетов и возникают проблемы. Для начала хочу заметить, что на интерфейсе Dialer0 необходимо указать mtu равным 1492 байта, т.к. 8 бай используется для ADSL инкапсуляции. Дальше... на туннельном интерфейсе задаем mtu равным 1400 байт. Можно конечно и немного сэкономить и указать его равным 1412 байт, т.к. для IPSEC over GRE инкапсуляции потребуется как-раз 80 байт, но я предпочитаю указывать именно 1400. Спросите почему - а просто так, целое число :))). Ну и на конец, очень важно указать на интерфейсе, смотрящем в локальную сеть ip tcp adjust-mss 1360 (40 байт меньше чем на туннельном интерфейсе).
И на конец, конфигурируем RIP:
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#passive-interface Dialer0
R1(config-router)#network 172.16.0.0

Тут стоит заметить, что внешний интерфейс необходимо сделать пассивным, дабы маршруты распространялись только через туннель.
Ну и самое главное - применяем криптомап на интерфейсе Dialer0, для включения шифрования трафика:
R1(config)#interface Dialer0
R1(config-if)#crypto map main2branch

На этом вроде бы все. Конфигурация второго роутера аналогична, только не забываем указывать правильные ip адреса.
Узнать состояние первой фазы IPSEC'a можно следующим образом:
R1#sh crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst             src             state          conn-id slot status
10.10.10.2      10.10.10.1      QM_IDLE        2001    0    ACTIVE

IPv6 Crypto ISAKMP SA

Состояние второй фазы можно узнать следующей командой:
R1#sh crypto ipsec sa int dialer 0

interface: Dialer0
    Crypto map tag: main2branch, local addr 10.10.10.1

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (10.10.10.1/255.255.255.255/47/0)
   remote ident (addr/mask/prot/port): (10.10.10.2/255.255.255.255/47/0)
   current_peer 10.10.10.2 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 37901, #pkts encrypt: 37901, #pkts digest: 37901
    #pkts decaps: 40587, #pkts decrypt: 40587, #pkts verify: 40587
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 10.10.10.1, remote crypto endpt.: 10.10.10.2
     path mtu 1492, ip mtu 1492, ip mtu idb Dialer0
     current outbound spi: 0x3230B877(842053751)

     inbound esp sas:
      spi: 0xD32440DF(3542368479)
        transform: esp-aes esp-md5-hmac ,
        in use settings ={Transport, }
        conn id: 9, flow_id: Motorola SEC 1.0:9, crypto map: main2branch
        sa timing: remaining key lifetime (k/sec): (4470120/20481)
        IV size: 16 bytes
        replay detection support: Y
        Status: ACTIVE

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0x3230B877(842053751)
        transform: esp-aes esp-md5-hmac ,
        in use settings ={Transport, }
        conn id: 10, flow_id: Motorola SEC 1.0:10, crypto map: main2branch
        sa timing: remaining key lifetime (k/sec): (4474852/20481)
        IV size: 16 bytes
        replay detection support: Y
        Status: ACTIVE

     outbound ah sas:

     outbound pcp sas:

Не забываем после окончания настроек сохранить конфигурацию командной write.
P.S. На этом все, если у кого есть какие замечания - милости прошу...



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=11386.

размещено: 2009-04-29,
последнее обновление: 2009-07-01,
автор: m0ps

оценить статью:

Yurij, 2009-06-18 в 10:18:57

Чувствуется, у автора в голове порядок. Буду ждать новых статей.

konstantine, 2009-07-01 в 7:14:18

Сеть за вторым роутером - 172.16.2.0/24 внутренний ip 172.16.1.254/24

Может 172.16.2.254/24.

Snicker, 2009-10-30 в 15:51:48

Добавлю:
можно использовать tunnel protection вместо crypto map.
Ссылка на статью Cisco:
http://www.cisco.com/en/US/docs/ios/12_3t/12_3t14/feature/guide/gtIPSctm.html

Евгений, 2009-11-10 в 12:06:15

Небольщое уточнение:
--
хочу заметить, что на интерфейсе Dialer0 необходимо указать mtu равным 1492 байта, т.к. 8 бай используется для ADSL инкапсуляции.
--
ADSL инкапсуляция тут не при чём, 8 байт нужно для PPPoE.
А за статью спасибо!

DAurum, 2009-12-28 в 12:56:09

Экспромтом есть несколько замечаний (кроме тех, что выше):

1. Динамическая маршрутизация на два хоста - это перебор и не более, чем доп. нагрузка на маршрутизатор.

2. ip route 0.0.0.0 0.0.0.0 Dialer0 в явном виде — это зло, если он не является выходом в интернет (насколько я понимаю, таковым он не является). Маршрут по-умолчанию, как по мне, должен уходить в Tunnel0, как минимум у одного и маршрутизаторов (если удалённый офис ходит в интернет через центральный офис).

3. Распространение маршрутов я бы сделал иначе (фрагмент):
router rip
passive-interface default
no passive-interface Tunnel0
no passive-interface Vlan1

4. На внешние интерфесы накинуть access-list, который разрешает только (либо для всех 10.10.10.0/24, либо для отдельных хостов этой сети, например, для аварийного входа по ssh) пакеты:
a) ipsec
b) udp isakmp
c) tcp ssh (аварийный вход)
d) icmp echo-request (для отладки, чтобы его можно было пингать)
e) icmp echo-reply (для отладки, чтобы принимать ответы на свой пинг)

5. Настроить NAT для пинга и ssh в сеть 10.10.10.0/24, чтобы была возможность проверить доступность хостов, а также для аварийного входа.

6. По возможности отказаться от GRE (не думаю, что у вас есть задачи, для которых единственное решение - GRE), т.к. инкапсуляция-декапсуляция именно в GRE - это ОЧЕНЬ ресурсоёмкий процесс, который падает на плечи центрального процессора маршрутизатора Cisco, в отличие от IPSEC (маршрутизаторы ISR имеют бортовой VPN-модуль).


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 15 чел.
За последние 30 мин было: 57 человек
За сегодня было
2740 показов,
377 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1227 секунд
Из них PHP: 60%; SQL: 40%; Число SQL-запросов: 45 шт.
Исходный размер: 78441; Сжатая: 17670