Недавно на простороах интернета попались гайды по настройке Huawei. В основном для начинающих, но поскольку давно было желание поработать с этим вендоров, то почему бы не попробовать, но для того чтобы это было более увлекательно решил немного усложнить и собрать свою лабу. Если интересно, что из этого вышло, добро пожаловать под кат.

Начнем с постановки задачи: у нас есть головной офис, два филиала и наша задача "подружить" их друг с другом. Т.е. сделать так чтобы филиалы увидели друг друга, через головной офис. Построить hub and spoke топологию.

В каждом филиале крутится свой IGP. В одном филиале IS-IS, в другом и головном офисах OSPF.

Строить будем в eve-ng, в качестве border-роутера будет образ Huawei AR1000v, роль L3 коммутатора агрегации будет отведена образу Huawei Cloud Engine 6800.

Решение будет следующим:

  1. Настраиваем IGP в филиалах и головном офисе

  2. Строим туннели между филиалами и офисом

  3. Поднимаем BGP сессии на туннельных интерфейсах

  4. Редистрибутируем IGP в BGP

  5. Фильтруем полученные префиксы

  6. Проверяем связанность

Ниже представлена L3 схема с адресацией

L3 схема стенда
L3 схема стенда

1. Настроим адресацию и сконфигурируем IGP

Адресация на внешних интерфейсах вымышленная и взята для удобства отображения.

Border01-HQ01

display current-configuration
#
sysname Border01-HQ01
#
acl number 2000
 rule 5 permit source 192.168.110.0 0.0.0.255
 rule 10 permit source 192.168.120.0 0.0.0.255
 rule 15 permit source 192.168.130.0 0.0.0.255
 rule 20 deny 
#
interface GigabitEthernet0/0/0
 ip address 14.1.2.1 255.255.255.252
 nat outbound 2000
#
interface GigabitEthernet0/0/1
 ip address 10.0.0.0 255.255.255.254
 ospf network-type p2p
 ospf enable 1 area 0.0.0.0
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255
 ospf enable 1 area 0.0.0.0
#
ospf 1 router-id 1.1.1.1
 default-route-advertise always
 area 0.0.0.0
#
ip route-static 0.0.0.0 0.0.0.0 14.1.2.2
#
return

На внешнем интерфейсе настроено NAT правило для внутренних клиентов, позже будем проверять доступность до ресурса в "интернете", роль которого выполняет loopback интерфейс роутера ISP. Также в сторону агрегации анонсируется маршрут по умолчанию.

Agg-SW01-HQ01

display current-configuration
#
sysname Agg-SW01-HQ01
#
vlan batch 110 120 130
#
interface Vlanif110
 ip address 192.168.110.254 255.255.255.0
 ospf enable 1 area 0.0.0.0
 dhcp select relay
 dhcp relay binding server ip 192.168.140.100
#
interface Vlanif120
 ip address 192.168.120.254 255.255.255.0
 ospf enable 1 area 0.0.0.0
 dhcp select relay
 dhcp relay binding server ip 192.168.140.100
#
interface Vlanif130
 ip address 192.168.130.254 255.255.255.0
 ospf enable 1 area 0.0.0.0
 dhcp select relay
 dhcp relay binding server ip 192.168.140.100
#
interface GE1/0/0
 undo portswitch
 undo shutdown
 ip address 10.0.0.1 255.255.255.254
 ospf network-type p2p
 ospf enable 1 area 0.0.0.0
#
interface GE1/0/1
 undo shutdown
 port default vlan 110
#
interface GE1/0/2
 undo shutdown
 port default vlan 120
#
interface GE1/0/3
 undo shutdown
 port default vlan 130
#
interface LoopBack0
 ip address 1.1.1.10 255.255.255.255
 ospf enable 1 area 0.0.0.0
#
ospf 1 router-id 1.1.1.10
 area 0.0.0.0
#
return

На интерфейсах настроен dhcp relay, но на стенде корректно это не заработало. Т.е. запрос приходил на dhcp server, тот выдавал адрес но клиент никак не мог получить ACK. Несмотря на, что dhcp server уже фиксировал аренду для этого клиента. Возможно это особенности образа, возможно самой eve-ng. Скорее всего на реальном оборудование это сработает, но это не точно))). Забегая вперед, на клиентах адреса будут статические.

Проверим OSPF связанность

display ip routing-table protocol ospf
<Border01-HQ01>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib, T - to vpn-instance
------------------------------------------------------------------------------
Public routing table : OSPF
        Destinations : 4        Routes : 4

OSPF routing table status : <Active>
        Destinations : 4        Routes : 4

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

    1.1.1.10/32  OSPF    10   1           D   10.0.0.1        GigabitEthernet0/0/1
192.168.110.0/24  OSPF    10   2           D   10.0.0.1        GigabitEthernet0/0/1
192.168.120.0/24  OSPF    10   2           D   10.0.0.1        GigabitEthernet0/0/1
192.168.130.0/24  OSPF    10   2           D   10.0.0.1        GigabitEthernet0/0/1

OSPF routing table status : <Inactive>
        Destinations : 0        Routes : 0

Как видим маршруты от агрегации приходят.

Теперь посмотрим, что приходит на агрегацию от бордера.

display ip routing-table protocol ospf
<Agg-SW01-HQ01>display ip routing-table protocol ospf
Proto: Protocol        Pre: Preference
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route
------------------------------------------------------------------------------
_public_ Routing Table : OSPF
        Destinations : 7        Routes : 7

OSPF routing table status : <Active>
        Destinations : 2        Routes : 2

Destination/Mask    Proto   Pre  Cost        Flags NextHop         Interface

        0.0.0.0/0   O_ASE   150  1             D   10.0.0.0        GE1/0/0
        1.1.1.1/32  OSPF    10   1             D   10.0.0.0        GE1/0/0

OSPF routing table status : <Inactive>
        Destinations : 5        Routes : 5

Destination/Mask    Proto   Pre  Cost        Flags NextHop         Interface

    1.1.1.10/32  OSPF    10   0                 1.1.1.10        LoopBack0
    10.0.0.0/31  OSPF    10   1                 10.0.0.1        GE1/0/0
192.168.110.0/24  OSPF    10   1                 192.168.110.254 Vlanif110
192.168.120.0/24  OSPF    10   1                 192.168.120.254 Vlanif120
192.168.130.0/24  OSPF    10   1                 192.168.130.254 Vlanif130

Видим, что приходит маршрут по умолчанию и loopback от бордера.

Проверим "выход в мир"

ping 8.8.8.8 -c 3
NAME        : VPCS[1]
IP/MASK     : 192.168.110.10/24
GATEWAY     : 192.168.110.254
DNS         : 192.168.110.254
MAC         : 00:50:79:66:68:23
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPCS> ping 8.8.8.8 -c 3

84 bytes from 8.8.8.8 icmp_seq=1 ttl=253 time=3.327 ms
84 bytes from 8.8.8.8 icmp_seq=2 ttl=253 time=2.987 ms
84 bytes from 8.8.8.8 icmp_seq=3 ttl=253 time=2.106 ms

Для остальных устройств настройки аналогичные, приведу только настройку IS-IS для Branch-02.

Border01-BR02

display current-configuration
#
sysname Border01-BR02
#
acl number 2000
 rule 5 permit source 192.168.10.0 0.0.0.255
 rule 10 permit source 192.168.20.0 0.0.0.255
 rule 15 permit source 192.168.30.0 0.0.0.255
 rule 20 deny
#
isis 1
 network-entity 49.0001.0000.0000.0001.00
 default-route-advertise always
#
interface GigabitEthernet0/0/0
 ip address 195.147.98.1 255.255.255.252
 nat outbound 2000
#
interface GigabitEthernet0/0/1
 ip address 10.0.2.3 255.255.255.254
 isis enable 1
 isis circuit-type p2p
#
interface GigabitEthernet0/0/2
 ip address 10.0.2.1 255.255.255.254
 isis enable 1
 isis circuit-type p2p
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
 isis enable 1
#
ip route-static 0.0.0.0 0.0.0.0 195.147.98.2
#
return

В сторону агрегации специально "смотрят" два линка, для того чтобы получить балансировку, при условии равной стоимости.

Agg-SW01-BR02

display current-configuration
#
sysname Agg-SW01-BR02
#
vlan batch 10 20 30
#
isis 1
 network-entity 49.0001.0000.0000.0002.00
#
interface Vlanif10
 ip address 192.168.10.254 255.255.255.0
 isis enable 1
 isis circuit-type p2p
#
interface Vlanif20
 ip address 192.168.20.254 255.255.255.0
 isis enable 1
 isis circuit-type p2p
#
interface GE1/0/0
 undo portswitch
 undo shutdown
 ip address 10.0.2.2 255.255.255.254
 isis enable 1
 isis circuit-type p2p
#
interface GE1/0/1
 undo portswitch
 undo shutdown
 ip address 10.0.2.0 255.255.255.254
 isis enable 1
 isis circuit-type p2p
#
interface GE1/0/2
 undo shutdown
 port default vlan 20
#
interface GE1/0/3
 undo shutdown
 port default vlan 10
#
interface LoopBack0
 ip address 3.3.3.10 255.255.255.255
 isis enable 1
#
return

Проверим IS-IS связанность

display ip routing-table protocol isis
<Border01-BR02>display ip routing-table protocol isis
Route Flags: R - relay, D - download to fib, T - to vpn-instance
------------------------------------------------------------------------------
Public routing table : ISIS
        Destinations : 3        Routes : 6

ISIS routing table status : <Active>
        Destinations : 3        Routes : 6

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

    3.3.3.10/32  ISIS-L1 15   10          D   10.0.2.2        GigabitEthernet0/0/1
                 ISIS-L1 15   10          D   10.0.2.0        GigabitEthernet0/0/2
192.168.10.0/24  ISIS-L1 15   20          D   10.0.2.2        GigabitEthernet0/0/1
                 ISIS-L1 15   20          D   10.0.2.0        GigabitEthernet0/0/2
192.168.20.0/24  ISIS-L1 15   20          D   10.0.2.2        GigabitEthernet0/0/1
                 ISIS-L1 15   20          D   10.0.2.0        GigabitEthernet0/0/2

ISIS routing table status : <Inactive>
        Destinations : 0        Routes : 0

Маршруты от агрегации приходят и они доступны через два интерфейса, что и дает балансировку. По умолчанию IS-IS сконфигурирован в режиме L1-L2 (внутри региона/вне региона). В нашем случае это L1 т.к. все внутри одного региона (area) отвечает за это network-entity 49.0001.xxxx.xxxx.xxxx.xx должен быть одинаковым на устройствах одного региона.

display isis peer
<Agg-SW01-BR02>display isis peer

Peer Information for ISIS(1)
--------------------------------------------------------------------------------

System ID     Interface       Circuit ID        State HoldTime(s) Type     PRI
--------------------------------------------------------------------------------
0000.0000.0001  GE1/0/0         0000000001         Up            24 L1L2      --
0000.0000.0001  GE1/0/1         0000000002         Up            24 L1L2      --

Total Peer(s): 2
display ip routing-table protocol isis
<Agg-SW01-BR02>display ip routing-table protocol isis
Proto: Protocol        Pre: Preference
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route
------------------------------------------------------------------------------
_public_ Routing Table : IS-IS
        Destinations : 7        Routes : 9

IS-IS routing table status : <Active>
        Destinations : 2        Routes : 4

Destination/Mask    Proto   Pre  Cost        Flags NextHop         Interface

        0.0.0.0/0   ISIS-L2 15   10            D   10.0.2.3        GE1/0/0
                    ISIS-L2 15   10            D   10.0.2.1        GE1/0/1
        3.3.3.3/32  ISIS-L1 15   10            D   10.0.2.3        GE1/0/0
                    ISIS-L1 15   10            D   10.0.2.1        GE1/0/1

IS-IS routing table status : <Inactive>
        Destinations : 5        Routes : 5

Destination/Mask    Proto   Pre  Cost        Flags NextHop         Interface

    3.3.3.10/32  ISIS-L1 15   0                 3.3.3.10        LoopBack0
    10.0.2.0/31  ISIS-L1 15   0                 10.0.2.0        GE1/0/1
    10.0.2.2/31  ISIS-L1 15   0                 10.0.2.2        GE1/0/0
192.168.10.0/24  ISIS-L1 15   0                 192.168.10.254  Vlanif10
192.168.20.0/24  ISIS-L1 15   0                 192.168.20.254  Vlanif20

Видим,что на агрегацию приходит маршрут по умолчанию и loopback от бордера. Поскольку по умолчанию IS-IS сконфигурирован в L1-L2 мы можем принимать внешние маршруты, которым является 0.0.0.0/0 (считай редистрибуция) ISIS-L2.

Проверим "выход в мир"

ping 8.8.8.8 -c 3
NAME        : VPCS[1]
IP/MASK     : 192.168.10.10/24
GATEWAY     : 192.168.10.254
DNS         :
MAC         : 00:50:79:66:68:2d
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPCS> ping 8.8.8.8 -c 3

84 bytes from 8.8.8.8 icmp_seq=1 ttl=253 time=2.745 ms
84 bytes from 8.8.8.8 icmp_seq=2 ttl=253 time=2.001 ms
84 bytes from 8.8.8.8 icmp_seq=3 ttl=253 time=1.977 ms

2. Настроим туннели между филиалами и офисом

Будет приведена настройка только для головного офиса, т.к. настройки в филиалах зеркальны. А также не будем вдаваться в подробности настройки IPSEC, т.к. это заслуживает отдельной статьи.

display current-configuration
#
sysname Border01-HQ01
#
ipsec proposal 10
 esp authentication-algorithm sha2-512
 esp encryption-algorithm aes-256
#
ike proposal default
 encryption-algorithm aes-256 aes-192 aes-128
 dh group14
 authentication-algorithm sha2-512 sha2-384 sha2-256
 authentication-method pre-share
 integrity-algorithm hmac-sha2-256
 prf hmac-sha2-256
ike proposal 10
 encryption-algorithm aes-256
 dh group14
 authentication-algorithm sha2-256
 authentication-method pre-share
 integrity-algorithm hmac-sha2-256
 prf hmac-sha2-256
#
ike peer BRANCH-01
 pre-shared-key cipher "your_secret_key"
 ike-proposal 10
 local-address 14.1.2.1
 remote-address 2.58.17.1
 rsa encryption-padding oaep
 rsa signature-padding pss
 ikev2 authentication sign-hash sha2-256
ike peer BRANCH-02
 pre-shared-key cipher "your_secret_key"
 ike-proposal 10
 local-address 14.1.2.1
 remote-address 195.147.98.1
 rsa encryption-padding oaep
 rsa signature-padding pss
 ikev2 authentication sign-hash sha2-256
#
ipsec profile BR-01-PROF
 ike-peer BRANCH-01
 proposal 10
ipsec profile BR-02-PROF
 ike-peer BRANCH-02
 proposal 10
#
interface Tunnel0/0/1
 ip address 172.16.10.1 255.255.255.252
 tunnel-protocol gre
 source 14.1.2.1
 destination 2.58.17.1
 ipsec profile BR-01-PROF
#
interface Tunnel0/0/2
 ip address 172.16.20.1 255.255.255.252
 tunnel-protocol gre
 source 14.1.2.1
 destination 195.147.98.1
 ipsec profile BR-02-PROF
#
return

Проверим статистику по Security Association

display ipsec sa b
<Border01-HQ01>display ipsec sa b

IPSec SA information:
Src address                             Dst address                             SPI
VPN                                     Protocol                                Algorithm
--------------------------------------------------------------------------------------------------------------------------
14.1.2.1                                195.147.98.1                            11898564
                                        ESP                                     E:AES-256 A:SHA2_512_256
195.147.98.1                            14.1.2.1                                2909459
                                        ESP                                     E:AES-256 A:SHA2_512_256
14.1.2.1                                2.58.17.1                               240680
                                        ESP                                     E:AES-256 A:SHA2_512_256
2.58.17.1                               14.1.2.1                                14985427
                                        ESP                                     E:AES-256 A:SHA2_512_256

Number of IPSec SA : 4
--------------------------------------------------------------------------------------------------------------------------
display ike sa
<Border01-HQ01>display ike sa
Conn-ID    Peer                                          VPN              Flag(s)               Phase  RemoteType  RemoteID
------------------------------------------------------------------------------------------------------------------------------------
16         2.58.17.1/500                                                  RD|A                  v2:2   IP          2.58.17.1
4          2.58.17.1/500                                                  RD|A                  v2:1   IP          2.58.17.1
17         195.147.98.1/500                                               RD|ST|A               v2:2   IP          195.147.98.1
6          195.147.98.1/500                                               RD|ST|A               v2:1   IP          195.147.98.1

Number of IKE SA : 4
------------------------------------------------------------------------------------------------------------------------------------

Flag Description:
RD--READY   ST--STAYALIVE   RL--REPLACED   FD--FADING   TO--TIMEOUT
HRT--HEARTBEAT   LKG--LAST KNOWN GOOD SEQ NO.   BCK--BACKED UP
M--ACTIVE   S--STANDBY   A--ALONE  NEG--NEGOTIATING

Есть созданные security association, а это говорит о том что туннели построились и есть шифрование. Инкапсуляция выполняется через GRE-IPSEC.

3. Поднимем BGP сессии и отфильтруем их

Каждый филиал и головной офис имеют свой номер автономной системы, для офиса это AS65100, филиалы AS65200, AS65300 соответственно.
Поскольку будем производить редистрибуцию из IGP в BGP, то в BGP попадут все прификсы, в том числе loopback-и и линковые сети. Нам они не нужны поэтому напишем prefix-list, по которому будем принимать только нужные нам префиксы, а именно сети клиентов, т.е. 192.168.0.0/16 и все что помещается в это диапазон с большей маской.

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

Border01-HQ01

display current-configuration
#
sysname Border01-HQ01
#
ip ip-prefix PL_ALLOWED_PREFIXES index 10 permit 192.168.0.0 16 greater-equal 16 less-equal 32
#
bgp 65100
 peer 172.16.10.2 as-number 65200
 peer 172.16.10.2 connect-interface Tunnel0/0/1
 peer 172.16.20.2 as-number 65300
 peer 172.16.20.2 connect-interface Tunnel0/0/2
 #
 ipv4-family unicast
  undo synchronization
  import-route ospf 1
  peer 172.16.10.2 enable
  peer 172.16.10.2 ip-prefix PL_ALLOWED_PREFIXES import
  peer 172.16.20.2 enable
  peer 172.16.20.2 ip-prefix PL_ALLOWED_PREFIXES import
#
return
display bgp peer
<Border01-HQ01>display bgp peer

Status codes: * - Dynamic

BGP local router ID : 14.1.2.1
Local AS number : 65100
Total number of peers : 2                Peers in established state : 2
Total number of dynamic peers : 0

Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

172.16.10.2     4       65200      194      197     0 03:08:36 Established       3
172.16.20.2     4       65300      194      196     0 03:07:48 Established       2
display ip routing-table protocol bgp
<Border01-HQ01>display ip routing-table protocol bgp
Route Flags: R - relay, D - download to fib, T - to vpn-instance
------------------------------------------------------------------------------
Public routing table : BGP
        Destinations : 5        Routes : 5

BGP routing table status : <Active>
        Destinations : 5        Routes : 5

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

192.168.10.0/24  EBGP    255  20         RD   172.16.20.2     Tunnel0/0/2
192.168.20.0/24  EBGP    255  20         RD   172.16.20.2     Tunnel0/0/2
192.168.210.0/24  EBGP    255  2          RD   172.16.10.2     Tunnel0/0/1
192.168.220.0/24  EBGP    255  2          RD   172.16.10.2     Tunnel0/0/1
192.168.230.0/24  EBGP    255  2          RD   172.16.10.2     Tunnel0/0/1

BGP routing table status : <Inactive>
        Destinations : 0        Routes : 0

Как видим нужные нам маршруты появились в таблице маршрутизации.

4. Настало время проверок

Проверим IGP в филиалах и головном офисе

HQ

ping
NAME        : VPCS[1]
IP/MASK     : 192.168.130.30/24
GATEWAY     : 192.168.130.254
DNS         :
MAC         : 00:50:79:66:68:28
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPCS> ping 192.168.110.10 -c 3

84 bytes from 192.168.110.10 icmp_seq=1 ttl=63 time=4.012 ms
84 bytes from 192.168.110.10 icmp_seq=2 ttl=63 time=1.190 ms
84 bytes from 192.168.110.10 icmp_seq=3 ttl=63 time=1.310 ms

VPCS> ping 192.168.120.20 -c 3

84 bytes from 192.168.120.20 icmp_seq=1 ttl=63 time=3.428 ms
84 bytes from 192.168.120.20 icmp_seq=2 ttl=63 time=1.287 ms
84 bytes from 192.168.120.20 icmp_seq=3 ttl=63 time=1.607 ms

VPCS> ping 1.1.1.1 -c 3

84 bytes from 1.1.1.1 icmp_seq=1 ttl=254 time=2.239 ms
84 bytes from 1.1.1.1 icmp_seq=2 ttl=254 time=2.288 ms
84 bytes from 1.1.1.1 icmp_seq=3 ttl=254 time=1.588 ms

VPCS> ping 1.1.1.10 -c 3

84 bytes from 1.1.1.10 icmp_seq=1 ttl=255 time=19.684 ms
84 bytes from 1.1.1.10 icmp_seq=2 ttl=255 time=1.571 ms
84 bytes from 1.1.1.10 icmp_seq=3 ttl=255 time=1.198 ms

Branch-01

ping
NAME        : VPCS[1]
IP/MASK     : 192.168.210.10/24
GATEWAY     : 192.168.210.254
DNS         :
MAC         : 00:50:79:66:68:26
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500


VPCS> ping 192.168.220.20 -c 3

84 bytes from 192.168.220.20 icmp_seq=1 ttl=63 time=1.330 ms
84 bytes from 192.168.220.20 icmp_seq=2 ttl=63 time=1.194 ms
84 bytes from 192.168.220.20 icmp_seq=3 ttl=63 time=1.540 ms

VPCS> ping 192.168.230.30 -c 3

84 bytes from 192.168.230.30 icmp_seq=1 ttl=63 time=1.552 ms
84 bytes from 192.168.230.30 icmp_seq=2 ttl=63 time=1.240 ms
84 bytes from 192.168.230.30 icmp_seq=3 ttl=63 time=1.522 ms

VPCS> ping 2.2.2.2 -c 3

84 bytes from 2.2.2.2 icmp_seq=1 ttl=254 time=2.045 ms
84 bytes from 2.2.2.2 icmp_seq=2 ttl=254 time=1.508 ms
84 bytes from 2.2.2.2 icmp_seq=3 ttl=254 time=1.838 ms

VPCS> ping 2.2.2.10 -c 3

84 bytes from 2.2.2.10 icmp_seq=1 ttl=255 time=15.846 ms
84 bytes from 2.2.2.10 icmp_seq=2 ttl=255 time=1.115 ms
84 bytes from 2.2.2.10 icmp_seq=3 ttl=255 time=1.663 ms

Branch-02

ping
NAME        : VPCS[1]
IP/MASK     : 192.168.10.10/24
GATEWAY     : 192.168.10.254
DNS         :
MAC         : 00:50:79:66:68:2d
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPCS> ping 192.168.20.20 -c 3

84 bytes from 192.168.20.20 icmp_seq=1 ttl=63 time=6.022 ms
84 bytes from 192.168.20.20 icmp_seq=2 ttl=63 time=1.168 ms
84 bytes from 192.168.20.20 icmp_seq=3 ttl=63 time=1.412 ms

VPCS> ping 3.3.3.3 -c 3

84 bytes from 3.3.3.3 icmp_seq=1 ttl=254 time=1.567 ms
84 bytes from 3.3.3.3 icmp_seq=2 ttl=254 time=1.745 ms
84 bytes from 3.3.3.3 icmp_seq=3 ttl=254 time=1.596 ms

VPCS> ping 3.3.3.10 -c 3

84 bytes from 3.3.3.10 icmp_seq=1 ttl=255 time=8.187 ms
84 bytes from 3.3.3.10 icmp_seq=2 ttl=255 time=1.219 ms
84 bytes from 3.3.3.10 icmp_seq=3 ttl=255 time=1.612 ms

С одной из машин филиалов доступны машины других подсетей, а также loopback'и бордера и агрегации внутри этого филиала.

Проверим доступность удаленных филиалов из головного офиса

HQ to Branch-01

ping
NAME        : VPCS[1]
IP/MASK     : 192.168.110.10/24
GATEWAY     : 192.168.110.254
DNS         : 192.168.110.254
MAC         : 00:50:79:66:68:23
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPCS> ping 192.168.210.10 -c 3

84 bytes from 192.168.210.10 icmp_seq=1 ttl=60 time=8.976 ms
84 bytes from 192.168.210.10 icmp_seq=2 ttl=60 time=7.053 ms
84 bytes from 192.168.210.10 icmp_seq=3 ttl=60 time=6.672 ms

VPCS> ping 192.168.220.20 -c 3

84 bytes from 192.168.220.20 icmp_seq=1 ttl=60 time=9.236 ms
84 bytes from 192.168.220.20 icmp_seq=2 ttl=60 time=8.123 ms
84 bytes from 192.168.220.20 icmp_seq=3 ttl=60 time=7.247 ms

VPCS> ping 192.168.230.30 -c 3

84 bytes from 192.168.230.30 icmp_seq=1 ttl=60 time=8.117 ms
84 bytes from 192.168.230.30 icmp_seq=2 ttl=60 time=8.451 ms
84 bytes from 192.168.230.30 icmp_seq=3 ttl=60 time=4.663 ms

HQ to Branch-02

ping
NAME        : VPCS[1]
IP/MASK     : 192.168.110.10/24
GATEWAY     : 192.168.110.254
DNS         : 192.168.110.254
MAC         : 00:50:79:66:68:23
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPCS> ping 192.168.10.10 -c 3

84 bytes from 192.168.10.10 icmp_seq=1 ttl=60 time=13.473 ms
84 bytes from 192.168.10.10 icmp_seq=2 ttl=60 time=7.663 ms
84 bytes from 192.168.10.10 icmp_seq=3 ttl=60 time=6.367 ms

VPCS> ping 192.168.20.20 -c 3

84 bytes from 192.168.20.20 icmp_seq=1 ttl=60 time=10.810 ms
84 bytes from 192.168.20.20 icmp_seq=2 ttl=60 time=6.923 ms
84 bytes from 192.168.20.20 icmp_seq=3 ttl=60 time=7.925 ms

Проверим доступность филиалов между собой

Branch-01 to Branch-02

ping
NAME        : VPCS[1]
IP/MASK     : 192.168.220.20/24
GATEWAY     : 192.168.220.254
DNS         :
MAC         : 00:50:79:66:68:27
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPCS> ping 192.168.10.10 -c 3

84 bytes from 192.168.10.10 icmp_seq=1 ttl=59 time=12.489 ms
84 bytes from 192.168.10.10 icmp_seq=2 ttl=59 time=10.401 ms
84 bytes from 192.168.10.10 icmp_seq=3 ttl=59 time=14.660 ms

VPCS> ping 192.168.20.20 -c 3

84 bytes from 192.168.20.20 icmp_seq=1 ttl=59 time=13.374 ms
84 bytes from 192.168.20.20 icmp_seq=2 ttl=59 time=10.889 ms
84 bytes from 192.168.20.20 icmp_seq=3 ttl=59 time=13.471 ms

И немного трассировок

Tracert from Branch 01

trace
NAME        : VPCS[1]
IP/MASK     : 192.168.220.20/24
GATEWAY     : 192.168.220.254
DNS         :
MAC         : 00:50:79:66:68:27
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500


VPCS> trace 192.168.10.10 -P 1
trace to 192.168.10.10, 8 hops max (ICMP), press Ctrl+C to stop
1   192.168.220.254   4.274 ms  1.026 ms  0.825 ms
2   10.0.1.0   6.317 ms  8.018 ms  5.600 ms
3   172.16.10.1   8.656 ms  12.895 ms  8.293 ms
4   172.16.20.2   13.364 ms  13.165 ms  14.289 ms
5   10.0.2.2   13.012 ms  10.468 ms  10.961 ms
6   192.168.10.10   11.924 ms  11.986 ms  9.160 ms

VPCS> trace 192.168.20.20 -P 1
trace to 192.168.20.20, 8 hops max (ICMP), press Ctrl+C to stop
1   192.168.220.254   5.000 ms  1.036 ms  0.825 ms
2   10.0.1.0   5.701 ms  4.666 ms  3.809 ms
3   172.16.10.1   7.985 ms  9.941 ms  13.568 ms
4   172.16.20.2   13.479 ms  12.973 ms  14.480 ms
5   10.0.2.2   15.023 ms  9.474 ms  8.189 ms
6   192.168.20.20   15.522 ms  10.690 ms  10.563 ms

Tracert from Branch 02

trace
NAME        : VPCS[1]
IP/MASK     : 192.168.20.20/24
GATEWAY     : 192.168.20.254
DNS         :
MAC         : 00:50:79:66:68:2e
LPORT       : 20000
RHOST:PORT  : 127.0.0.1:30000
MTU         : 1500

VPCS> trace 192.168.110.10 -P 1
trace to 192.168.110.10, 8 hops max (ICMP), press Ctrl+C to stop
1   192.168.20.254   4.494 ms  0.963 ms  0.806 ms
2   10.0.2.1   5.014 ms  3.441 ms  5.638 ms
3   172.16.20.1   9.150 ms  8.669 ms  12.742 ms
4   10.0.0.1   22.344 ms  8.755 ms  6.997 ms
5   192.168.110.10   6.610 ms  6.782 ms  7.380 ms

VPCS> trace 192.168.230.30 -P 1
trace to 192.168.230.30, 8 hops max (ICMP), press Ctrl+C to stop
1   192.168.20.254   3.454 ms  1.295 ms  1.181 ms
2   10.0.2.1   5.356 ms  7.253 ms  3.723 ms
3   172.16.20.1   9.490 ms  9.953 ms  11.376 ms
4   172.16.10.2   13.284 ms  14.037 ms  15.375 ms
5   10.0.1.1   14.616 ms  10.290 ms  11.622 ms
6   192.168.230.30   14.632 ms  10.351 ms  12.057 ms

5. Выводы

Целью данного стенда было показать некое универсальное решение для той задачи, когда необходимо объеденить между собой площадки с разными IGP и когда нет возможности построить DMVPN. И на мой субъективный взгляд, редистрибуция в BGP подходит как нельзя лучше.
Безусловно это не единственное решение.

Что можно ещё добавить или улучшить?
Можно было пушить дефолт в филиалы через BGP и тем самым заставить их ходить в мир через головной офис, это бывает нужно из соображений безопасности.
Можно на каждую площадку завести ещё одного провайдера и поставить ещё один бордер для отказоустойчивости.
Возможно это будет в следующих итерациях.

Полные версии всех конфигов можно найти вотздесь

Комментарии (0)