Пересказ статьи с блога rickmur.com


В прошлой статье про EVPN было рассказано о возможностях и преимуществах использования данной технологии для DCI. В этой статье будет рассказано о том, как легко настраивается, включается и масштабируется EVPN. Основное внимание уделено конфигурации EVPN на платформе Juniper MX, но т.к. Junos это единая операционная система для большинства устройств компании Juniper, настройка на других платформах (например EX9200) будет идентичной.


Дизайн сети


Топология сети для примера будет очень простой. Используется 2 маршрутизатора, так что multi-homing не рассматривается. Каждый роутер имеет подключенный к нему Ethernet сегмент, который состоит из нескольких VLAN с каждой стороны, причем один из VLAN ID не совпадает с обеих сторон (101 и 211).


Network Topology for EVPN

Подготовка к запуску EVPN


Перед тем как начать настраивать наш VPN, мы должны произвести предварительную подготовку. Это подразумевает под собой то, что мы должны обеспечить IP связанность между loopback адресами роутеров в наших дата-центрах и настроить BGP с EVPN address family. Версия Junos на которой проводилась настройка, требует явного включения функционала composite-chained next hops для EVPN. В Junos до версии 14.1 этого не требовалось.


routing-options {
autonomous-system 64999;
forwarding-table {
chained-composite-next-hop {
ingress {
evpn;
}
}
}
}
protocols {
mpls {
interface ge-0/0/1.0;
}
bgp {
group INTERNAL {
type internal;
local-address 172.22.250.152;
family inet-vpn {
unicast;
}
family evpn {
signaling;
}
neighbor 172.22.250.153;
}
}
ospf {
area 0.0.0.0 {
interface lo0.0 {
passive;
}
interface ge-0/0/1.0;
}
}
ldp {
interface ge-0/0/1.0;
}
}

Интерфейс ge-0/0/1 это тот, который смотрит в MPLS сеть и на котором мы настроили соседа по iBGP с обеими Layer 3 VPN и EVPN address family для обмена между собой layer 2 и layer 3 маршрутами. Мы использовали OSPF в качестве протокола внутренней маршрутизации, но на такой простой топологии мы могли бы обойтись и статическими маршрутами.


VLAN Based Service


Существует два способа настройки EVPN. Первый, это настройка отдельных EVPN инстансов или EVI для каждого VLAN/Bridge-домена. Это наилучший вариант для разделение трафика, обмена MAC адресами между ДЦ и полного контроля над flooding или broadcast трафиком в каждом VLAN/Bridge-домене. VLAN ID для трафика между PE маршрутизаторами дата-центров в таком случае будет изменен на 0.


Separate EVPN Instance

Значения Route-Target и Route-Distinguisher задаются для каждого EVI и поэтому каждый VLAN будет иметь свою MPLS метку.


Это может потенциально привести к проблемам масштабирования, т.к. PE маршрутизаторы имеют ограничение на количество VPN которые могут быть настроены.


Ниже представлена конфигурация для данного способа и нашей топологии.


interfaces {
ge-0/0/2 {
flexible-vlan-tagging;
encapsulation flexible-ethernet-services;
unit 101 {
encapsulation vlan-bridge;
vlan-id 101;
}
unit 102 {
encapsulation vlan-bridge;
vlan-id 102;
}
unit 103 {
encapsulation vlan-bridge;
vlan-id 103;
}
}
}
routing-instances {
BD1 {
instance-type evpn;
interface ge-0/0/2.101;
route-distinguisher 1001:1001;
vrf-target target:1001:1001;
}
BD2 {
instance-type evpn;
interface ge-0/0/2.102;
route-distinguisher 1002:1002;
vrf-target target:1002:1002;
}
BD3 {
instance-type evpn;
interface ge-0/0/2.103;
route-distinguisher 1003:1003;
vrf-target target:1003:1003;
}
}

Команды “flexible-ethernet-services” и “flexible-vlan-tagging” в настройках интерфейса позволяют использовать его для различных сервисов. Это значит, что мы можем настроить интерфейс одновременно как для тегированного, нетегированного и трафика с двумя тегами, а так же с layer 2 bridging и layer 3 сабинтерфейсами на одном физическом интерфейсе. Одна из сильнейших возможностей платформы MX!


Как вы можете увидеть, настройка VPN очень простая! Мы всего-лишь убедились, что нужные интерфейсы находятся в VPN и присвоили значения RD и RT.


Т.к. в нашем случае используется сценарий с single-homed, то никакой другой конфигурации не требуется. Для ESI (Ethernet Segment Identifier) по умолчанию выставлено значение 0 на single-homed маршрутизаторах и оно не должно различаться на разных сайтах.


VLAN Aware Service


Второй способ более гибкий при использовании. Это так называемый VLAN Aware service. Этот способ позволяет помещать множество VLAN и Bridge-доменов в один EVPN инстанс (EVI). Это улучшает масштабируемость и до сих пор позволяет должным образом разделять трафик. VLAN ID теперь содержится в каждом пакете. Для обеспечения надлежащей работы ECMP (equal-cost multipath) форвардинга в MPLS сети, MPLS метка назначается на каждый VLAN ID, это значит, что трафик теперь сможет балансироваться на VLAN, а не на EVI.


VLAN Aware service

Настройка для такого способа немного сложнее, но всё еще очень простая и еще позволяет делать VLAN translation! Так же, в такой конфигурации допускается пересечение MAC-адресов между VLAN или Bridge-доменами.


interfaces {
ge-0/0/2 {
flexible-vlan-tagging;
encapsulation flexible-ethernet-services;
unit 0 {
family bridge {
interface-mode trunk;
vlan-id-list [ 101 102 103 ];
vlan-rewrite {
translate 211 101;
}
}
}
}
}
routing-instances {
EVPN {
instance-type virtual-switch;
interface ge-0/0/2.0;
route-distinguisher 1000:1000;
vrf-target target:1000:1000;
protocols {
evpn {
extended-vlan-list [ 101 102 103 ];
}
}
bridge-domains {
NETWORK1 {
domain-type bridge;
vlan-id 101;
}
NETWORK2 {
domain-type bridge;
vlan-id 102;
}
NETWORK3 {
domain-type bridge;
vlan-id 103;
}
}
}
}

Как вы можете видеть, мы позаботились и о VLAN translation. Это позволяет использовать различные VLAN в разных ДЦ, но работать они будут как один L2 домен.


Заключение


Данная статья показывает, как вы легко и гибко можете настроить EVPN в Junos и как быстро организовать оптимальный Layer 2 Data Center Interconnect. В следующих статьях будет рассмотрен multi-homing и интеграция с Layer 3 для использования всех активных линков дата-центра.


Оригинал rickmur.com