> For the complete documentation index, see [llms.txt](https://1ops.gitbook.io/learn-vxlan.1ops.uz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://1ops.gitbook.io/learn-vxlan.1ops.uz/postroenie-fabriki-vxlan-evpn-s-ispolzovaniem-infrastructure-as-a-code-podkhoda/chast-1.-proektirovanie-adresnogo-prostranstva.md).

# Часть 1. Проектирование адресного пространства

### Цель

* Собрать схему CLOS;
* Распределить адресное пространство.

### Нейминг план

Предполагаем, что перед нами следующие вводные:

* Датацентры расположены в нескольких странах:
  * Новая Зелландия (NZ)
    * Окленд
    * Веллингтон
  * Норвегия (NO)
    * Осло
    * Тёнсберг
  * Бразилия (BR)
    * Рио-де-Жанейро
    * Сан-Паулу

Следовательно, формат имени будет следующим: (CC)-(CITY)-(DC)-(SITE)-(ROW)(RACK)-(ROLE)(ID)

* (CC): Код страны (например, NZ для Новой Зеландии, NO для Норвегии, BR для Бразилии).
* (CITY): Код города (например, AKL для Окленда, WLG для Веллингтона, OSL для Осло, TBG для Тёнсберга, RIO для Рио-де-Жанейро, SPO для Сан-Паулу).
* (DC): Идентификатор дата-центра в данном городе (например, DC1, DC2).
* (SITE): Дополнительная информация о локации внутри ЦОД (этаж, зона).
* (ROW)(RACK): Ряд и стойка.
* (ROLE): Роль устройства (например, SPN для Spine-коммутатора, LF для Leaf-коммутатора).
* (ID): Уникальный номер устройства в своей роли.
  1. NZ-AKL-DC1-F1-R12K34-SPN01
  2. NZ: Новая Зеландия.
  3. AKL: Окленд.
  4. DC1: Дата-центр 1 в Окленде.
  5. F1: Этаж 1.
  6. R12K34: Ряд 12, стойка 34.
  7. SPN01: Spine-коммутатор номер 01.
  8. NZ-WLG-DC2-ZB-R08K20-LF02
  9. NZ: Новая Зеландия.
  10. WLG: Веллингтон.
  11. DC2: Дата-центр 2 в Веллингтоне.
  12. ZB: Зона B.
  13. R08K20: Ряд 8, стойка 20.
  14. LF02: Leaf-коммутатор номер 02.
  15. NO-OSL-DC1-F3-R05K15-SPN02
  16. NO: Норвегия.
  17. OSL: Осло.
  18. DC1: Дата-центр 1 в Осло.
  19. F3: Этаж 3.
  20. R05K15: Ряд 5, стойка 15.
  21. SPN02: Spine-коммутатор номер 02.

4. NO-TBG-DC2-F2-R10K05-LF04
   * NO: Норвегия.
   * TBG: Тёнсберг.
   * DC2: Дата-центр 2 в Тёнсберге.
   * F2: Этаж 2.
   * R10K05: Ряд 10, стойка 5.
   * LF04: Leaf-коммутатор номер 04.
5. BR-RIO-DC1-ZA-R07K22-LF03

* BR: Бразилия.
* RIO: Рио-де-Жанейро.
* DC1: Дата-центр 1 в Рио-де-Жанейро.
* ZA: Зона A.
* R07K22: Ряд 7, стойка 22.
* LF03: Leaf-коммутатор номер 03.

6. BR-SPO-DC3-F1-R02K12-SPN01

* BR: Бразилия.
* SPO: Сан-Паулу.
* DC3: Дата-центр 3 в Сан-Паулу.
* F1: Этаж 1.
* R02K12: Ряд 2, стойка 12.
* SPN01: Spine-коммутатор номер 01.

### Адресный план для IPv4

За основу берется сеть 10.0.0.0/8

1. **Распределение по странам**

| **Страна**    | **Код страны** | **Подсеть /12**                                  |
| ------------- | -------------- | ------------------------------------------------ |
| Нова Зеландия | NZ             | 10.0.0.0/12                                      |
| Норвегия      | NO             | 10.16.0.0/12                                     |
| Бразилия      | BR             | 10.32.0.0/12                                     |
| Резерв        | -              | 10.48.0.0/12 - 10.240.0.0/12 (для будущих стран) |

2. **Распределение сети по городам внутри страны**

***Новая Зеландия (NZ)***

| **Город**  | **Код города** | **Подсеть /16**                                  |
| ---------- | -------------- | ------------------------------------------------ |
| Окленд     | AKL            | 10.0.0.0/16                                      |
| Веллингтон | WLG            | 10.1.0.0/16                                      |
| Резерв     | -              | 10.2.0.0/16 - 10.15.0.0/16 (для будущих городов) |

***Норвегия (NO)***

| **Город** | **Код города** | **Подсеть /16**                                   |
| --------- | -------------- | ------------------------------------------------- |
| Осло      | OSL            | 10.16.0.0/16                                      |
| Тёнсберг  | TBG            | 10.17.0.0/16                                      |
| Резерв    | -              | 10.18.0.0/16 - 10.31.0.0/16 (для будущих городов) |

***Бразилия (BR)***

| **Город**      | **Код города** | **Подсеть /16**                                   |
| -------------- | -------------- | ------------------------------------------------- |
| Рио-де-Жанейру | RIO            | 10.32.0.0/16                                      |
| Сан-Паулу      | SPO            | 10.33.0.0/16                                      |
| Резерв         | -              | 10.34.0.0/16 - 10.47.0.0/16 (для будущих городов) |

3. **Распределение сети по дата-центрам внутри городов**

Норвегия. Осло

| **ДЦ**     | **Код ДЦ** | **Подсеть /20** |
| ---------- | ---------- | --------------- |
| "Мидгард"  | DC1        | 10.16.0.0/20    |
| "Альвхейм" | DC2        | 10.16.16.0/20   |
| "Асгард"   | DC3        | 10.16.32.0/20   |
| "Ванахейм" | DC4        | 10.16.64.0/20   |

Детализация адресного плана внутри ДЦ Осло (OSL) - DC1 (10.16.0.0/20)

| **Назначение**               | **Подсеть**                  |
| ---------------------------- | ---------------------------- |
| Loopback адреса уровня Spine | 10.16.0.0/24                 |
| Loopback адреса уровня Leaf  | 10.16.1.0./24                |
| Point-to-Point соединения    | 10.16.2.0/23                 |
| VTEP адреса                  | 10.16.4.0/24                 |
| Резерв                       | 10.16.5.0/24 - 10.16.15.0/24 |

Относительно полная картина распределения сетей:

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FSa8WYTWgn4nUpVlfVyJC%2Fimage.png?alt=media&amp;token=10f062b9-ce51-4451-8c9c-f24c2f7d4422" alt=""><figcaption><p>Распределение в Excel</p></figcaption></figure>

Принимаем за правило вести адреса в IPAM. В моем случае используется Netbox.  Как его установить можно взять вот тут <https://netboxlabs.com/docs/netbox/en/stable/installation/> Заполняем Netbox префиксами и получаем следующую картину:

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2F7jWjey2yCsEbb1BzgHzl%2Fimage.png?alt=media&amp;token=e96c5da5-1a38-4303-9236-e83e20c31439" alt=""><figcaption></figcaption></figure>

#### Адресный план в пределах одного ДЦ с устройствами

| Устройство | Имя устройства             | IP-адрес     |
| ---------- | -------------------------- | ------------ |
| Spine      | no-osl-dc1-f1-r01k01-spn01 | 10.16.0.1/32 |
| Spine      | no-osl-dc1-f1-r02k01-spn01 | 10.16.0.2/32 |
| Leaf       | no-osl-dc1-f1-r03k01-lf01  | 10.16.1.1/32 |
| Leaf       | no-osl-dc1-f1-r03k02-lf01  | 10.16.1.2/32 |
| Leaf       | no-osl-dc1-f1-r03k03-lf01  | 10.16.1.3/32 |

| Соединение                                               | Подсеть       | Устройство A               | Интерфейс | IP A       | Устройство B              | Интерфейс | IP B       |
| -------------------------------------------------------- | ------------- | -------------------------- | --------- | ---------- | ------------------------- | --------- | ---------- |
| no-osl-dc1-f1-r01k01-spn01 <-> no-osl-dc1-f1-r03k01-lf01 | 10.16.2.0/31  | no-osl-dc1-f1-r01k01-spn01 |           | 10.16.2.0  | no-osl-dc1-f1-r03k01-lf01 |           | 10.16.2.1  |
| no-osl-dc1-f1-r01k01-spn01 <-> no-osl-dc1-f1-r03k02-lf01 | 10.16.2.2/31  | no-osl-dc1-f1-r01k01-spn01 |           | 10.16.2.2  | no-osl-dc1-f1-r03k02-lf01 |           | 10.16.2.3  |
| no-osl-dc1-f1-r01k01-spn01 <-> no-osl-dc1-f1-r03k03-lf01 | 10.16.2.4/31  | no-osl-dc1-f1-r01k01-spn01 |           | 10.16.2.4  | no-osl-dc1-f1-r03k03-lf01 |           | 10.16.2.5  |
| no-osl-dc1-f1-r02k01-spn01 <-> no-osl-dc1-f1-r03k01-lf01 | 10.16.2.6/31  | no-osl-dc1-f1-r02k01-spn01 |           | 10.16.2.6  | no-osl-dc1-f1-r03k01-lf01 |           | 10.16.2.7  |
| no-osl-dc1-f1-r02k01-spn01 <-> no-osl-dc1-f1-r03k02-lf01 | 10.16.2.8/31  | no-osl-dc1-f1-r02k01-spn01 |           | 10.16.2.8  | no-osl-dc1-f1-r03k02-lf01 |           | 10.16.2.9  |
| no-osl-dc1-f1-r02k01-spn01 <-> no-osl-dc1-f1-r03k03-lf01 | 10.16.2.10/31 | no-osl-dc1-f1-r02k01-spn01 |           | 10.16.2.10 | no-osl-dc1-f1-r03k03-lf01 |           | 10.16.2.11 |

#### Итоговый результат

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FL9YzfZa1hWxeh3rFQWeh%2Fimage.png?alt=media&amp;token=6138262d-a53b-478e-b46f-e30f8f53371b" alt=""><figcaption></figcaption></figure>

Более подробный расчет можно посмотреть во вложенном файле:

{% file src="/files/j6f1gGvSs2Q0NgoD0Xqo" %}
