> 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-basic/network-layer.md).

# Network Layer

В данном модуле рассматривается взаимодействие на сетевом уровне модели OSI

📦 Ссылка на файл GNS3 проекта:

{% embed url="<https://disk.yandex.ru/d/fXymkattGu_chw>" %}

### Настройка клиентской сети

🔧 <kbd>AGG01</kbd>: Настраиваем IP-адресацию

```
vlan 1
!
interface Gi0/0
  switchport mode access
  switchport access vlan 1
  no sh
!
interface vlan 1
  ip address 10.0.0.251 255.255.255.0
  no shutdown
```

🔧 <kbd>AGG02</kbd>: Настраиваем IP-адресацию

```
vlan 1
!
interface Gi0/0
  switchport mode access
  switchport access vlan 1
  no sh
!
interface vlan 1
  ip address 10.0.0.252 255.255.255.0
  no shutdown
```

Для отказоустойчивости строим протокол HSRP

🔧 <kbd>AGG01</kbd>: Настраиваем HSRP

```
interface vlan 1
  standby 1 ip 10.0.0.254
  standby 1 priority 120
  standby 1 preempt
```

🔧 <kbd>AGG02</kbd>: Настраиваем HSRP

```
interface vlan 1
  standby 1 ip 10.0.0.254
  standby 1 preempt
```

### Настройка IP-адресации на магистралях

🔧 <kbd>CORE01</kbd>: Настраиваем IP-адресацию

```
interface Gi0/0
  no switchport
  ip address 10.100.0.1 255.255.255.0
  no sh
!
interface Gi0/1
  no switchport
  ip address 10.101.0.254 255.255.255.0
  no sh
!
interface Gi1/0
  no switchport
  ip address 10.13.0.1 255.255.255.0
  no sh
!
interface Gi1/1
  no switchport
  ip address 10.14.0.1 255.255.255.0
  no sh
!
!
interface Loopback0
  ip address 10.1.1.1 255.255.255.255
```

🔧 <kbd>CORE02</kbd>: Настраиваем IP-адресацию

```
interface Gi0/0
  no switchport
  ip address 10.100.0.2 255.255.255.0
  no sh
!
interface Gi0/1
  no switchport
  ip address 10.102.0.254 255.255.255.0
  no sh
!
interface Gi1/0
  no switchport
  ip address 10.24.0.2 255.255.255.0
  no sh
!
interface Gi1/1
  no switchport
  ip address 10.23.0.2 255.255.255.0
  no sh
!
interface Loopback0
  ip address 10.2.2.2 255.255.255.255
```

🔧 <kbd>AGG01</kbd>: Настраиваем IP-адресацию

```
vlan 13,23
!
interface Gi1/0
  switchport mode access
  switchport access vlan 13
  spanning-tree portfast
  no sh
!
interface Gi1/1
  switchport mode access
  switchport access vlan 23
  spanning-tree portfast
  no sh
!
interface vlan 13
  ip address 10.13.0.3 255.255.255.0
  no shutdown
!
interface vlan 23
  ip address 10.23.0.3 255.255.255.0
  no shutdown
```

🔧 <kbd>AGG02</kbd>: Настраиваем IP-адресацию

```
vlan 14,24
!
interface Gi1/0
  switchport mode access
  switchport access vlan 14
  spanning-tree portfast
  no sh
!
interface Gi1/1
  switchport mode access
  switchport access vlan 24
  spanning-tree portfast
  no sh
!
interface vlan 14
  ip address 10.14.0.4 255.255.255.0
  no shutdown
!
interface vlan 24
  ip address 10.24.0.4 255.255.255.0
  no shutdown
```

🔧 <kbd>EDGE01</kbd>: Настраиваем IP-адресацию

```
interface Gi0/2
  ip address 10.101.0.1 255.255.255.0
  no sh
!
interface Gi0/3
  ip address 10.102.0.1 255.255.255.0
  no sh
!
interface Loopback0
  ip address 10.111.111.111 255.255.255.255
```

### Настройка динамической маршрутизации

🔧 <kbd>EDGE01</kbd>: Конфигурация OSPF

```
router ospf 1
  log-adjacency-changes
  router-id 10.111.111.111
  network 10.111.111.111 0.0.0.0 area 0
  network 10.101.0.0 0.0.0.255 area 0
  network 10.102.0.0 0.0.0.255 area 0
  default-information originate
```

🔧 <kbd>CORE01</kbd>: Конфигурация OSPF

```
router ospf 1
  log-adjacency-changes
  router-id 10.1.1.1
  network 10.101.0.0 0.0.0.255 area 0
  network 10.100.0.0 0.0.0.255 area 0
  network 10.13.0.0 0.0.0.255 area 0
  network 10.14.0.0 0.0.0.255 area 0
  network 10.1.1.1 0.0.0.255 area 0
```

🔧 <kbd>CORE02</kbd>: Конфигурация OSPF

```
router ospf 1
  log-adjacency-changes
  router-id 10.2.2.2
  network 10.102.0.0 0.0.0.255 area 0
  network 10.100.0.0 0.0.0.255 area 0
  network 10.23.0.0 0.0.0.255 area 0
  network 10.24.0.0 0.0.0.255 area 0
  network 10.2.2.2 0.0.0.255 area 0
```

🔧 <kbd>AGG01</kbd>: Конфигурация OSPF

```
router ospf 1
  log-adjacency-changes
  router-id 10.3.3.3
  network 10.13.0.0 0.0.0.255 area 0
  network 10.23.0.0 0.0.0.255 area 0
  network 10.0.0.0 0.0.0.255 area 0
```

🔧 <kbd>AGG02</kbd>: Конфигурация OSPF

```
router ospf 1
  log-adjacency-changes
  router-id 10.4.4.4
  network 10.14.0.0 0.0.0.255 area 0
  network 10.24.0.0 0.0.0.255 area 0
  network 10.0.0.0 0.0.0.255 area 0
```

### Настройка DHCP функционала

Настраиваем DHCP-сервера на коммутаторах ядра <kbd>CORE01</kbd> и <kbd>CORE02</kbd>, и так Cisco IOS не поддерживает отказоустойчивый кластер DHCP, то используем метод разделения адресного пространства между двумя коммутаторами.

🔧 <kbd>CORE01</kbd>: Конфигурация DHCP пула

```
ip dhcp excluded-address 10.0.0.1 10.0.0.49
ip dhcp excluded-address 10.0.0.150 10.0.0.254
ip dhcp remember
!
ip dhcp pool DHCP_LAN_POOL
  network 10.0.0.0 255.255.255.0
  default-router 10.0.0.254
  dns-server 8.8.8.8
  domain-name corp.example.local
  lease 0 12
  
```

🔧 <kbd>CORE02</kbd>: Конфигурация DHCP пула

```
ip dhcp excluded-address 10.0.0.1 10.0.0.149
ip dhcp excluded-address 10.0.0.250 10.0.0.254
ip dhcp remember
!
ip dhcp pool DHCP_LAN_POOL
  network 10.0.0.0 255.255.255.0
  default-router 10.0.0.254
  dns-server 8.8.8.8
  domain-name corp.example.local
  lease 0 12
```

Так как широковещательный домен у нас заканчивается на коммутаторах агрегации, то широковещательные запросы от клиентов не достигнут коммутаторов ядра, для работы функционала DHCP нам необходимо включить ретрансляцию запросов (DHCP Relay).

🔧 <kbd>AGG01</kbd>: Настройка ретрансляции DHCP-запросов

```
interface vlan 1
  ip helper-address 10.1.1.1
  ip helper-address 10.2.2.2
```

🔧 <kbd>AGG02</kbd>: Настройка ретрансляции DHCP-запросов

```
interface vlan 1
  ip helper-address 10.1.1.1
  ip helper-address 10.2.2.2
```

⚙️ Для проверки получения адресов на клиентских машинах <kbd>PC1</kbd> ... используем команду

```
ip dhcp
```

### Настройка подключения к Интернету

🔧 <kbd>EDGE01</kbd>: Конфигурация адресации в сторону провайдеров

```
interface Gi0/0
  description "WAN-ISP1"
  ip address 203.0.113.2 255.255.255.0
  no sh
!
interface Gi0/1
  description "WAN-ISP2"
  ip address 198.51.100.2 255.255.255.0
```

🔧 <kbd>EDGE01</kbd>: Настройка "жестких" маршрутов до публичных ресурсов

```
ip route 8.8.8.8 255.255.255.255 203.0.113.1 permanent name WAN1-check
!
ip route 77.88.8.8 255.255.255.255 198.51.100.1 permanent name WAN2-check
```

&#x20;🔧 <kbd>EDGE01</kbd>: Настройка проб через механизм IP SLA&#x20;

```
ip sla 1
 icmp-echo 8.8.8.8 source-interface GigabitEthernet0/0
 frequency 5
 timeout 1000
!
ip sla schedule 1 life forever start-time now
!
!
ip sla 2
 icmp-echo 77.88.8.8 source-interface GigabitEthernet0/1
 frequency 5
 timeout 1000
!
ip sla schedule 2 life forever start-time now
```

* `ip sla <ID>` — ID операции (1–2147483647)
* `icmp-echo` — самый базовый и часто используемый тип
* `source-interface` — **настоятельно рекомендуется**, иначе возможны ложные срабатывания
* `frequency 5` — интервал (в секундах)
* `timeout 1000` — ожидание ответа (мс)

🔎 Проверка статуса проб осуществляется командой

```
show ip sla summary 
```

&#x20;🔧 <kbd>EDGE01</kbd>: Настройка track объектов с привязкой к пробам

```
track 1 ip sla 1 reachability
!
track 2 ip sla 2 reachability
```

🔧 <kbd>EDGE01</kbd>: Создание статических маршрутов с привязкой к проверкам

```
ip route 0.0.0.0 0.0.0.0 203.0.113.1 track 1
ip route 0.0.0.0 0.0.0.0 198.51.100.1 track 2 10
```

### Настройка NAT-трансляций

Маршруты есть, но клиенты сейчас не смогут выйти в Интернет, так как пакеты от компьютеров будут с полем отправитель - серый IP-адрес, который маршрутизаторы ISP отбросят.

🔧 <kbd>EDGE01</kbd>: Разметка интерфейсов

```
int gi0/0
  ip nat outside
!
int gi0/1
  ip nat outside
!
int gi0/2
  ip nat inside
!
int gi0/3
  ip nat inside
```

🔧 <kbd>EDGE01</kbd>: Создание правил трансляции

```
ip access-list extended NAT_SELECTOR
  permit ip 10.0.0.0 0.255.255.255 any
!
route-map RM-WAN1 permit 10
  match interface Gi0/0
  match ip address NAT_SELECTOR
!
route-map RM-WAN2 permit 10
  match interface Gi0/1
  match ip address NAT_SELECTOR
!
ip nat inside source route-map RM-WAN1 interface GigabitEthernet0/0 overload
!
ip nat inside source route-map RM-WAN2 interface GigabitEthernet0/1 overload
```

🔎 Проверим доступ компьютеров в Интернет c <kbd>PC1</kbd> ...&#x20;

```
ping 109.71.12.84
```
