Существует три модели реализации QoS: наилучшая возможная; интегральная и дифференцированная. Наилучший возможный вид услуг реализуется в сети, когда делается все возможное для доставки пакета, но при этом ничего не гарантируется (например FTP или HTTP). Интегрированный вид услуг (RFC-1633, 1994 год) разрабатывался первым и реализуется путем резервирования по схеме точка-точка (протокол RSVP; 1997; см. book.itep.ru/4/44/rsv_4496.htm). Протокол RSVP предоставляет сигнальный механизм для конфигурирования удаленных маршрутизаторов с целью получения нужного QoS. Протокол ориентирован на работу с тремя видами трафика: best efforts (обычная передача IP-данных без установления соединения), чувствительный к скорости передачи и чувствительный к задержкам.Трафик чувствительный к загрузке требует формирования канала с гарантированной пропускной способностью. Приложение при этом вынуждено мириться с определенными задержками доставки (класс услуг с гарантированной скоростью в битах в сек). Третий вид трафика (чувствительный к задержкам) гарантирует минимальную задержку и низкую дисперсию времени доставки. Пропускная способность может при этом варьироваться. Примером такого вида трафика может служить передача голоса или видео. RSVP определяет два типа услуг для этого вида трафика: сервис с контролируемыми задержками и предсказуемый сервис (для приложений реального времени (видео-конференции и телефонные переговоры).
В рамках протокола стандартизованы схемы обработки очередей WFQ (Weighted Fair Queuing) и WRED (Weighted Random Early Detection). В CISCO IOS по умолчанию используется WFQ (для каналов Е1 = 2028 кбит/с или медленнее). Intserv предлагает на L3 тот же уровень услуг, что можно получить в АТМ на уровне L2. В АТМ определены 4 QoS класса:
QoS Class 1 (называемый также классом услуг А) имеет те же характеристики, что и выделенный цифровой канал точка-точка
QoS Class 2 (называемый также классом услуг В) обеспечивает режим, приемлемый для аудио и видео при видеоконференициях или передачи мультимедиа
QoS Class 3 (называемый также классом услуг 3) обеспечивает режим, приемлемый для передачи, ориентированной на соединение, например, через посредство frame relay.
QoS Class 4 (называемый также классом услуг 4) эквивалентен режиму IP-передачи в условиях наилучших усилий (best efforts) при отсутствии гарантии доставки.
Задача: Необходимо поднять GRE туннель между офисами R5 и R4 и зашифровать его с помощью IPSec (т.н. GRE over IPSec ). Через GRE туннель должна работать маршрутизация типа EIGRP обеспечивая роутинг между локальными сетями офисов через GRE туннель. Условимся, что EIGRP AS1 у нас имитирует интернет. Вначале настраиваем IP адреса на интерфейсах и EIGRP AS1 маршрутизацию, чтобы приступить к конфигурированию тоннеля. 1) Настраиваем дефолтный маршрут в сторону "провайдера" R5(config)#ip route 0.0.0.0 0.0.0.0 211.181.24.51 R4(config)#ip route 0.0.0.0 0.0.0.0 211.181.25.112 2) Конфигурируем GRE туннель ----------------------------- R5(config)#interface Tunnel0 *Mar 1 00:01:47.799: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down R5(config-if)#ip address 10.0.100.1 255.255.255.0 R5(config-if)#tunnel source fastEthernet 0/0 R5(config-if)#tunnel destination 211.181.25.221 R5(config-if)# *Mar 1 00:02:48.707: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up R5(config-if)#exit ----------------------------- R4(config)#int Tunnel0 *Mar 1 00:03:24.595: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down R4(config-if)#ip address 10.0.100.2 255.255.255.0 R4(config-if)#tunnel source fastEthernet 0/0 R4(config-if)#tunnel destination 211.181.24.15 R4(config-if)# *Mar 1 00:04:11.403: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up R4(config-if)#exit ----------------------------- Пингуем и проверяем, что маршрутизация не хромает и нигде не ошиблись в базовой настройке R4(config)#do ping 10.0.100.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.100.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/38/68 ms R4(config)#
3) Расписываем маршрутизацию EIGRP AS2 на LAN и Туннель ----------------------------- R5(config)#router eigrp 2 R5(config-router)#no au R5(config-router)#no auto-summary R5(config-router)#net R5(config-router)#network 10.0.100.1 0.0.0.255 R5(config-router)#net R5(config-router)#network 10.0.1.254 0.0.0.255 R5(config-router)#exit R5(config)# *Mar 1 00:20:28.251: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.2 (Tunnel0) is up: new adjacency R5(config)# ----------------------------- R4(config)#router eigrp 2 R4(config-router)#no au R4(config-router)#no auto-summary R4(config-router)#net R4(config-router)#network 10.0.100.2 0.0.0.255 R4(config-router)#net R4(config-router)#network *Mar 1 00:20:18.731: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.1 (Tunnel0) is up: new adjacency R4(config-router)#network 10.0.2.254 0.0.0.255 R4(config-router)#exit
----------------------------- Проверяем что все настроено правильно и маршрутизация работает
R4(config)#do sh ip ro Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route
Gateway of last resort is 211.181.25.112 to network 0.0.0.0
C 211.181.25.0/24 is directly connected, FastEthernet0/0 D 211.181.24.0/24 [90/30720] via 211.181.25.112, 00:20:39, FastEthernet0/0 10.0.0.0/24 is subnetted, 3 subnets C 10.0.2.0 is directly connected, FastEthernet0/1 D 10.0.1.0 [90/297246976] via 10.0.100.1, 00:00:30, Tunnel0 C 10.0.100.0 is directly connected, Tunnel0 S* 0.0.0.0/0 [1/0] via 211.181.25.112 R4(config)#
6) Задаём ACL (карту совпадения) согласно которому будет шифроваться трафик ----------------------------- R5(config)#access-list 101 permit gre host 211.181.24.15 host 211.181.25.221 ----------------------------- R4(config)#access-list 101 permit gre host 211.181.25.221 host 211.181.24.15
7) Создаём Crypto-Map и применяем на интерфейс ----------------------------- R5(config)#crypto map MapOffice 5 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. R5(config-crypto-map)#match address 101 R5(config-crypto-map)#set peer 211.181.25.221 R5(config-crypto-map)#set transform-set CryptoTransformTunnel R5(config-crypto-map)#set pfs group1 R5(config-crypto-map)#set security-association lifetime seconds 86400 R5(config-crypto-map)#exit R5(config)#int fa 0/0 R5(config-if)#crypt R5(config-if)#crypto map MapOffice R5(config-if)# ----------------------------- ISAKMP включился -- настроен потенциально верно *Mar 1 07:55:24.074: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON R5(config-if)# ----------------------------- Регистрация события -- получен не IPSec *Mar 1 07:55:25.158: %CRYPTO-4-RECVD_PKT_NOT_IPSEC: Rec'd packet not an IPSEC packet. (ip) vrf/dest_addr= /211.181.24.15, src_addr= 211.181.25.221, prot= 47 R5(config-if)# ----------------------------- GRE туннель опущен из-за несовместимости IPSec на концах туннеля
*Mar 1 07:55:35.226: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.2 (Tunnel0) is down: holding time expired R5(config-if)#exit
R5(config)#do ping 10.0.100.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.100.2, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R5(config-if)#
*Mar 1 07:56:29.770: %CRYPTO-4-RECVD_PKT_NOT_IPSEC: Rec'd packet not an IPSEC packet. (ip) vrf/dest_addr= /211.181.24.15, src_addr= 211.181.25.221, prot= 47 R5(config-if)# -----------------------------
Теперь настраиваем IPSec с другой стороны Прогнозируемый результат: -- установление IPSec туннеля -- повторное автоматическое поднятие GRE туннеля теперь с IPSec шифрацией трафика -- повторное установление EIGRP соседства и возобновление маршрутизации
Как и ожидалось туннель GRE опустился как показано выше с момента как был включен IPSec на другой стороне *Mar 1 07:55:29.374: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.1 (Tunnel0) is down: holding time expired R4(config)#crypto map MapOffice 5 ipsec-isakmp % NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. R4(config-crypto-map)#match address 101 R4(config-crypto-map)#set peer 211.181.24.15 R4(config-crypto-map)#set transform-set CryptoTransformTunnel R4(config-crypto-map)#set pfs group1 R4(config-crypto-map)#set security-association lifetime seconds 86400 R4(config-crypto-map)#exit
R4(config)#int fa 0/0 R4(config-if)#cryp R4(config-if)#crypto map MapOffice R4(config-if)# *Mar 1 08:20:26.289: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON R4(config-if)# ----------------------------- Прогнозируемое поднятие туннеля GRE и возобновление соседства *Mar 1 08:20:27.573: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.1 (Tunnel0) is up: new adjacency R4(config-if)#
----------------------------- Проверка пинга и прохождения пакетов через туннель R4#ping 10.0.100.1
Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.100.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 24/68/120 ms
R4#show crypto ipsec sa
interface: FastEthernet0/0 Crypto map tag: MapOffice, local addr 211.181.25.221
----------------------------- Проверка роутинга R4#sh ip ro Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route
Gateway of last resort is 211.181.25.112 to network 0.0.0.0
C 211.181.25.0/24 is directly connected, FastEthernet0/0 D 211.181.24.0/24 [90/30720] via 211.181.25.112, 08:30:31, FastEthernet0/0 10.0.0.0/24 is subnetted, 3 subnets C 10.0.2.0 is directly connected, FastEthernet0/1 D 10.0.1.0 [90/297246976] via 10.0.100.1, 00:10:13, Tunnel0 C 10.0.100.0 is directly connected, Tunnel0 S* 0.0.0.0/0 [1/0] via 211.181.25.112 R4#
8) Убедиться что трафик идущий через тоннель шифрован
а) Убедиться что данные зашифрованы IPSec Подключить Wireshark на интерфейс fa0/0 R5 и начать обмен данными между хостами (скачивать файл например). Сразу заметно, что данные только в зашифрованном виде (здесь был пущен банальный пинг по туннелю)
б) Убедиться, что данные идут по GRE туннелю (хотя это очевидно из построенной маршрутизации, проверить лишним не будет)
----------------------------- Даём пинг с хоста xp_http_ftp_cisco(10.0.1.2) на хост xp_http_ftp_cisco1(10.0.1.2) admin>ping 10.0.2.2 Обмен пакетами с 10.0.2.2 по 32 байт: Ответ от 10.0.2.2: число байт=32 время=136мс TTL=126 Ответ от 10.0.2.2: число байт=32 время=145мс TTL=126 Ответ от 10.0.2.2: число байт=32 время=119мс TTL=126 Ответ от 10.0.2.2: число байт=32 время=98мс TTL=126
----------------------------- Теперь опускаем GRE туннель R4(config)#int Tunnel 0 R4(config-if)#sh R4(config-if)# *Mar 1 08:38:45.365: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 2: Neighbor 10.0.100.1 (Tunnel0) is down: interface down R4(config-if)# *Mar 1 08:38:47.181: %LINK-5-CHANGED: Interface Tunnel0, changed state to administratively down *Mar 1 08:38:48.181: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down R4(config-if)#
----------------------------- И повторяем пинг admin>ping 10.0.2.2
Обмен пакетами с 10.0.2.2 по 32 байт:
Превышен интервал ожидания для запроса. Превышен интервал ожидания для запроса. Превышен интервал ожидания для запроса. Превышен интервал ожидания для запроса.
Настройка и проверка завершены. Поставленная задача достигнута.