2.jpg
3.jpg
4.jpg
5.jpg
1.jpg

РАЗНИЦА MTU CISCO vs. JUNIPER

Неправильно произведенный расчет параметра mtu (Maximum Transmission Unit) в ядре сети грозит неприятностями — как проблемами с прохождением клиентского трафика (особенно, если на машинах клиента установлен df-бит), так и головной болью в процессе настройки (неустановление IGP и EoMPLS сессий).

Дополнительных трудностей добавляет и то, что  вендоры по-разному интерпретируют это понятие. Сегодня попытаемся разобраться, что к чему. Рассмотрим видение mtu от Cisco Systems и Juniper Networks, а так же специфику поиска неисправностей, связанных с этим параметром.

Немного теории

IEEE в рекомендации RFC 894 определяет mtu как максимальный размер L3 пакета, который может передаваться в L2 фрейме. Т.е. в его первоначальном понимании это размер L2 фрейма без его заголовка. Стандартом mtu для fast- и gigEthetnet – 1500 байт.

Существуют (но не определены в официальной документации) и дочерние виды mtu:

  • физический mtu (media mtu) — определяет общий размер L2 фреймов (вместе с заголовком), т.е. фактический размер пакета на физическом интерфейсе;
  • ip mtu (L3 mtu) — размер полезной нагрузки пакета L3 уровня (payload пакета + заголовок L4 уровня);
  • mpls mtu — размер пакетов, инкапсулируемых в MPLS сеть (различается для L3 и L2 VPN-ов).

В идеале, на сети установлен одинаковый максимально возможный mtu и никаких проблем у инженеров с передачей клиентских пакетов не возникает. Однако, на практике всегда есть «узкие» места  (каналы, предоставляемые сторонним оператором и некорректно настроенное оборудование в домене клиента), mtu которых часто отличается в меньшую сторону.

Постановка задачи и правильный расчет

Предположим, на сети используется технология MPLS, на основе нее построены как L3 так и L2 (MP-BGP based VPLS) VPN-ы, применяется MPLS TE и EoMPLS (xconnect/L2circuit). Присутствуют каналы оператора (как L2 так и L3).

Задача — обеспечить прохождение по сети клиентского трафика с mtu 1500 байт и установленным df битом. Сеть мультивендорная — построена на оборудовании Cisco и Juniper.

Исходя из этих данных, определим размер пакетов внутри ядра сети:

  • для L3 VPN: 1500 клиентских байт + 8 байт стек MPLS меток (транспортная и VPN метки по 4 байта) + 18 байт L2 заголовок=1526 байт
  • для L2 VPN (VPLS over MP-BGP): 1500 клиентских байт + 18 байт клиентский заголовок L2 + 12 байт стек MPLS меток (транспортная, VPN метка, метка VC) + 18 байт L2 заголовок=1548 байт
  • для EoMPLS: 1500 клиентских байт + 18 байт клиентский заголовок L2 + 8 байт стек MPLS меток (транспортная, метка VC) + 18 байт L2 заголовок=1544 байта
  • использование TE добавляет в стек дополнительную метку – 4 байта

Трафик через облако оператора идет внутри GRE туннелей, что увеличивает размер пакетов на 20 байт транспортного L3 заголовка и 4 байта заголовка GRE.

Теперь необходимо использовать эти данные при настройке оборудования.

С коммутаторами все просто — достаточно убедиться, что на них разрешен форвардинг фреймов большого размера (достаточно будет 1600 байт).

Теперь разберемся с маршрутизоторами..

Оборудование Cisco рассматривает mtu в соответствии c классическим определением от IEEE — по умолчанию на интерфейсах установлено 1500 байт, заголовок L2 фрейма при этом не учитывается.

Оборудование от Juniper Networks считает mtu вместе с L2 заголовком (как media mtu) — по умолчанию задано 1518 байт, где 18 байт — размер L2 заголовка с 802.1q тегом.

Тогда на интерфейсах устройств этих вендоров следует задавать значения mtu (в зависимости от технологии): 

Технология

Размер mtu на интерфейсе, байт

Cisco

Juniper

MPLS

L3 VPN

1508

1526

L2 VPN

1530

1548

EoMPLS

1526

1544

MPLS TE

L3 VPN

1512

1530

L2 VPN

1534

1552

EoMPLS

1530

1548

MPLS TE over GRE

L3 VPN

1536

1554

L2 VPN

1558

1576

EoMPLS

1554

1572

Чтобы по-максимуму использовать возможности MPLS и обеспечить масштабируемость сети, задаем на интерфейсах значения для MPLS TE.

<команды>

L3 каналы у оператора следует заказывать с учетом найденных значений mtu для MPLS TE over GRE (на интерфейсах в сторону оператора mtu тоже надо увеличить).

Теперь необходимо проверить, действительно ли трафик клиента с mtu 1500 байт «ходит» через сеть. Сделать это просто с помощью ping'а с df битом. Однако, есть небольшая тонкость — Cisco и Juniper по-разному понимают атрибут size команды ping:

size запроса у Cisco — размер пакета с icmp заголовком и заголовком L3

size запроса у  Juniper — размер только payload запроса, т.е. реальный размер пакета составит: payload + 8 байт icmp заголовок + 20 байт заголовок L3

Таким образом, проверяем mtu с маршрутизатора Cisco:

<вывод команды>

С маршрутизатора Juniper:

<вывод команды>

Трафик ходит, значит, с дизайном mtu на сети мы не ошиблись.

 

 

 Только те, кто предпринимает абсурдные попытки, смогут достичь невозможного.

Альберт Эйнштейн

Мы ждем Вас!

тел: +7 (499) 755-75-42

email: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.


Яндекс.Метрика