Настройка bgp huawei ar2200
Обновлено: 04.07.2024
Перейдем в режим system-view и переименуем наше оборудование:
В принципе, сейчас ваш маршрутизатор уже может пропускать через себя трафик, но обычно нужды этим не ограничиваются, так что настроим доп. сервисы.
Добавим dns сервера, у которых наш роутер будет спрашивать адреса, включим на нем dns сервер и передачу dns запросов, включим dhcp на внутреннем интерфейсе.
Настроим NAT(overload) нашей сети наружу, в адрес интерфейса.
Для этого выберем интересующую нас сеть ACL’ом и применим его к наружному интерфейсу
На этом наверное всё.
Huawei hg520c настройка
Доброго дня всем! Есть компьютер, для доступа в интернет используется ip адрес 192.168.0.3 Есть.
Настройка Huawei AR150
День добрый! Хотел бы узнать, может кто сталкивался с подобной проблемой?! Получил новенький.
Добрый день. Есть коммутатор S5700-28C-SI, в правиле прописан общий принтер с адресом 192.168.60.20
При добавлении правила, выдает ошибку:
[SW01-acl-adv-3060]rule 6 permit ip source 192.168.60.21 0
Error: The ACL is contained by some application(s) and forbidden to be modified.
Мне нужно добавить в acl 3030 и acl 3060 еще один общий принтер с адресом 192.168.60.21
Подскажите пожалуйста, как это сделать? Не судите строго, новичок в программировании, спасибо))
Huawei Versatile Routing Platform Software
VRP (R) software, Version 5.160 (AR160 V200R007C00SPCb00)
Copyright (C) 2011-2016 HUAWEI TECH CO., LTD
Huawei AR161FG-L Router uptime is 0 week, 0 day, 0 hour, 21 minutes
MPU 0(Master) : uptime is 0 week, 0 day, 0 hour, 20 minutes
SDRAM Memory Size : 512 M bytes
Flash 0 Memory Size : 512 M bytes
Flash 1 Memory Size : 2 M bytes
MPU version information :
1. PCB Version : ARSRU161GLW VER.B
2. MAB Version : 0
3. Board Type : AR161FG-L
4. CPLD0 Version : 102
5. BootROM Version : 738
После сброса, который делается прижатием "Reset" >= 5 сек., как рекомендует производитель, для консольного соединения
Останавливаем автоконфигурацию после предложения сделать это:
Warning: There is a risk in the current configuration file. Please save configuration as soon as possible.Warning: Auto-Config is working. Before configuring the device, stop Auto-Config. If you perform configurations when Auto-Config is running, the DHCP, routing, DNS, and VTY configurations will be lost. Do you want to stop Auto-Config? [y/n]:y
Info: Auto-Config has been stopped.
Конфигурация по умолчанию (после сброса, так называемая "дефолтная"):
Вижу, что в конфигурации по умолчанию сразу же присутствует виртуальный интерфейс (GigabitEthernet0/0/5), и VLAN с назначенным адресом (192.168.1.1/24).
Производитель устройства (AR161FG-L) в случае с версией программного обеспечения V200R007C00SPCb00 как бы намекает, что для "быстрого" конфигурирования можно настроить интерфейс Vlanif1 как "входящий" от пользователей и настроить "внешний" интерфейс GigabitEthernet0/0/4, маркированный на корпусе изделия WAN. Физический порт GigabitEthernet0/0/0 на устройстве маркирован сверху отдельной надписью "management", а снизу "WAN|GE0", что может слегонца нарушить понимание задумки, но не привыкать.
Исходное состояние после сброса устройства таково, что можно сразу же соединиться на коммутатор (порты от 0 до 3). Сетевой адрес этого интерфейса 192.168.1.1/24. Однако, попасть на работающий web-сервер не получится, современные обозреватели более не поддерживают имеющуюся настройку безопасности. Будет проблема с сертификатами и не удастся сделать даже исключение безопасности в обозревателе. Нужен IE6 или что-то из той эпохи, или нечто ещё более ранее. Не проверялось, но чтения по этому поводу много. В дальнейшем, при конфигурировании, можно изменить и сертификаты, переконфигурировать по этому вопросу имеющийся web-сервер. Или просто выключить.
Поэтому первоначальная настройка с помощью консоли.
Пока печатал истекло время ожидания, разлогинился. При вторичной авторизации уже так:
Это основной протокол динамической маршрутизации в сети Интернет. Относится к классу протоколов маршрутизации внешнего шлюза (External Gateway Protocol – EGP). BGP поддерживает бесклассовую адресацию и спользует суммирование маршрутов для уменьшения таблиц маршрутизации. На текущий момент используется четвертая версия протокола.
BGP функционирует поверх транспортного уровня TCP (порт 179). Протокол предназначен для обмена информацией о достижимости подсетей между автономными системами (AS - autonomous system), то есть группами маршрутизаторов под единым техническим и административным управлением, использующими протокол внутридоменной маршрутизации для определения маршрутов внутри себя и протокол междоменной маршрутизации для определения маршрутов доставки пакетов в другие АС. Передаваемая информация включает в себя список АС, к которым имеется доступ через данную систему. Выбор наилучших маршрутов осуществляется исходя из правил, принятых в сети.
Рассмотрим как выглядит базовая конфигурация BGP на устройствах Huawei.
Предположим, что у нас есть три автономные системы (Рисунок 1):
· AS50 включает только один BGP маршрутизатор (R1), который устанавливает одну EBGP сессию с AS500.
· AS500 включает три маршрутизатора (R2, R3, R4), которые образуют IBGP full mesh топологию.
· AS5000 включает один маршрутизатор R5, который устанавливает две сессии с AS500.
R1, принадлежащий AS50, будет объявлять три сети в AS5000. R 5 должен получить все три сети и иметь доступ к ним (пинговать).
Рисунок 1. Архитектура системы
Приступим к настройке BGP.
Во-первых настроим R1, должен быть запущен процесс AS50 и устанавливалась сессия с R2 в AS 500:
[R1] interface Ethernet 0/0/0
[R1-Ethernet0/0/0] ip address 5.228.12.1 24
[R1] bgp 50
[R1-bgp] undo synchronization
[R1-bgp] undo summary automatic
[R1-bgp] peer 5.228.12.2 as-number 500
Далее перейдем к настройке AS500 на маршрутизаторе R 2:
[R2] interface Ethernet 0/0/0
[R2-Ethernet0/0/0] ip address 5.228.12.2 24
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.23.2 24
[R2] interface Ethernet 0/0/1
[R2-Ethernet0/0/1] ip address 192.168.24.2 24
[R2] bgp 500
[R2-bgp] undo synchronization
[R2-bgp] undo summary automatic
[R2-bgp] peer 5.228.12.1 as-number 50
Проверим нашу EBGP сессию между AS50 и AS500:
BGP local router ID : 5.228.12.1
Local AS number : 50
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
5.228.12.2 4 500 4 5 0 00:02:24 Established 0
EBGP сессия между AS50 и AS500 установлена (Established), теперь можем приступить к настройке IBGP сессий в AS500. Для этого будем использовать peer группу с именем iBGP. Мы можем настроить каждое соседство по отдельности и назначить каждому свои BGP параметры, но в данном примере, для упрощения и сокращения конфигурации, мы настроим peer group (группа соседей), где все параметры будут назначены группе.
[R2] bgp 500
[R2-bgp] group iBGP internal
[R2-bgp] peer iBGP next-hop-local
[R2-bgp] peer 192.168.23.3 group iBGP
[R2-bgp] peer 192.168.24.4 group iBGP
Мы создали iBGP peer группу и присвоили ей тип internal. При использовании internal группы, не обязательно присваивать группе номер AS. Каждый пир, принадлежащий данной группе, получит номер локальнойAS. Давайте проверим BGP конфигурацию на маршрутизаторе R 2:
Все параметры группы iBGP будут назначены маршрутизаторам соседям.
Далее настроим маршрутизаторы R3 и R4.
Также сразу пропишем настройки для установления соседства с R 5:
[R3] interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0] ip address 192.168.23.3 24
[R3] interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1] ip address 192.168.34.3 24
[R3] interface Serial 0/0/0
[R3-Serial0/0/0] ip address 5.228.35.3 24
[R3] bgp 500
[R3-bgp] undo synchronization
[R3-bgp] undo summary automatic
[R3-bgp] group iBGP internal
[R3-bgp] peer iBGP next-hop-local
[R3-bgp] peer 192.168.23.2 group iBGP
[R3-bgp] peer 192.168.34.4 group iBGP
[R3-bgp] peer 5.228.35.5 as-number 5000
[R4] interface Ethernet 0/0/1
[R4-Ethernet0/0/1] ip address 192.168.24.4 24
[R4] interface GigabitEthernet 0/0/1
[R4-GigabitEthernet0/0/1] ip address 192.168.34.4 24
[R4] interface Ethernet 0/0/0
[R4- Ethernet 0/0/0] ip address 5.228.45.4 24
[R4] bgp 500
[R4-bgp] undo synchronization
[R4-bgp] undo summary automatic
[R4-bgp] group iBGP internal
[R4-bgp] peer iBGP next-hop-local
[R4-bgp] peer 192.168.24.2 group iBGP
[R4-bgp] peer 192.168.34.3 group iBGP
[R4-bgp] peer 5.228.45.5 as-number 5000
Проверим конфигурациюBGP на маршрутизаторах R3 и R 4:
ipv4-family unicast
undo synchronization
peer 5.228.35.5 enable
peer iBGP enable
peer iBGP next-hop-local
peer 192.168.23.2 enable
peer 192.168.23.2 group iBGP
peer 192.168.34.4 enable
peer 192.168.34.4 group iBGP
[R3-bgp] display bgp peer
BGP local router ID : 192.168.23.3
Local AS number : 500
Total number of peers : 3 Peers in established state : 3
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
5.228.35.5 4 5000 0 0 0 00:09:49 Idle 0
192.168.23.2 4 500 4 5 0 00:02:13 Established 0
192.168.34.4 4 500 6 6 0 00:04:42 Established 0
ipv4-family unicast
undo synchronization
peer 5.228.45.5 enable
peer iBGP enable
peer iBGP next-hop-local
peer 192.168.24.2 enable
peer 192.168.24.2 group iBGP
peer 192.168.34.3 enable
peer 192.168.34.3 group iBGP
[R4-bgp] display bgp peer
BGP local router ID : 192.168.24.4
Local AS number : 500
Total number of peers : 3 Peers in established state : 3
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
5.228.45.5 4 5000 0 0 0 00:07:14 Idle 0
192.168.24.2 4 500 6 6 0 00:04:02 Established 0
192.168.34.3 4 500 8 8 0 00:06:42 Established 0
Все настроено верно.Теперь приступим к настройке R 5:
[R5] interface Ethernet 0/0/0
[R5-Ethernet0/0/0] ip address 5.228.45.5 24
[R5] interface Serial 0/0/0
[R5-Serial0/0/0] ip address 5.228.35.5 24
[R5] bgp 5000
[R5-bgp] undo synchronization
[R5-bgp] undo summary automatic
[R5-bgp] peer 5.228.35.3 as-number 500
[R5-bgp] peer 5.228.45.4 as-number 500
[R5-bgp] display bgp peer
BGP local router ID : 5.228.35.5
Local AS number : 5000
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
5.228.35.3 4 500 2 2 0 00:02:20 Established 0
5.228.45.4 4 500 2 2 0 00:02:10 Established 0
R5 установил соседство с R3 и R4. На этом настройка BGP окончена.
Следующим шагом мы хотим чтобы AS50 начала объявлять нужные нам маршруты. Эти маршруты должна получить AS5000. Воспользуемся loopback интерфейсами для симуляции сетей, подключенных к R1. Присваиваем интерфейсам IP адреса и далее добавляем сети в наш bgp процесс:
[R1] interface LoopBack0
[R1-LoopBack0] ip address 10.0.0.1 24
[R1-LoopBack0] interface LoopBack1
[R1-LoopBack1] ip address 11.0.0.1 24
[R1-LoopBack1] interface LoopBack2
[R1-LoopBack2] ip address 12.0.0.1 24
[R1] bgp 50
[R1-bgp] network 10.0.0.0 24
[R1-bgp] network 11.0.0.0 24
[R1-bgp] network 12.0.0.0 24
Проверим объявляет ли R 1 наши сети:
[R1] display bgp routing-table
BGP Local router ID is 5.228.12.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.0.0.0/24 0.0.0.0 0 0 i
*> 11.0.0.0/24 0.0.0.0 0 0 i
*> 12.0.0.0/24 0.0.0.0 0 0 i
Как видим, конфигурация в порядке. Эти сети должны проходить AS500 до AS5000. Давайте проверим bgp таблицу на R 5:
[R5] display bgp routing-table
BGP Local router ID is 5.228.35.5
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 6
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.0.0.0/24 5.228.35.3 0 500 50i
* 5.228.45.4 0 500 50i
*> 11.0.0.0/24 5.228.35.3 0 500 50i
* 5.228.45.4 0 500 50i
*> 12.0.0.0/24 5.228.35.3 0 500 50i
* 5.228.45.4 0 500 50i
Как видим, все три сети присутствуют в bgp таблице маршрутизатора R5. Лучшим путь в эти сети проходит через маршрутизатор R3. R 5 получил маршруты, но сможем ли мы получить доступ в какую-либо из этих сетей? Давайте проверим:
[R5] ping 10.0.0.1
PING 10.0.0.1: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 10.0.0.1 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
Пинг не проходит.
Давайте разбираться что не так. BGP таблица в порядке, проверим таблицу маршрутизации на R 5:
[R5] display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost Flags NextHop Interface
5.228.35.0/24 Direct 0 0 D 5.228.35.5 Serial0/0/0
5.228.35.3/32 Direct 0 0 D 5.228.35.3 Serial0/0/0
5.228.35.5/32 Direct 0 0 D 127.0.0.1 Serial0/0/0
5.228.45.0/24 Direct 0 0 D 5.228.45.5 Ethernet0/0/0
5.228.45.5/32 Direct 0 0 D 127.0.0.1 Ethernet0/0/0
10.0.0.0/24 EBGP 255 0 D 5.228.35.3 Serial0/0/0
11.0.0.0/24 EBGP 255 0 D 5.228.35.3 Serial0/0/0
12.0.0.0/24 EBGP 255 0 D 5.228.35.3 Serial0/0/0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
Как видим все три маршрута присутствуют в таблице маршрутизации R5. Значит BGP настроен правильно. Так в чем же дело? Для выявления проблемы нам поможет протокол ICMP с icmp debugging. Настроим debug icmp на R1 и проверим source IP адрес icmp пакета отсылаемого маршрутизатором R 5:
<R1> debugging ip icmp
<R1> terminal monitor
<R1> terminal debugging
Теперь снова запустим пинг на маршрутизаторе R 5:
[R5] ping 10.0.0.1
PING 10.0.0.1: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Проверимdebug выводна R1:
<R1>
Apr 8 2019 10:09:00.10.1-08:00 R1 IP/7/debug_icmp:
ICMP Receive: echo(Type=8, Code=0), Src = 5.228.35.5, Dst = 10.0.0.1, ICMP ICMP Seq = 1
Apr 8 2019 10:09:00.10.2-08:00 R1 IP/7/debug_icmp:
ICMP Send: echo-reply(Type=0, Code=0), Src = 10.0.0.1, Dst = 5.228.35.5, ICMP ICMP Seq = 1
Как видим, R1 получает icmp echo пакеты и отправляет echo-reply в ответ на адрес 5.228.35.5. Давайте проверим, есть ли сеть 5.228.35.0/24 в таблице маршрутизации R 1:
[R1] display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 10 Routes : 10
Destination/Mask Proto Pre Cost Flags NextHop Interface
5.228.12.0/24 Direct 0 0 D 5.228.12.1 Ethernet0/0/0
5.228.12.1/32 Direct 0 0 D 127.0.0.1 Ethernet0/0/0
10.0.0.0/24 Direct 0 0 D 10.0.0.1 LoopBack0
10.0.0.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
11.0.0.0/24 Direct 0 0 D 11.0.0.1 LoopBack1
11.0.0.1/32 Direct 0 0 D 127.0.0.1 LoopBack1
12.0.0.0/24 Direct 0 0 D 12.0.0.1 LoopBack2
12.0.0.1/32 Direct 0 0 D 127.0.0.1 LoopBack2
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
R1 не знает пути до сети 5.228.35.0/24. Решить эту проблему можно двумя способами. Самый простой – объявить сеть 5.228.35.0/24 в bgp протоколе . Второй способ – настроить дополнительный IGP протокол между нашими маршрутизатрами и объявить все необходимые сети. Мы воспользуемся первым способом:
[R5] bgp 5000
[R5-bgp] network 5.228.35.0 24
Теперь еще раз попробуем пропинговать BGP сеть:
[R5-bgp] ping 10.0.0.1
PING 10.0.0.1: 56 data bytes, press CTRL_C to break
Reply from 10.0.0.1: bytes=56 Sequence=1 ttl=253 time=190 ms
Reply from 10.0.0.1: bytes=56 Sequence=2 ttl=253 time=160 ms
Reply from 10.0.0.1: bytes=56 Sequence=3 ttl=253 time=120 ms
Reply from 10.0.0.1: bytes=56 Sequence=4 ttl=253 time=110 ms
Reply from 10.0.0.1: bytes=56 Sequence=5 ttl=253 time=150 ms
--- 10.0.0.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 110/146/190 ms
Как видим R5 успешно пингует BGP сети, объявляемые маршрутизатором R1. Задача выполнена.
Пособираем VPLS-сервисы на Huawei. Здесь будет Kompella VPLS, Kompella VPLS + Martini H-VPLS (Mixed). В качестве IGP - ISIS, а в качестве транспорта - RSVP-TE. Стенд соберём в eNSP.
Не по теме
У меня есть старенький сервер с VMware ESXi, 6.0.0, есть виртуальная машина с Windows 10. Развернем на ней eNSP. eNSP использует VirtualBox, поэтому потребуется возможность запускать виртуальные машины внутри вирутальной машины. Это Nested virtualization, и в VMware существует давно. Включается так:
- Стартанем SSH через vSphere Client: Configuration - Security Profile - Properties - SSH - start
- Логинимся на сервер по ssh:
- открываем /etc/vmware/config
- добавляем vhv.enable = “TRUE” Это всё. Здесь побольше информации.
Топология, ISIS, RSVP-TE
Соберем топологию на NE40E (здесь подписаны интерфейсы и уже добавлены хосты):
Что имеем:
в качестве IGP - ISIS. Для каждого access-элемента сети существует единственный выход в мир - через agg, поэтому access-маршрутизаторам, находящимся в разных “кольцах доступа”, знать друг о друге совсем не обязательно. Исключить лишние префиксы на access можно разделив ISIS-домен на L1/L2 маршрутизаторы (это будут все agg) и на L1-маршрутизаторы (это будут все access), при этом важно добавить их в разные area. Тогда, мы получим default route на всех L1-access. Это равносильно totally stubby area в OSPF, и это хороший вариант, если ограничиться только маршрутизацией, но нам-то нужно строить LSP, а поверх - VPN. Есть второй вариант - настроить все маршрутизаторы как L2, разделив весь ISIS-домен на инстансы. Каждый инстанс - это отдельный процесс маршрутизации, никак не пересекающийся с остальными. Например, все agg выделим в instance 1, access-1 и 2 добавим в instance 2, а access-3 - в instance 3. Хорошая практика - настроить на всех agg указанные ISIS instance. Зачем? Кратко - затем, чтобы строить LSP между любым access и любым agg, а поверх - “бросать” VPN-сервисы.
agg объединены в RouteReflector (далее RR) cluster’ы (agg-1 + agg-2, agg-3 + agg-4), каждый со своим cluster ID. При выборе одинаковый/разный cluster id нужно помнить, что, если маршрутизатор получил BGP Update, где в поле CLUSTER_LIST указан его собственный cluster id, то такой Update будет отброшен. Это исключает петли. Cluster id нужно выбирать аккуратно, в соответствии с топологией, чтобы не создавать петель и не терять префиксы. Зачем нам здесь RR? Для реализации Kompella VPLS.
Для построения транспортных MPLS-тунелей используем RSVP-TE. Сможем более гибко управлять прохождением VPN-трафика, настроить балансировку.
Что и с чем будем объединять через L2:
Это та же самая топология. Стрелки указывают на устройства, между которыми мы будем “строить” vpls. Каждый цвет - это отдельный сервис, отдельный vpls-домен. Например, зеленый - настроим первым, между agg 1, agg 2, agg 3, подключим к ним любые хосты и проверим.
Принципы распространения трафика в VPLS:
картинки, чуть ниже, показывают только VPLS Data Plane, т.е. передачу пользовательского трафика на устройстве-участнике VPLS домена. И это важно.
AC - attached circuit, пользовательский интерфейс на PE-устройстве, принадлежит определенному vsi.
VSI - virtual switching instance, виртуальный коммутатор на PE, VPLS-домен. На Cisco - VFI.
PW - pseudowire, сервисный туннель или виртуальный провод между PE.
Подготовим ISIS и развернем RSVP-TE (актуально для каждого устройства):
По аналогии настроим еще 2 ISIS instance:
Настроим MPLS RSVP TE (на примере agg-1):
Пример настройки интерфейсов (ISIS + MPLS RSVP TE):
Транспортный LSP для VPLS
Мы можем передавать трафик разных vsi по разным транспортным LSP. Для этого в vsi существуют tnl-policy.
Настроим tnl-policy, которая позволит строить VPLS поверх RSVP-TE туннелей. Без нее будет работать только с LDP в качестве транспорта:
В нашем случае, мы используем политику, в которой указан приоритет для различных типов туннелей (возьмем статические cr-lsp и динамические RSVP TE lsp). Здесь же могут быть gre, bgp, ldp, sr-lsp или их mix. Это Tunnel type prioritizing policy. Здесь же можно настроить балансировку VPN-трафика поверх выбранных ранее типов туннелей. Используем load-balance-number 1, где 1 - число туннелей, используемых для балансировки. 1 - т.к. между РЕ у нас всего по одному туннелю. Можно указать от 1 до 64.
Если же использовать несколько туннелей до одного и того же LSR, то можно привязать VPN-трафик к определенному транспортному туннелю. Например, такой политикой:
Это уже Tunnel binding policy. Для RSVP туннеля нужно также разрешить привязку командой mpls te reserved-for-binding.
Это то, что касается путей прохождения VPN-трафика. Что касается самих TE туннелей, то ими тоже можно управлять. Например, с помощью ERO (Explicit Route Object, в Huawei - Explicit-path) или Affinity. Настроим hot-standby. Сперва, ERO:
Теперь туннель:
Теперь, Affinity:
здесь кратко. С помощью этого механизма можно разрешать или запрещать определенные типы LSP через интерфейс. Типы LSP могут быть такими: HSB+PR, HSB only, BE+HSB+PR и т.п. Каждый тип принадлежит административной группе, от номера которой зависит какие типы туннелей разрешены или запрещены при прохождении через интерфейс. Выглядит так:
Для туннеля задаем affinity бит:
Это может быть полезно, когда вы хотите строить через арендованный или самый ненадежный ликн только best-effort.
Теперь VPLS
1. agg-1 <-> agg-2 <-> agg-3:
Объединим в один vpls-домен интерфейсы на agg-1, agg-2 и agg-3
agg-1:
По аналогии для остальных agg, участвующих в VPLS-домене:
agg-2:
agg-3:
Теперь настроим отдельную l2vpn-ad-family в BGP для Kompella VPLS. Сразу определимся с соседями. Между всеми RR настроим полносвязную топологию, а на всех RR-клиентах понадобится только соседство с RR-кластером (RR будут передавать апдейты всем non-RR-клиентам, EBGP-соседям и, разумеется, RR-клиентам). BGP Update будут получать все устройства, с которыми поднято соседство на RR, но префикс (а это RD, RT, номер узла в VPLS домене (site), блок меток, vpn id, смещение) будут принимать только те РЕ, vsi которых содержат одинаковые RT. За счет RR мы реализуем механизм автоматического поиска соседей, Auto-Discovery, в Kompella VPLS. Это все Control Plane.
Теперь про Data Plane. Поскольку это L2-сервис, важно, чтобы mac-адреса были изучены правильно, и пользовательский кадр передавался только между нужными РЕ. А следовательно, каждый РЕ, участник VPLS-домена, должен иметь свою уникальную метку (здесь не как в L3VPN, общая метка для всех участников VRF). Поэтому вместе с Auto-Discovery в том же самом BGP Update (в секциях NLRI и Communities) РЕ получают всю необходимую для вычисления уникальных меток информацию. Это красиво.
vsi настроили, настроим отдельную l2vpn-ad-family в BGP:
agg-1:
agg-2:
agg-3:
После всех настроек BGP Update между 10.1.0.1 и 10.1.0.2 будет выглядеть так:
Здесь адрес Next hop - адрес соседа передающего сервисную метку для vsi test, настроенного ранее. В секции NLRI (Network layer reachability information) видим блок меток для расчета уникальной сервисной метки (для того же vsi test)
Подключим хосты, проверим работу vpls-сегмента (уже знакомая картинка из eNSP):
Настроим интерфейсы Ethernet1/0/5 на agg-1,2,3:
На PC1,2,3 настроим статическую адресацию, возьмем адреса 192.168.0.1,2,3/24.
Проверим, например, на agg-3 настроенный L2-сервис: Для начала, проверим транспортные RSVP-TE туннели:
Теперь проверим vsi:
Смотрим на vsi state. Для того,чтобы vsi на локальном устройстве был up:
- на vsi-соседях должен совпадать mtu. Можно отключить согласование mtu командной mtu-negotiate disable;
- AC-интерфейс должен быть в up. Обойти можно командной ignore-ac-state;
- транспортный туннель должен быть up
Если vsi не поднимается, то причину можно найти посмотрев детальную конфигурацию:
Поля, на которые следует обратить внимание, выделены **. Из интересного здесь “PW MAC Learn Style” и “Encapsulation Type”. Для первого доступны значения qualify и unqualify. Qualify - когда РЕ изучает mac-адреса для конкретных vlan отдельно. В unqualify - общий broadcast домен для всех vlan. Касаемо Encapsulation Type, влияет на инкапсуляцию трафика, проходящего через AC, бывает или vlan (по умолчанию), или ethernet, уже писал об этом выше, повторим и здесь.
- если на АС пришел фрейм с тегом, тег будет удален, фрейм передан дальше уже без тега
- если на АС пришел фрем без тега, то он будет передан дальше
Для vlan (режим по умолчанию):
Поле “Tunnel ID” должно быть не пустым, это означает, что PW знает, какой транспортный туннель необходимо использовать для пользовательского трафика.
Итак, с vsi все ок. Теперь, проверим состояние VC. Грубо говоря, VC (virtual circuit) - это путь, по которому будет передаваться пользовательский трафик. VC может быть не один, их может быть много. Это уже PW (pseudowire).
Помимо состояния VC, здесь же видим и выданные соседями по vsi сервисные метки.
Ничего не мешает нам запустить icmp между любыми PC, но сделаем это позже. Посмотрим, каким LSP пойдет трафик:
Например, до 10.1.0.1 пользовательский трафик пойдет через Tunnel0/7/111 (номер интерфейса здесь произвольный). Посмотрим LSP для этого туннеля:
Видим все хопы, через которые пойдет пользовательский трафик. А еще видим 3 метку, это PHP, он включен, по умолчанию. Здесь, конечно, будет информация по всем туннелям, я оставил только интересующий нас. С учетом включенного frr для mpls te, в выводе будут еще AutoTunnel.
Для этой же задачи можно воспользоваться командой tracert vpls .
Проверим, что пользовательские интерфейсы, действительно, привязаны к vsi test:
Теперь, PC1,2,3 будут обмениваться icmp.
Посмотрим на пользовательские mac-address:
В таблице для удаленного устройства (5489-98ee-1e09) мы сразу видим не туннельный интерфейс, а конкретный физический (Eth1/0/2.3).
Запустим ping между PC1 и PC2 и откроем wireshark на интерфейсе Ethernet 1/0/3 agg-1:
Видим стек меток. Метка 294929 - сервисная метка, с которой пакет будет передан на agg-2. На agg-1 будет выполнена процедура PHP, на agg-2 будет передан только один заголовок MPLS, с сервисной меткой.
2. access-3 <-> access-1
Здесь сложнее, т.к. access-3 и access-1(2) принадлежат разным isis-инстансам. По этой же причине построить PW между устройствами, указав их в l2vpn-ad-family в качестве соседей, не получится. Да и не нужно, хотя бы, по следующим причинам:
- access-маршрутизаторы не связаны “прямыми” линками, а общаются между собой через agg и никак иначе
- можно указать agg в качестве соседей в l2vpn-ad-family. Но split horizon не позволит передать пользовательский трафик дальше agg (смотри выше, в “Принципы распространения трафика в VPLS”)
- можно отбросить вопрос масштабируемости и добавить все access в общий isis-инстанс. В реальной жизни число access-маршрутизаторов будет больше 3, поддерживать full-mesh, при этом, будет непросто, не оптимально и не надо так
На картинке “Принципы распространения трафика в VPLS” есть spoke-устройства. Это H-VPLS, описанный в RFC4762. Придуман, чтобы упростить жизнь с VPLS Martini-mode, но поможет решить и нашу проблему с передачей пользовательского трафика между access-3 и access-1.
Выберем кластер agg, через которые будет проходить PW. Возьмем по наименьшим адресам Lo0, т.е. agg-1 и agg-2.
Пример конфигурации (включая полную конфигурацию bgp и уже, практически, без комментариев):
Подключение к консоли коммутатора
Т.к. в моем ультрабуке нет ни Ethernet порта, ни тем более COM порта я использовал свой адаптер QinHeng Electronics HL-340 USB-Serial adapter (Device 005: ID 1a86:7523). Радует он меня тем, что при подключении по USB сразу даёт вирутуальный COM-порт и не требует никаких драйверов ни под Windows, ни под Linux.
Для подключения использую gtkterm
Configuration -> Port:
Port: /dev/ttyUSB0
Baud rate: 9600
Parity: none
Bits: 8
Stop bits: 1
Flow control: none
После первого подключения возника проблема с тем, что оооочен сильно тормозила консоль. Потом выяснилось, что всемы виной консольный COM -> RJ45 кабель. Заменили его на Cisco-вский, и всё завелось.
Настройка hostname и IP адреса
Для смены hostname воспользуйтесь командой:
<Quidway>system-view
[Quidway]interface vlanif1
[Quidway-vlanif1]ip address 172.20.0.47 21
[Quidway-vlanif1]quit
Новый адрес применяется сразу, и в отличии от CISCO здесь не надо перезагружать интерфейс.
Настройка SNMP
У коммутаторов Huawei есть две особенности, о которых надо помнить, настраивая snmp. Во первых, если у вас включен snmp v3, то snmp v2c работать не будет. Во-вторых для snmp v2c при настройке на коммутаторе в консоле имя community надо указывать в кавычках, и в мониторилке (например Dude) оно тоже должно быть указано в кавычках (использовал двойные кавычки).
[Quidway]acl number 2100
[Quidway-acl-basic-2100]rule 1 permit source 172.20.0.33 0.0.0.0 // for one ip
Опционально можно добавить контактные данные в snmp.
[Quidway]snmp-agent sys-info contact X Division
[Quidway]snmp-agent sys-info location Kremlin
Настройка ssh
Генерим ключи, добавляем юзера, даём юзеру доступ к сервисам ssh(stelnet)+telnet.
[Quidway] rsa local-key-pair create
[Quidway]aaa
[Quidway-aaa]local-user admin password cipher YOURPASSWORD
[Quidway-aaa]local-user admin privelege level 3
[Quidway-aaa]local-user admin service-type ssh telnet
[Quidway-aaa]quit
[Quidway]stelnet server enable
[Quidway]ssh user admin authentication-type password
[Quidway]ssh user admin service-type stelnet
[Quidway]user-interface vty 0 4
[Quidway-ui-vty0-4]authentication-mode aaa
[Quidway-ui-vty0-4]protocol inbound ssh
Поднимаем веб-интерфейс
Файл с веб-интерфейсом (скрипты, js, css и т.д.) должен лежать в виде архива на устройстве. Просмотреть, что там лежит можно командой dir.
В моем случае у коммутатора было два вида интерфейса: classic (а-ля привет 90-е) и easyOperation (более-менее юзабельный). Можете сами визуально сравнить их.
Это classic интерфейс
А вот это EasyOperation
Почувствуйте разницу 🙂 Хотя лучш все равно в консоле.
Таблица аналогов CISCO-вских команд у HUAWEI
CISCO | HUAWEI |
ping | ping |
traceroute | tracert |
show | display |
show interfaces | display interface |
Show ip route | display routing-table |
Show ip interface | Display ip interface |
Show version | Display version |
Show ip bgp | Display bgp routing-table |
Show clock | Display clock |
Show port | Display port-mapping |
Show flash | dir flash: (on user view mode) |
Show logging | Display logbuffer |
Show snmp | Display snmp-agent statistics |
Show frame-relay pvc | Display fr pvc-info |
Show users | Display users |
Show terminal length | screen-length disable |
undo screen-length disable | |
enable | Super |
disable | Super 0 (number is privilege level from 0 to 3, where 3 is default and equivalent to “enable” on Cisco) |
Conf t | System-view |
exit | quit |
end | return |
Show policy-map interface | Display qos policy interface |
send | send (on user view mode) |
write terminal (sh run) | display current-configuration |
Sh startup | Display saved-configuration |
[no equivalent: shows the files used for startup] | Display startup |
Write erase | Reset saved-configuration |
Write mem (or wr or copy run start) | save |
clear counters | reset (on user view mode) |
Reset counters interface | |
? | ? |
telnet | telnet |
Enable secret (conf mode) | Super pass cipher (system mode) |
Term mon | term debu |
clock | clock |
no | undo |
debug / no debug | debugging / undo debugging |
copy running-config | Save safely |
terminal monitor | terminal monitor |
terminal length | screen-length disable |
undo screen-length disable | |
terminal no monitor | undo terminal monitor |
clear counters | reset counters interface |
clear interface | reset counters interface |
clear crypto | ipsec sa |
ike sa | |
clear access-list counters | reset acl counter all |
reload | reboot |
shutdown | shutdown |
boot | boot bootrom |
Aaa | hwtacacs scheme |
terminal no monitor | undo terminal monitor |
tacacs-server | hwtacacs scheme (in conf command) |
snmp-server | tftp-server (in conf command) |
router bgp | bgp |
Router rip | rip |
ip tacacs | hwtacacs nas-ip (this command doesn’t exist . ) |
mtu | Mtu (this command doesn’t exist . ) |
clear ip cef | reset ip fast-forwarding |
clear ip route * | reset ip routing-table statistics protocol all |
Clear ip bgp | Reset bgp all |
Show tech | display diagnostic-information |
Sh ip nat translation | Display nat session |
Show Controller | display controller (but not relevant for non-modular chassis) |
show dsl int atm 0 | display dsl status interface Atm 2/0 |
sho atm pvc | Display atm pvc-info |
debug pvc nego | Debug atm all (very dangerous – might crash router) |
sho crypto isakmp sa | Display ike sa |
sho crypto isakmp key | Display ike peer |
sho crypto isakmp police | Display ike proposal |
Ссылки
Спасибо!
Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:
Как вариант просканировать сеть и по ARP таблице посмотреть по MAC адресам. В начале MAC адреса идёт префикс вендора.
Читайте также: