Huawei NetEngine 8000¶
Лицензии¶
Информации по лицензиям в открытом доступе нет. Она доступна только для партнеров Huawei с наделенными правами просмотра соответствующей информации.
Каждый вид лицензии при покупке оборудования может входить в какой-либо бандл и не указываться явно в спецификации.
Всю уточняющую информацию можно получить только через персонального менеджера. 😡
port-basic¶
Port basic license
Это лицензия нужна для того, чтобы работали интерфейсы. Без этой лицензии скорость на портах будет ограничена до 100 Мбит/сек, а так же будет остутствовать возможность использовать LAG и активировать другие виды лицензий. Кодовые названия лицензии для каждого типа портов.
FeatureName Description
------------------------------------------------------------------------------------
LCR8S0F1AE1C3 NetEngine 8000 F1A-8H20Q Fixed Port 10GE Upgrade RTU
LCR8S0F1AE1C1 NetEngine 8000 F1A-8H20Q Fixed Port 100GE Upgrade RTU
LCR8S0F1AE1C2 NetEngine 8000 F1A-8H20Q Fixed Port 25GE Upgrade RTU
Соответственно на 25GE порты можно применить как лицензию LCR8S0F1AE1C3, так и LCR8S0F1AE1C2 в зависимости от того, какая скорость будет использоваться. Пример:
0/1/28 LCR8S0F1AE1C3 1 0 No allocated
LCR8S0F1AE1C2 1 0 No allocated
0/1/29 LCR8S0F1AE1C3 1 0 No allocated
LCR8S0F1AE1C2 1 0 No allocated
Здесь 28-29 порты 25GE.
port-core-aggregation¶
Port core&aggregation license
Данные лицензии включают на портах следующий функционал на интерфейсах:
- SR
- RSVP-TE
- MPLS-TE
- VxLAN
- HQoS
Кодовые названия лицензии для каждого типа портов
FeatureName Description
------------------------------------------------------------------------------------
LCR8SF0CRAGC1 NetEngine 8000 F Series Core&Aggregation Scenario Port Function License(per 50GE/40GE)
LCR8SF0CRAGC4 NetEngine 8000 F Series Core&Aggregation Scenario Port Function License(per 10GE)
При этом для 25 и 100 гигабитных портов требуется по 2 ресурса данных лицензий. Пример:
Physical Position FeatureName Needed Count Used Count Active Status
------------------------------------------------------------------------------------
0/1/24 LCR8SF0CRAGC4 1 0 No allocated
0/1/25 LCR8SF0CRAGC4 1 0 No allocated
0/1/26 LCR8SF0CRAGC4 1 0 No allocated
0/1/27 LCR8SF0CRAGC4 1 0 No allocated
0/1/28 LCR8SF0CRAGC4 2 0 No allocated
0/1/29 LCR8SF0CRAGC4 2 0 No allocated
0/1/30 LCR8SF0CRAGC4 2 0 No allocated
Здесь 24-27 порты 10GE, а 28-30 25GE
port-evpn¶
Port evpn license
Кодовые названия лицензии для каждого типа портов.
FeatureName Description
------------------------------------------------------------------------------------
LCR8SF0EVPNC1 NetEngine 8000 F Series EVPN Port Function License(per 50GE/40GE)
LCR8SF0EVPNC4 NetEngine 8000 F Series EVPN Port Function License(per 10GE)
port-l3vpn¶
Port L3VPN licenseCR8PF1ABASC1
Кодовые названия лицензии для каждого типа портов.
FeatureName Description
------------------------------------------------------------------------------------
LCR8SF0L3VPC1 NetEngine 8000 F Series L3VPN Port Function License(per 50GE/40GE)
LCR8SF0L3VPC4 NetEngine 8000 F Series L3VPN Port Function License(per 10GE)
port-slicing¶
Port slicing license
Кодовые названия лицензии для каждого типа портов.
FeatureName Description
------------------------------------------------------------------------------------
LCR8SF0SLC0C5 NetEngine 8000 F Series Port Slicing Function License(per 50GE/40GE)
LCR8SF0SLC0C4 NetEngine 8000 F Series Port Slicing Function License(per 10GE)
port-srv6¶
Port SRv6 license
Кодовые названия лицензии для каждого типа портов.
FeatureName Description
------------------------------------------------------------------------------------
LCR8SF0SRV6C1 NetEngine 8000 F Series SRv6 Function License(per 50GE/40GE)
LCR8SF0SRV6C4 NetEngine 8000 F Series SRv6 Function License(per 10GE)
Базовая настройка¶
# Хостнейм
sysname NE-DP32-8-1
# Отключаем Plug-n-play
undo pnp enable
# Отключаем DCN (Тоже Plug-n-play технология Huawei для Zero провиженинга)
undo dcn
# Отключаем параноидальный режим для создания пользователей
undo user-security-policy enable
# Отключаем блокировку по IP при неудачных попытках авторизации по SSH
ssh server ip-block disable
# Настраиваем router-id для протколов динамической маршрутизации
router id 100.0.0.1
# Настраиваем MGM порт
undo ip vpn-instance __LOCAL_OAM_VPN__
ip vpn-instance management
ipv4-family
ipv6-family
interface GigabitEthernet 0/0/0
ip binding vpn-instance management
ip address 10.10.10.191 24
# Удаляем лишних пользователей, заводим нужных
undo ssh user root
aaa
# Отключить блокировку при неправильно вводе пароля
user-block failed-times 0 period 5
undo local-user root
local-user admin password
# Enter password:
local-user admin level 3
local-user admin service-type ssh
local-user admin password expire 0
# Настраиваем VTY
user-interface vty 0 20
authentication-mode aaa
protocol inbound ssh
history-command max-size 256
idle-timeout 360 59
# Настраиваем ACL для доступа по SSH
acl name ssh_access basic number 2050
description OoBM Link only
rule permit vpn-instance management source any
ssh server acl ssh_access
# DNS
dns resolve
dns server 80.65.16.1
dns server 80.65.20.1
dns domain orionnet.ru
Всякие полезные команды¶
# Показать, очистить текущий буфер
display configuration candidate
clear configuration candidate
# Показать текущий конфиг контекста
display this
# Показать настройки интерфейса
dis curr interface gi 0/0/0
# Выбрать диапазон интерфейсов (все порты)
port-group group-member gi 0/1/0 to gi 0/1/27 25GE 0/1/28 to 25GE 0/1/47 100GE 0/1/48 to 100GE 0/1/55
# Очистить настройки интерфейса
clear configurtion interface 100 0/1/52
# Показать IP интерфейсы, на которых сконфигурены адреса
dis ip int br ip-configured
# Показать FIB (аналог CEF)
dis fib slot 1
# Отключить пейджинг
screen-length 0
# Выйти в user-view независимо от уровня контекста
return
AAA¶
Отключить блокировку при неудачных попытках авторизации
user-block failed-times 0 period 1
Отключить проверку сложности пароля
undo user-password complexity-check
Для входа необходимо сконфигурировать:
- User interface (VTY, Console) - обеспечивают место входа
- User management - обеспечивают безопасность
- Terminal services - предоставляют протоколы подключения
user-interface maximum-bty 21
user-interface vty 0 20
idle-timeout 600
screen-length 0
Доступ по SSH ключу¶
aaa
local-user user1 password irreversible-cipher $1c$*CzmY/2DqO$K0Em58ci|7|_v1,S[n,IzWj@2K1KCBqV`6HEA]Y,$
local-user user1 service-type ssh
local-user user1 level 3
local-user user1 state active
local-user user1 password expire 0
rsa peer-public-key user1 encoding-type openssh
public-key-code begin
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDARXQ1GYiWz74V6KldRHt3ogPK3s5EP4Oy+xRRs0m4ZzSjA0/vVj+TVR8foDsHgzUhDVf+esSt8KmvVG16FmueO4TEmDGZPyu8P81Xq7GrfyLPzhJBI7UM9mgFIYNX5CpG6ZqcWCy72GeMu1UEb2DVAZnMjbVzym00m7GPcp10Z+YD8k5zfeh0N2OYzDAPN2kJmQpgCMKXDsQhjQwoY+ggc0bouQnpwXJdOO9lOfLz
XT2oBCSP7ytJBaoByhP8fJUVKNkQILY3kMpVwp4+bSS2s0EZwxaJckhhnWZL/98Ld/epWYPN81/el8gXwQZzxcLpbcjuHaZXqW4tXzCqelJL user1@work
public-key-code end
peer-public-key end
ssh user user1
ssh user user1 authentication-type rsa
ssh user user1 assign rsa-key chernyshev_d
ssh user user1 service-type all
Группы и команды¶
Допустим нужно завести пользователя cbackup, которому должно быть доступно чтение текущей конфигурации и не более.
aaa
task-group cbackup
# Нужен, чтобы прочитать конфигурацию
task config read
# Нужен, чтобы указать screen-length 0 temp
task tty execute
# Нужен, чтобы работала команда quit :)
task shell execute
#
user-group cbackup
task-group cbackup
# Заводим пользователя стандартным способом
local-user cbackup password irreversible-cipher $1c$G"WCYNg{TW$|$3E<hHTn>"s5-P<&[0Qkiv;Z$sLD3~E7MY$UJ}Q$
local-user cbackup service-type ssh
local-user cbackup state active
local-user cbackup user-group cbackup
# Ключи пользователя должен быть добавлен (смотри предыдущий раздел)
ssh user cbackup
ssh user cbackup authentication-type rsa
ssh user cbackup assign rsa-key cbackup
ssh user cbackup service-type stelnet
SNMP¶
snmp-agent
snmp-agent sys-info contact "Contact"
snmp-agent sys-info location "Location"
snmp-agent sys-info version v2c
# MGMT Interface in management VRF
snmp-agent protocol source-interface GigabitEthernet0/0/0
acl name snmp_access basic
description OoBM Link only
rule 5 permit vpn-instance management
snmp-agent acl snmp_access
snmp-agent community read community_name
NTP¶
Настройка в качестве клиента
ntp-service server disable
ntp-service ipv6 server disable
ntp-service server source-interface all disable
ntp-service ipv6 server source-interface all disable
ntp-service unicast-server 1.1.1.1 source-interface LoopBack0
ntp-service unicast-server 2.2.2.2 source-interface LoopBack0
#
clock timezone KRAT add 07:00:00
Syslog¶
info-center channel 0 name graylog
info-center source bgp channel 0 log level notification
info-center source evpn channel 0 log level notification
info-center source isis channel 0 log level notification
info-center source info channel 0 log level notification
info-center source default channel 0 log level notification
info-center loghost 10.226.255.2 vpn-instance management source-ip 10.226.255.191 channel 0 level notification local-time
NetStream¶
Полноый экспорт Netflow 5 без сэмплирования
system
ip netstream export source x.x.x.x
ip netstream export host y.y.y.y 9996
slot 0
interface Eth-Trunk10.39
ip netstream inbound
ip netstream outbound
ip netstream sampler fix-packets 1 inbound
ip netstream sampler fix-packets 1 outbound
slot
slot 1:ip netstream sampler to slot self
Порты¶
Создание LAG
# На портах не должно быть конфигурации перед добавлением в транк
clear config interface 100GE 0/1/52
y
clear config interface 100GE 0/1/52
y
# Создаем транк
interface eth-trunk 52
mode lacp-static
trunkport 100GE 0/1/52 mode active
trunkport 100GE 0/1/54 mode active
Настройка сабинтерфейса
interface et52.100
vlan-type dot1q 100
ip address 172.16.80.1 24
undo shutdown
PBR¶
Настройка Policy Based Routing-а заключается в настройке пяти сущностей:
- NQA (Network Quality Analysis) - аналог IP SLA в Cisco. Запускает набор тестов для проверки доступности/качества и т.д.
dis cur conf nqa
Пример:
#
nqa test-instance NATS NQA_NAT0
test-type icmp
description !! Test availability of NAT0 !!
destination-address ipv4 192.168.1.1
interval seconds 1
timeout 1
probe-count 2
source-interface LoopBack0
frequency 3
start now
#
nqa test-instance NATS NQA_NAT1
test-type icmp
description !! Test availability of NAT1 !!
destination-address ipv4 192.168.2.1
interval seconds 1
timeout 1
probe-count 2
source-interface LoopBack0
frequency 3
start now
#
- ACL (Access List) - собственно акцесс листы, на основе которых классифицируется трафик для дальнейшей обработки.
dis cur conf acl-basic|acl-adv
Прмер:
#
acl name ACL-NAT0 basic
rule 10 permit source 172.16.0.0 0.0.127.255
#
acl name ACL-NAT1 basic
rule 10 permit source 172.24.0.0 0.0.255.255
#
- TB (Traffic Behaviur) - действие, которое нужно произвести с траффиком, которое попадает под классификацию.
dis cur conf behaviour
Пример:
traffic behavior TB-NAT0
redirect ipv4-multinhp nhp 192.168.1.1 nqa NATS NQA_NAT0 nhp 192.168.2.1 nqa NATS NQA_NAT1 routing-filter default-routing pri-type common
#
traffic behavior TB-NAT1
redirect ipv4-multinhp nhp 192.168.2.1 nqa NATS NQA_NAT1 nhp 192.168.1.1 nqa NATS NQA_NAT0 routing-filter default-routing pri-type common
#
❗️ Для того, чтобы менялся только маршрут по-умолчанию, нужно глобально настроить поведение маршрутизатора, позволив ему подменять default-route.
#
slot 1
redirect routing-filter default-routing
#
- Classifier - Классифицирует трафик для дальнейшего применения политик маршрутизации.
dis cur conf classifier
Прмер:
#
traffic classifier TC-NAT0 operator or
if-match acl name ACL-NAT0
#
traffic classifier TC-NAT1 operator or
if-match acl name ACL-NAT1
#
- Traffic Policy (TP) - связывает определенных класс трафика с определенным действием (behavior). Непосредственно добавляется на интерфейс.
dis cur conf trafficpolicy
Прмер:
#
traffic policy TO-NAT
share-mode # Использовать общую политику для всех интерфейсов
classifier TC-NAT0 behavior TB-NAT0 precedence 100
classifier TC-NAT1 behavior TB-NAT1 precedence 110
#
Общая схема настройки PBR

IS-IS¶
Настройка с задействованным функционалом segment routing и TI-LFA (Topology Independent - Loop Free Alternate Fart ReRoute)
isis 1
description == Hooves and horns ==
is-level level-2
cost-style wide
timer lsp-generation 5 1 50 level-1
timer lsp-generation 5 1 50 level-2
flash-flood 15 level-1
flash-flood 15 level-2
bfd all-interfaces enable
bfd all-interfaces min-tx-interval 50 min-rx-interval 50
circuit-cost 100000 level-2
network-entity 49.0001.0000.0000.0001.00
is-name LAB.NE8000-1
timer spf 5 1 50
# Включение функционала SR. SRGB на всех PE желательно делать одианковым.
segment-routing mpls
segment-routing global-block 16000 23999
frr
loop-free-alternate level-2
ti-lfa level-2
interface Eth-Trunk52.3947
#
vlan-type dot1q 3947
...
isis enable 1
# Отключаем выбор DR, указав p2p линк
isis circuit-type p2p
isis circuit-level level-2
isis authentication-mode md5 plain t,fyfan2020
isis small-hello
isis bfd enable
...
#
int lo 0
...
isis enable 1
# Задачем Prefix SID для SR
isis prefix-sid index <n>
Диагностика
# Показать проблемы IS-IS
dis isis troubleshooting
BGP¶
Диагностика
display bgp troubleshooting
RR и Next-Hop¶
В некоторых экзотических случаях, например при общении по iBGP с Linux машиной, бывает необходимо подменить next-hop на адрес интерфейса, с которого установлена сессия. NE8000 для iBGP этого сделать не даст (next-hop-local не сработает). Можно настроить следующим образом:
#
xpl route-filter RF-EXPORT
apply ip next-hop peer-address
end-filter
#
bgp <asn>
ipv4-family unicast
reflect change-path-attribute
peer <peer> reflect-client
peer <peer> route-filter RF-EXPORT
...
## MPLS
Базовая настройка
```c
mpls
mpls lsr-id <loopback 0 ip>
Segment Routing¶
Общие настройки
segment-routing
# При построении L2VPN будет использоваться именно SR
tunnel-prefer segment-routing
https://www.segment-routing.net/tutorials/
# Показать метки, назначенные для Adjacency сегментов
dis segment-routing adjacency mpls forwarding
# Показать метки, назначенные для Prefix сегментов
dis segment-routing prefix mpls forwarding
# Показать состояние всех созданных LSP тоннелей
display tunnel-info all
# Пропингать удаленный хост через тоннель
ping lsp segment-routing ip 100.0.0.2 32 version draft2
#
Для того, чтобы L3VPN использовал тоннели SR, необходимо в VRF это указать
tunnel-policy p1
tunnel select-seq sr-lsp load-balance-number 2
commit
ip vpn-instance <vpnname>
ipv4-family
tnl-policy p1
commit
Для того, чтобы преимущественно использовались SR-MPLS BE тоннели (вместо LDP, например)
segment-routing
tunnel-prefer segment-routing
EVPN¶
Активация лицензии¶
При попытке привязать какой-либо интерфейс к EVPN инстансу, появится сообщение об ошибке. Лицензия активируется для физического интерфейса.
# Необходимо активировать лицензию
[~NE-DP32-8-1-GigabitEthernet0/1/0]evpn binding vpn-instance core-test
Error: The evpn license is not activated for interface GE0/1/0.
# Аактивация лицензии
[~NE-DP32-8-1-license]active port-evpn slot 1 card 1 port 0
Error: The port-basic licenses have not been activated for the ports in the range 0. Activate them first.
[~NE-DP32-8-1-license]active port-basic slot 1 card 1 port 0
Info: Use the display command to check the activation status of the port-basic licenses after committing the command.
[*NE-DP32-8-1-license]active port-evpn slot 1 card 1 port 0
Info: Use the display command to check the activation status of the port-evpn licenses after committing the command.
commmit
# Проверяем, что все активировалось
<NE-DP32-8-1>display license resource usage port-basic all active
...
License detailed information:
====================================================================================
Physical Position FeatureName Needed Count Used Count Active Status
------------------------------------------------------------------------------------
0/1/0 LCR8S0F1AE1C3 1 1 Activated
...
<NE-DP32-8-1>display license resource usage port-evpn all active
...
License detailed information:
====================================================================================
Physical Position FeatureName Needed Count Used Count Active Status
------------------------------------------------------------------------------------
0/1/0 LCR8SF0EVPNC4 1 1 Activated
Настройка¶
Топология стенда

Single Homed¶
Port-based¶
Простейший способ настройки EVPN, в котором с инстансом связывается физический интерфейс (port-based), который смотрит в сторону CE. Все пакеты попадают в соответствющий инстанс.
EVPN instance d c c vpn-i
evpn vpn-instance core-test
# RD
route-distinguisher 100:2
description << Instance without bridge >>
# RT
vpn-target 1:2 export-extcommunity
vpn-target 1:2 import-extcommunity
# Ограничиваем количество MAC-ов в инстансе
mac limit 1000
BGP
bgp 65300
peer 100.0.0.2 as-number 65300
peer 100.0.0.2 connect-interface LoopBack0
#
l2vpn-family evpn
peer 100.0.0.2 enable
Привязка интерфейса к EVPN инстансу
interface GigabitEthernet0/1/1
mtu 9198
description << EVPN test to 4900-1 Te1/1 >>
undo shutdown
evpn binding vpn-instance core-test
Аналогично настраивается на другом PE.

Vlan-aware (BD EVPN)¶
Vlan-aware Bundle - однму EVI несколько BD с указанием bd-tag для нормализации. Vlan-bundle настраивается аналогично, но без использования bd-tag (нормализацию вланов использовать в таком случае нельзя, но метки MPLS расходуются более экономно).
В Vlan-aware режиме путем снятия тега с разных сторон VPN-а можно использовать разные vlan (нормализация вланов).
Настриваем BD (Bridge Domain)
bridge-domain 10
evpn binding vpn-instance core-bridge bd-tag 100
Настраиваем EVPN ???
evpn
vlan-extend private enable
vlan-extend redirect enable
local-remote frr enable
#
mac-duplication
Настриваем EVI (EVPN Instance) в режиме bd-mode
evpn vpn-instance core-bridge bd-mode
route-distinguisher 100:1
description << CORE Backbone L2 >>
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
mac limit 1000
Настроиваем интерфейс, который необходимо добавить в BD
Subinterface нельзя привязывать к BD домену, так как он является routed
[*NE-DP32-8-1-GigabitEthernet0/1/0.666]evpn bind vpn-instance core-bridge
Error: Non-supported interface type.
Чтобы привязать SUB интерфейс к Bridge-domain-у необходимо настроить егов режиме l2
interface GigabitEthernet0/1/0.666 mode l2
description << EVPN BD TEST >>
encapsulation dot1q vid 666
bridge-domain 10
С другой стороны:
bridge-domain 20
evpn binding vpn-instance core-bridge bd-tag 200
#
evpn
vlan-extend private enable
vlan-extend redirect enable
local-remote frr enable
#
mac-duplication
#
evpn vpn-instance core-bridge bd-mode
route-distinguisher 100:1
description << CORE Backbone L2 >>
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
mac limit 1000
#
interface GigabitEthernet0/1/1.666 mode l2
description << EVPN BD TEST >>
encapsulation dot1q vid 666
bridge-domain 20
Для использования разных vlan в VPN на интерфейсах перед добавлением в BD необходимо снять vlan tag.
#NE8000-1
interface GigabitEthernet0/1/0.665 mode l2
description << EVPN Vlan-aware mode >>
encapsulation dot1q vid 665
rewrite pop single
bridge-domain 10
#NE8000-2
interface GigabitEthernet0/1/1.666 mode l2
description << EVPN Vlan-aware mode >>
encapsulation dot1q vid 666
rewrite pop single
bridge-domain 20
Dual Homed¶
Схема подключения

L2 сервис¶
EVPN инстанс
evpn
# ??
df-election ac-influence enable
# Оптимальное использование линков
vlan-extend private enable
vlan-extend redirect enable
# ??
local-remote frr enable
# Защита от дубликации вланов, если клиент запетляет сеть (access-side)
# Основано mac sequens (mac mobility)
mac-duplication
# Настроиваем режим балансировки отдельно для ES
esi 0000.0000.0000.0000.1111
evpn redundancy-mode all-active
# Собственно инстанс, к которому привяжемся
evpn vpn-instance core-bridge bd-mode
route-distinguisher 100:1
description << CORE Backbone L2 >>
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
mac limit 1000
BGP между PE для обмена EVPN маршрутами
bgp 65300
...
l2vpn-family evpn
policy vpn-target
peer 109.226.255.212 enable
# ???
peer 109.226.255.212 advertise irb
Bridge Domain
bridge-domain 10
evpn binding vpn-instance core-bridge bd-tag 666
Настроиваем e-trunk (при создании обязательно необходимо задать security-key)
# ??
lacp e-trunk priority 100
#
e-trunk 1
priority 200
peer-address 100.0.0.2 source-address 100.0.0.1
security-key cipher %^%#*fs}C;H0"@m55<KG*PdWJnokE4|;W686!K!r2*v3%^%#
authentication-mode enhanced-hmac-sha256
В сторону CE на каждом из PE настраиваем etherchannel и назначаем ему ESI, отличный от нуля для работы в MH режиме. Пример PE1:
interface Eth-Trunk1
mtu 9198
mode lacp-static
e-trunk 1
# Для работы A/A
e-trunk mode force-master
esi 0000.0000.0000.0000.1111
#
interface GigabitEthernet0/1/0
description << C4900-2 Te1/1 >>
undo shutdown
eth-trunk 1
undo dcn
Так же на PE2 необходимо указать system-id для e-trunk. MAC должен быть одинаковым на обоих PE, если агрегированный интерфейс собирается в режиме LACP.
lacp e-trunk system-id 78b4-6aaf-3271
lacp e-trunk priority 100
Принимаем нужные вланы от CE со снятием метки для нормализации.
interface Eth-Trunk1.666 mode l2
description << EVPN Vlan-aware AA mode >>
encapsulation dot1q vid 666
rewrite pop single
bridge-domain 10
L3 сервис¶
Относится к настройке anycast-gateway
# This ensures a rapid traffic switchover after a CE fault occurs.
arp constant-send enable
arp constant-send maximum 1
IP VPN инстанс (L3VPN), который будет связан с EVPN инстансом через IRB интерфейс
# RT и RD не обязательно должны быть такими же, как у EVI
ip vpn-instance core-bridge-l3
description << EVPN L3 services for Core backbone >>
ipv4-family
route-distinguisher 100:1
apply-label per-nexthop
routing-table limit 1000 100
vpn-target 1:1 export-extcommunity evpn
vpn-target 1:1 import-extcommunity evpn
# Использовать EVPN для передачи маршрутной информации
# L3VPN -> EVPN
evpn mpls routing-enable
Настраиваем одинаково на обохи PE Bridge интерфейс, то есть добавляем L3 интерфейс в Bridge-domain. Номер интерфейса равен номеру BD. IP адреса на всех PE в одном EVPN инстансе с указанием MAC, чтобы обеспечить работу anycast-gateway. Привязываем данный IRB к L3VPN инстансу.
interface Vbdif10
ip binding vpn-instance core-bridge-l3
ip address 192.168.128.254 255.255.255.0
# ??
arp generate-rd-table enable
# ??
arp distribute-gateway enable
# ??
arp collect host enable
mac-address 0200-0000-0010
Настройки BGP для обмена маршрутами с CE. При этом сессия будет установлена лишь с одним из PE.
import-route direct - импортируем коннектед маршруты, находящиеся в данном VRF
import-rib public route-filter default-only - из глобальной таблицы импортируем дефолтный маршрут (default-only в данном случае это xpl фильтр)
advertise l2vpn evpn - экспортировать полученный префиксы в соответствующий EVI (L3 сервис EVPN), связанные с VPN иснтансом через Bridge интерфейс.
192.168.128.20 - это второй CE, который на схеме не указан. RR настроен, потому что между CE нет BGP сессии.
bgp 65300
...
ipv4-family vpn-instance core-bridge-l3
import-route direct
import-rib public route-filter default-only
# Анонсировать префиксы, полученные через EVPN
# EVPN -> L3VPN
advertise l2vpn evpn
peer 192.168.128.10 as-number 31257
peer 192.168.128.10 reflect-client
peer 192.168.128.20 as-number 31257
peer 192.168.128.20 reflect-client