понедельник, 28 ноября 2016 г.

Тунелирование Junos, GRE, IPIP (Подготовка JNCIS-ENT)

Туннелирование обеспечивает связь между удаленными подсетями поверх сети Интернет.
Данный подход к организации может быть полезным, ели:
- необходимо сделать прозрачную видимость между подсетями с адресами из RFC 1918
- конечные подсети имеют отличный от IP протокола (через Интернет передается только IP, напоминаю)

Дальнейшая статься будет рассматривать только незащищенные протокол (не такие как IPSec):
- GRE
- IP-IP

Логика работы: пакет приходит на граничный маршрутизатор сети, на котором настроен тунель, маршрутизатор инкапсулирует данный пакет вместе с заголовком и передает в сеть Интернет, принимающий маршрутизатор выполняет процес деинкапсуляция пакета и передает его дальше по сети получателю.

GRE может инкапсулировать IP, IPX, AppleTalk. Также, может выполнять инкапсуляцию ipv6 и MPLS трафика. Изначально разработан Cisco, но поддерживается множеством вендоров. Описан в RFC 1702.
GRE добавляет 24 байта к заголовку пакета. Такой пакет имеет IP protocol type 47. Сам пакет не меняет, только изменяется TTL, чтоб пакет не бегал по сети вечно.

IP-IP протокол предназначен для инкапсуляции IP трафика в IP трафик. К заголовку добавляется 20 байт. Опять же в основном пакете меняется TTL. Протокол описан в RFC 2003.

Имена интерфейсов:
gr-x/y/z в GRE
ip-x/y/z в IP-IP
Буковки обозначают сервисную карту, которая будет делать процесс инкапсуляции трафик. На MX, такой функционал выполняет FPC карточка. MX Tunnel Services Overview

Обязательными для конфигурации являются tunnel’s destination и source адреса.
По молчанию туннели полностью stateless, т.е. они ничего не знают о состоянии второго соседа. Если там интерфейс будет в состоянии Down, или устройство вообще будет не достижимо, на другой стороне устройство будет в Up.
Чтоб такого не было, необходимо использовать Keep Alive механизм в GRE или BFD.

Чтоб по тунелям бегали пакеты размером больше 1500, необходимо их фрагментировать, если стоит бит запрещающий фрагментацию, его можно снять установив clear-dont-fragment в конфигурации.

Пример простой конфигурации GRE:


Дополнительные параметры конфигурации:
- copy-tos-to-outer-ip-header чтоб поставить метку в GRE пакет;
- allow-fragmentation - по дефолту, пакет больше чем MTU будет отброшен, что чтоб он принимался в дальнейшую обработку необходимо включить данный функционал;
- clear-dont-fragment-bit - чтоб фрагментировать пакеты даже с битом запрещающим это делать;
- key - для проверки целостности

Дополнительно можно установить Path MTU discovery (PMTUD) - функционал который определяет максимальный размер MTU на туннеле.




Комментариев нет:

Отправить комментарий