> For the complete documentation index, see [llms.txt](https://adavyshin.gitbook.io/networks/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adavyshin.gitbook.io/networks/network/laboratornaya-rabota-all-in-one.md).

# Лабораторная работа: All-in-One

## Предисловие

Лабораторным полигоном у нас является сложная иерархически построенная инфраструктура компании, которая хостит у себя в DMZ важное приложение. Логика настроить инфраструктуру так, что в области DMZ у вас разруливал маршрутами eBGP между своими же устройствами, но каждое устройство это своя приватная AS, а в сети LAN у нас работает EIGRP, и нам нужно корректно заредистрибьюить маршруты из BGP->EIGRP и EIGRP ->BGP.

<figure><img src="/files/IlzqVTm4sCfu1Suoua0t" alt=""><figcaption></figcaption></figure>

## Настройка OSPF-underlay внутри DMZ-сегмента

🛠 Настройка <kbd>DC1-BGW01</kbd>:

```
configure terminal
!
router ospf 100
  router-id 198.18.0.1
  network 198.18.0.1 0.0.0.0 area 0
  network 10.255.0.0 0.0.255.255 area 0
!
interface Gi0/0
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
!
interface Gi0/3
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
  
```

🛠 Настройка <kbd>DC2-BGW02</kbd>:

```
configure terminal
!
router ospf 100
  router-id 198.18.0.2
  network 198.18.0.2 0.0.0.0 area 0
  network 10.255.0.0 0.0.255.255 area 0
!
interface Gi0/0
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
!
interface Gi0/3
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
```

🛠 Настройка <kbd>DC1-GW03</kbd>:

```
configure terminal
!
router ospf 100
  router-id 198.18.0.3
  network 198.18.0.3 0.0.0.0 area 0
  network 10.255.0.0 0.0.255.255 area 0
!
interface Gi0/0
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
!
interface Gi0/3
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
!
interface Gi0/1
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
```

🛠 Настройка <kbd>DC2-GW04</kbd>:

```
configure terminal
!
router ospf 100
  router-id 198.18.0.4
  network 198.18.0.4 0.0.0.0 area 0
  network 10.255.0.0 0.0.255.255 area 0
!
interface Gi0/0
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
!
interface Gi0/3
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
!
interface Gi0/1
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
```

🛠 Настройка <kbd>DC1-GW05</kbd>:

```
configure terminal
!
router ospf 100
  router-id 198.18.0.5
  network 198.18.0.5 0.0.0.0 area 0
  network 10.255.0.0 0.0.255.255 area 0
!
interface Gi0/3
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
!
interface Gi0/1
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
```

🛠 Настройка <kbd>DC2-GW06</kbd>:

```
configure terminal
!
router ospf 100
  router-id 198.18.0.6
  network 198.18.0.6 0.0.0.0 area 0
  network 10.255.0.0 0.0.255.255 area 0
!
interface Gi0/3
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
!
interface Gi0/1
  ip ospf network point-to-point
  bfd interval 500 min_rx 500 multiplier 3
  ip ospf bfd
```

## Настройка BGP внутри DMZ-сегмента

Мы строим внутри DMZ-сегмента мы строит eBGP дизайн, где у каждого устройства # AS берем `6500X`, где `X` - это номер устройства. Также все BGP-сессии мы строим из под Loopback0 адреса, которые ранее анонсировали в OSPF процесс 100.&#x20;

🛠 Настройка <kbd>DC1-BGW01</kbd>:

```
configure terminal
!
ip bgp-community new-format
!
router bgp 65001
 bgp router-id 198.18.0.1
 bgp log-neighbor-changes
 neighbor PEERS peer-group
 neighbor 198.18.0.2 remote-as 65002
 neighbor 198.18.0.2 peer-group PEERS
 neighbor 198.18.0.3 remote-as 65003
 neighbor 198.18.0.3 peer-group PEERS
 neighbor PEERS update-source Lo0
 neighbor PEERS ebgp-multihop 3
 neighbor PEERS password Specialist
 neighbor PEERS send-community
 neighbor PEERS timers 20 60
```

🛠 Настройка <kbd>DC2-BGW02</kbd>:

```
configure terminal
!
ip bgp-community new-format
!
router bgp 65002
 bgp router-id 198.18.0.2
 bgp log-neighbor-changes
 neighbor PEERS peer-group
 neighbor 198.18.0.1 remote-as 65001
 neighbor 198.18.0.1 peer-group PEERS
 neighbor 198.18.0.4 remote-as 65004
 neighbor 198.18.0.4 peer-group PEERS
 neighbor PEERS update-source Lo0
 neighbor PEERS ebgp-multihop 3
 neighbor PEERS password Specialist
 neighbor PEERS send-community
 neighbor PEERS timers 20 60
```

🛠 Настройка <kbd>DC1-GW03</kbd>:

```
configure terminal
!
ip bgp-community new-format
!
router bgp 65003
 bgp router-id 198.18.0.3
 bgp log-neighbor-changes
 neighbor PEERS peer-group
 neighbor 198.18.0.1 remote-as 65001
 neighbor 198.18.0.1 peer-group PEERS
 neighbor 198.18.0.4 remote-as 65004
 neighbor 198.18.0.4 peer-group PEERS
 neighbor 198.18.0.5 remote-as 65005
 neighbor 198.18.0.5 peer-group PEERS
 neighbor PEERS update-source Lo0
 neighbor PEERS ebgp-multihop 3
 neighbor PEERS password Specialist
 neighbor PEERS soft-reconfiguration inbound
 neighbor PEERS send-community
 neighbor PEERS timers 20 60
 # Advertise DMZ-North subnet
 network 10.128.1.0 mask 255.255.255.0
```

🛠 Настройка <kbd>DC2-GW04</kbd>:

```
configure terminal
!
ip bgp-community new-format
!
router bgp 65004
 bgp router-id 198.18.0.4
 bgp log-neighbor-changes
 neighbor PEERS peer-group
 neighbor 198.18.0.2 remote-as 65002
 neighbor 198.18.0.2 peer-group PEERS
 neighbor 198.18.0.3 remote-as 65003
 neighbor 198.18.0.3 peer-group PEERS
 neighbor 198.18.0.6 remote-as 65006
 neighbor 198.18.0.6 peer-group PEERS
 neighbor PEERS update-source Lo0
 neighbor PEERS ebgp-multihop 3
 neighbor PEERS password Specialist
 neighbor PEERS soft-reconfiguration inbound
 neighbor PEERS send-community
 neighbor PEERS timers 20 60
 # Advertise DMZ-North subnet
 network 10.128.1.0 mask 255.255.255.0
```

🛠 Настройка <kbd>DC1-GW05</kbd>:

```
configure terminal
!
ip bgp-community new-format
!
router bgp 65005
 bgp router-id 198.18.0.5
 bgp log-neighbor-changes
 neighbor PEERS peer-group
 neighbor 198.18.0.3 remote-as 65003
 neighbor 198.18.0.3 peer-group PEERS
 neighbor 198.18.0.6 remote-as 65006
 neighbor 198.18.0.6 peer-group PEERS
 neighbor PEERS update-source Lo0
 neighbor PEERS ebgp-multihop 3
 neighbor PEERS password Specialist
 neighbor PEERS send-community
 neighbor PEERS timers 20 60
 # Advertise DMZ-South subnet
 network 10.128.2.0 mask 255.255.255.0
```

🛠 Настройка <kbd>DC2-GW06</kbd>:

```
configure terminal
!
ip bgp-community new-format
!
router bgp 65006
 bgp router-id 198.18.0.6
 bgp log-neighbor-changes
 neighbor PEERS peer-group
 neighbor 198.18.0.4 remote-as 65004
 neighbor 198.18.0.4 peer-group PEERS
 neighbor 198.18.0.5 remote-as 65005
 neighbor 198.18.0.5 peer-group PEERS
 neighbor PEERS update-source Lo0
 neighbor PEERS ebgp-multihop 3
 neighbor PEERS password Specialist
 neighbor PEERS send-community
 neighbor PEERS timers 20 60
 # Advertise DMZ-South subnet
 network 10.128.2.0 mask 255.255.255.0
```

## Настройка взаимодействия с провайдерами

Взаимодействие с провайдером на Border Gateway не может осуществляться из под приватной AS, поэтому мы должны скрыть приватные AS за публичной AS.

🛠 Настройка <kbd>DC1-BGW01</kbd>:

```
configure terminal
!
interface GigabitEthernet0/1
  bfd interval 500 min_rx 500 multiplier 3
!
router bgp 65001
 neighbor 203.1.113.1 remote-as 100
 neighbor 203.1.113.1 local-as 2025 no-prepend replace-as
 neighbor 203.1.113.1 fall-over bfd single-hop
 
```

🛠 Настройка <kbd>DC2-BGW02</kbd>:

```
configure terminal
!
interface GigabitEthernet0/1
  bfd interval 500 min_rx 500 multiplier 3
!
router bgp 65002
 neighbor 203.2.113.1 remote-as 100
 neighbor 203.2.113.1 local-as 2025 no-prepend replace-as
 neighbor 203.2.113.1 fall-over bfd single-hop
```

💡 Поясню, что делает вторая строка конфигурации в настройках BGP:

* `no-prepend` — не добавляет настоящий AS (6500X) в AS\_PATH.
* `replace-as` — полностью заменяет его на 2025, **то есть сосед видит тебя как будто ты действительно AS 2025**.

В обоих Дата-Центрах у нас взаимодействие с одним и тем же провайдером, которых в обоих точках отдаёт нам маршрут по  умолчанию.&#x20;

🛠 Настройка <kbd>PE1</kbd>:

```
configure terminal
!
interface range GigabitEthernet0/1, GigabitEthernet0/3
  bfd interval 500 min_rx 500 multiplier 3
!
router bgp 100
 neighbor 203.1.113.100 remote-as 2025
 neighbor 203.1.113.100 default-originate
 neighbor 203.1.113.100 fall-over bfd single-hop
 neighbor 203.0.113.2 remote-as 100
 neighbor 203.0.113.2 fall-over bfd single-hop
```

🛠 Настройка <kbd>PE2</kbd>:

```
configure terminal
!
interface range GigabitEthernet0/1, GigabitEthernet0/3
  bfd interval 500 min_rx 500 multiplier 3
!
router bgp 100
 neighbor 203.2.113.100 remote-as 2025
 neighbor 203.2.113.100 default-originate
 neighbor 203.2.113.100 fall-over bfd single-hop
 neighbor 203.0.113.1 remote-as 100
 neighbor 203.0.113.1 fall-over bfd single-hop
```

После конфигурации, давайте проверим, например, на устройстве <kbd>DC1-BGW01</kbd>, что bfd соседи появились с помощью команды `show bfd neighbors`.

<figure><img src="/files/ungMy9nHQPV6D0nnc5IJ" alt=""><figcaption></figcaption></figure>

Для всех внешних сетей (Интернет) нам необходимо объявить, что DC1 у нас является основным, и что весь траффик при штатной эксплуатации должен отправляться именно в 1-ый Дата-Центр (`DC1`). Так как у нас один и тот же провайдер с одной AS, то эту ситуации мы можем обыграть с помощью `Multi-Exit Discriminator`.

Более того, мы должны анонсировать только нашу публичную сеть `4.25.132.0/22`, которая у нас эфемерная, и нигде не терминируется, то чтобы обыграть эту историю мы на Border Gateway создадим Loopback-адрес из этой подсети и на bgp-peer  <kbd>PE1</kbd> настроим `route-map` для фильтрации исходящего трафика и указания необходимого MED.

🛠 Настройка <kbd>DC1-BGW01</kbd>:

```
configure terminal
!
interface Loopback2025
  ip address 4.25.132.101 255.255.254.0
!
ip prefix-list Only_Public_Prefix seq 5 permit 4.25.132.0/23
!
route-map RM_BGP_PE1_Outbound
  match ip address prefix-list Only_Public_Prefix
  set metric 50
!
router bgp 65001
 network 4.25.132.0 mask 255.255.254.0
 neighbor 203.1.113.1 route-map RM_BGP_PE1_Outbound out
```

🔦 Проверяем, как это выглядит теперь со стороны <kbd>PE1</kbd>:

<figure><img src="/files/BWLkKUigshB0sqUqqSVE" alt=""><figcaption></figcaption></figure>

🛠 Настройка <kbd>DC2-BGW02</kbd>:

```
configure terminal
!
interface Loopback2025
  ip address 4.25.132.102 255.255.254.0
!
ip prefix-list Only_Public_Prefix seq 5 permit 4.25.132.0/23
!
route-map RM_BGP_PE2_Outbound
  match ip address prefix-list Only_Public_Prefix
  set metric 100
!
router bgp 65002
 network 4.25.132.0 mask 255.255.254.0
 neighbor 203.2.113.1 route-map RM_BGP_PE2_Outbound out
```

🔦 Также проверяем со стороны <kbd>PE2</kbd> но с помощью `show bgp ipv4 unicast`:

<figure><img src="/files/cYdjrP8hWrQrDtHz16GX" alt=""><figcaption></figcaption></figure>

## Управление траффиком на основе BGP Community

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

🛠 Настройка <kbd>DC1-BGW01</kbd>:

```
configure terminal
!
ip prefix-list Default_Only seq 5 permit 0.0.0.0/0
!
route-map RM_BGP_PE1_Inbound
  match ip address prefix-list Default_Only
  set community 2025:1001 additive
!
router bgp 65001
 neighbor 203.1.113.1 route-map RM_BGP_PE1_Inbound in
```

🛠 Настройка <kbd>DC2-BGW02</kbd>:

```
configure terminal
!
ip prefix-list Default_Only seq 5 permit 0.0.0.0/0
!
route-map RM_BGP_PE2_Inbound
  match ip address prefix-list Default_Only
  set community 2025:1002 additive
!
router bgp 65002
 neighbor 203.2.113.1 route-map RM_BGP_PE2_Inbound in
```

🔦 После данной конфигурации, давайте сделаем self-check на маршрутизаторе <kbd>DC1-BGW01</kbd>:

<figure><img src="/files/Wx8Sb64d5HqAaVkmnaQM" alt=""><figcaption></figcaption></figure>

Если бы не использовали команду в секции BGP  `ip bgp-community new-format`, то скриншот был бы такой и это тоже допустимо.

<figure><img src="/files/p19gwB4G872jCWbpc92U" alt=""><figcaption></figcaption></figure>

Для представления большого число `132711401`  в формате из первого скриншота, можно сделать следующие манипуляции:&#x20;

$$
132711401 = 65536\*"2025"+"1001"
$$

Итого, у нас получается исходное community `2025:1001`, то есть всё корректно, только записанное в старом формате, так как Cisco в данном версии хранит это значение в Interger-формате. Хотя если бы была доступна команда `bgp community new-format`, то формат был бы через ":".

Теперь давайте зададим приоритеты на нижестоящих устройствах в нижележащих уровнях безопасности DMZ как раз на основе community, где префиксу `0.0.0.0/0` c community `2025:1001` мы будем выставлять параметр `Local Preference` в `200`, а префиксу с community `2025:1002` - `100`.

🛠 Настройка <kbd>DC1-GW03</kbd>:

```
configure terminal
!
ip community-list standard PE1-Path permit 2025:1001
ip community-list standard PE2-Path permit 2025:1002
!
route-map RM_BGP_DC1BGW01_Inbound permit 10
  match community PE1-Path
  set local-preference 200
!
route-map RM_BGP_DC1BGW01_Inbound permit 20
  match community PE2-Path
  set local-preference 100
!
route-map RM_BGP_DC1BGW01_Inbound permit 30
!
!
route-map RM_BGP_DC2GW04_Inbound permit 10
  match community PE1-Path
  set local-preference 200
!
route-map RM_BGP_DC2GW04_Inbound permit 20
  match community PE2-Path
  set local-preference 100
!
route-map RM_BGP_DC2GW04_Inbound permit 30
!
router bgp 65003
 neighbor 198.18.0.1 route-map RM_BGP_DC1BGW01_Inbound in
 neighbor 198.18.0.4 route-map RM_BGP_DC2GW04_Inbound in
```

🔦 После применения конфигурации, дадим настоять секунд 30, и давайте проверим, что на маршрутизаторе <kbd>DC1-GW03</kbd>:&#x20;

<figure><img src="/files/8bshTUx8DEMZ6mIVBJcA" alt=""><figcaption></figcaption></figure>

Это то, чего старались добиться. Давайте сейчас повторим аналогичные действия применительно ко второму ЦОД-у.&#x20;

🛠 Настройка <kbd>DC2-GW04</kbd>:

```
configure terminal
!
ip community-list standard PE1-Path permit 2025:1001
ip community-list standard PE2-Path permit 2025:1002
!
route-map RM_BGP_DC2BGW02_Inbound permit 10
  match community PE1-Path
  set local-preference 200
!
route-map RM_BGP_DC2BGW02_Inbound permit 20
  match community PE2-Path
  set local-preference 100
!
route-map RM_BGP_DC2BGW02_Inbound permit 30
!
!
route-map RM_BGP_DC1GW03_Inbound permit 10
  match community PE1-Path
  set local-preference 200
!
route-map RM_BGP_DC1GW03_Inbound permit 20
  match community PE2-Path
  set local-preference 100
!
route-map RM_BGP_DC1GW03_Inbound permit 30
!
router bgp 65004
 neighbor 198.18.0.2 route-map RM_BGP_DC2BGW02_Inbound in
 neighbor 198.18.0.3 route-map RM_BGP_DC1GW03_Inbound in
```

🛠 Настройка <kbd>DC1-GW05</kbd>:

```
configure terminal
!
ip community-list standard PE1-Path permit 2025:1001
ip community-list standard PE2-Path permit 2025:1002
!
route-map RM_BGP_DC1GW03_Inbound permit 10
  match community PE1-Path
  set local-preference 200
!
route-map RM_BGP_DC1GW03_Inbound permit 20
  match community PE2-Path
  set local-preference 100
!
route-map RM_BGP_DC1GW03_Inbound permit 30
!
!
route-map RM_BGP_DC2GW06_Inbound permit 10
  match community PE1-Path
  set local-preference 200
!
route-map RM_BGP_DC2GW06_Inbound permit 20
  match community PE2-Path
  set local-preference 100
!
route-map RM_BGP_DC2GW06_Inbound permit 30
!
router bgp 65005
 neighbor 198.18.0.3 route-map RM_BGP_DC1BGW03_Inbound in
 neighbor 198.18.0.6 route-map RM_BGP_DC2GW06_Inbound in
```

🛠 Настройка <kbd>DC1-GW06</kbd>:

```
configure terminal
!
ip community-list standard PE1-Path permit 2025:1001
ip community-list standard PE2-Path permit 2025:1002
!
route-map RM_BGP_DC1GW05_Inbound permit 10
  match community PE1-Path
  set local-preference 200
!
route-map RM_BGP_DC1GW05_Inbound permit 20
  match community PE2-Path
  set local-preference 100
!
route-map RM_BGP_DC1GW05_Inbound permit 30
!
!
route-map RM_BGP_DC2GW04_Inbound permit 10
  match community PE1-Path
  set local-preference 200
!
route-map RM_BGP_DC2GW04_Inbound permit 20
  match community PE2-Path
  set local-preference 100
!
route-map RM_BGP_DC2GW04_Inbound permit 30
!
router bgp 65006
 neighbor 198.18.0.5 route-map RM_BGP_DC1GW05_Inbound in
 neighbor 198.18.0.4 route-map RM_BGP_DC2GW04_Inbound in
```

## Настройка северной подсети DMZ и публикация сервера

На устройствах DC1-GW03 и DC2-GW04 для отказоустойчивости поднимем протокол резервирования шлюза по умолчанию - HSRP c VIP-адресом `10.128.0.254`. Это позволит конвергировать сеть в случае выхода из строя одной из "железок". Схема переключения работает следующим образом, пока у нас присутствует объявленный выше 0.0.0.0/0, то на DC1-GW03, но как только он пропадает из FIB, то мы понижаем приоритет на 25 ед. на DC1-GW03, и переключаем default route на DC2-GW04 у которого будет дефолт приоритет в 100.

🛠 Настройка <kbd>DC1-GW03</kbd>:

```
configure terminal
!
track 1000 ip route 0.0.0.0/0 reachability
!
interface GigabitEthernet0/4
  standby 1 ip 10.128.1.254
  standby 1 priority 120
  standby 1 preempt
  standby 1 track 1000 decrement 25
```

🛠 Настройка <kbd>DC2-GW04</kbd>:

```
configure terminal
!
interface GigabitEthernet0/4
  standby 1 ip 10.128.1.254
  standby 1 preempt
```

🛠 Настройка <kbd>DC1-BGW01</kbd>:

```
configure terminal
!
interface GigabitEthernet0/1
  ip nat outside
!
interface GigabitEthernet0/0
  ip nat inside
!
interface GigabitEthernet0/3
ip nat inside
!
ip nat inside source static 10.128.1.100 4.25.132.100
```

🛠 Настройка <kbd>DC2-BGW02</kbd>:

```
configure terminal
!
interface GigabitEthernet0/1
  ip nat outside
!
interface GigabitEthernet0/0
  ip nat inside
!
interface GigabitEthernet0/3
ip nat inside
!
ip nat inside source static 10.128.1.100 4.25.132.100
```

🔦 Заходим на DMZ-cервер и пробуем icmp-запросами проверить доступность на адрес `8.8.8.8`. Если в конце концов ping успешен, даже если первые разы были icmp timeout, то всё хорошо.  &#x20;

<figure><img src="/files/eHPq4tiRGj8oCNow6k4Q" alt=""><figcaption></figcaption></figure>

Давайте также проверим доступность сервера из сети Интернет, для этого зайдём на консоль маршрутизатора <kbd>INTERNET</kbd> и попробуем пропинговать адрес `4.25.132.100`, за которым мы опубликовали наш сервер в DMZ, если всё корректно настроено то вы должны увидеть картину со скриншота ниже.

<figure><img src="/files/HC3dGahpubeBYrRT4Cae" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
В следующем пункте перед выключением маршрутизатора <kbd>DC1-BGW01</kbd> обязательно сохраните конфигурацию устройства с помощью команды `write memory`!
{% endhint %}

А давайте проверим отказоустойчивость наших внешних подключений и доступности нашего сервера в этот момент из Интернета. Для тестов предлагаю отключить маршрутизатор DC1-BGW01 и проверить тест еще раз через пару минут после отключения. Адрес `4.25.132.100` должен стать доступным спустя какое-то время и выполняем команду `ping 4.25.132.100 source lo8888`

<figure><img src="/files/oEyyMVzBmdWtTaUnaxfv" alt=""><figcaption></figcaption></figure>

## Настройка южной подсети DMZ и связь с LAN

В качестве протокола динамической маршрутизации в сети LAN у нас используется EIGRP, с ним не должно возникнуть проблем, так как настраивается он просто. Добавляем router-id и объявляем сети через команду network <> + маска.

Особенность нашей архитектуры в том, что всё потоки трафика циркулируют в левой половине (DC1) и если на пути прохождения трафика в DC1 у нас что-то отказывает или выходит из строя, то пакеты должны обойти вышедший из строя элемент по обходному пути через DC2, и вернуться на flow в левой половине. Пример, представлен на скриншоте ниже, где обходной путь нарисован оранжевой линией.

<figure><img src="/files/LquQmQMz0Bk1yveV5DPw" alt=""><figcaption></figcaption></figure>

🛠 Настройка <kbd>DC1-CORE01</kbd>:

```
configure terminal
!
router eigrp 2025
 network 10.64.0.0 0.0.255.255
 network 10.255.0.0 0.0.255.255
 eigrp router-id 198.18.0.11
 !
 interface range GigabitEthernet0/0, GigabitEthernet0/2-3
  delay 1
  bandwidth 10000000
```

🛠 Настройка <kbd>DC2-CORE02</kbd>:

```
configure terminal
!
router eigrp 2025
 network 10.64.0.0 0.0.255.255
 network 10.255.0.0 0.0.255.255
 eigrp router-id 198.18.0.12
 !
 interface range GigabitEthernet0/0, GigabitEthernet0/2-3
  delay 1
  bandwidth 10000000
```

{% hint style="info" %}
При редистрибьюции маршрутов из какого-либо протокола в EIGRP необходимо указать с какими метриками маршрут попадает в процесс, в следующем порядке: `bandwidth`, `delay`, `reliability`, `load`, `mtu`
{% endhint %}

🛠 Настройка <kbd>DC1-GW05</kbd>:

```
configure terminal
!
interface range GigabitEthernet0/0, GigabitEthernet0/2-3
  delay 1
  bandwidth 10000000
!
router eigrp 2025
 network 10.255.0.0 0.0.255.255
 redistribute bgp 65005 metric 10000000 1 255 1 1500 route-map RM-BGP-TO-EIGRP
 eigrp router-id 198.18.0.5
!
route-map RM-BGP-TO-EIGRP permit 10
 set tag 65000
!
route-map RM-EIGRP-TO-BGP deny 10
 match tag 65000
!
route-map RM-EIGRP-TO-BGP permit 20
!
router bgp 65005
 redistribute eigrp 2025 route-map RM-EIGRP-TO-BGP
```

🛠 Настройка <kbd>DC2-GW06</kbd>:

```
configure terminal
!
interface range GigabitEthernet0/0, GigabitEthernet0/2-3
  delay 1
  bandwidth 10000000
!
router eigrp 2025
 network 10.255.0.0 0.0.255.255
 redistribute bgp 65006 metric 10000000 5 255 1 1500 route-map RM-BGP-TO-EIGRP
 eigrp router-id 198.18.0.6
 !
 route-map RM-BGP-TO-EIGRP permit 10
 set tag 65000
!
route-map RM-EIGRP-TO-BGP deny 10
 match tag 65000
!
route-map RM-EIGRP-TO-BGP permit 20
!
router bgp 65006
 redistribute eigrp 2025 route-map RM-EIGRP-TO-BGP
```

Давайте проверим, что траффик будет всегда уходить на устройство <kbd>DC1-GW5</kbd> пока оно функционирует, это можно сделать проанализировав топологию EIGRP на маршрутизаторе <kbd>DC2-CORE2</kbd> . Как видим у дефолт-маршрута даже нет `Feasible Successor`, то точно пойдёт через <kbd>DC1-GW5</kbd>.

<figure><img src="/files/sAStTZe0wOTbjNI7qhWl" alt=""><figcaption></figcaption></figure>

А теперь глянем на обратный трафик, интересует <kbd>DC2-GW06</kbd>, тут мы видим что у нас работает `ECMP` и трафик балансируется к <kbd>DC1-CORE1</kbd> и <kbd>DC2-CORE2</kbd>.

<figure><img src="/files/TdQpxjK7g8ouMZGPNRTO" alt=""><figcaption></figcaption></figure>

Чтобы трафик был прогнозируем давайте переведём DC2-CORE2 на вторичную роль, тем, что через EIGRP offset-list добавим дополнительного delay.

🛠 Настройка <kbd>DC2-CORE2</kbd>:

```
configure terminal
!
ip access-list standard ANY
  permit any
!
router eigrp 2025
  offset-list ANY out 100
```

Теперь настраиваем нижнюю часть подключения <kbd>DMZ-SERVER</kbd>, здесь будет HSRP-группа 128 c привязкой к доступности маршрута на <kbd>DC1-GW05</kbd> до пользовательской сети, так как именно из неё пользователи будут подключаться к нашему приложению по внутреннему IP-адресу.&#x20;

🛠 Настройка <kbd>DC1-GW05</kbd>:

```
configure terminal
!
track 128 ip route 10.64.0.0/24 reachability
!
interface GigabitEthernet0/4
 standby version 2
 standby 128 ip 10.128.2.254
 standby 128 timers 1 3
 standby 128 priority 120
 standby 128 preempt
 standby 128 track 64 decrement 25
```

🛠 Настройка <kbd>DC1-GW06</kbd>:

```
configure terminal
!
interface GigabitEthernet0/4
 standby version 2
 standby 128 ip 10.128.2.254
 standby 128 timers 1 3
 standby 128 preempt
```

Настраиваем резервирование шлюза по умолчанию для сети пользователей:

Активным устройством, отвечающим на ARP будет <kbd>DC1-CORE01</kbd> с приоритетом 120, но у нас будет track, которые проверяет, что в FIB у нас находится defaul route,  как только он пропадает, то приоритет снижается до 95, и активным устройством становится <kbd>DC2-CORE02</kbd>.trac&#x20;

🛠 Настройка <kbd>DC1-CORE01</kbd>:

```
configure terminal
!
track 64 ip route 0.0.0.0/0 reachability
!
interface Vlan64
 standby version 2
 standby 64 ip 10.64.0.254
 standby 64 timers 1 3
 standby 64 priority 120
 standby 64 preempt
 standby 64 track 64 decrement 25
```

🛠 Настройка <kbd>DC2-CORE02</kbd>:

```
configure terminal
!
interface Vlan64
 standby version 2
 standby 64 ip 10.64.0.254
 standby 64 timers 1 3
 standby 64 preempt
```

На Workstation PC1 давайте проверим доступность приложение в DMZ сервере.&#x20;

```
ping 10.128.2.100
```

<figure><img src="/files/9tV1ASay0oP8qwceSeS8" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://adavyshin.gitbook.io/networks/network/laboratornaya-rabota-all-in-one.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
