# 2024 Модуль Б: 3. Настройка коммутации

**Задание:**

3\. Настройка коммутации

* a) В качестве коммутаторов используются SW-HQ и SW-BR.
* b) В обоих офисах серверы должны находиться во vlan100, клиенты – во vlan200, management подсеть – во vlan300.
* c) Создайте management интерфейсы на коммутаторах.
* d) Для каждого vlan рассчитайте подсети, выданные для офисов.Количество хостов в каждой подсети не должно превышать 30-ти.

#### Выполнение:

**SW-HQ:**

* назначив средствами **iproute2** временно на интерфейс,смотрящий в сторону **RTR-HQ** - тегированный подинтерфейс с IP-адресом из подсети для **vlan300,** для возможности установки пакета **openvswitch**:

```
ip link add link ens33 name ens33.300 type vlan id 300
ip link set dev ens33.300 up
ip addr add 10.0.10.66/27 dev ens33.300
ip route add 0.0.0.0/0 via 10.0.10.65
echo nameserver 77.88.8.8 > /etc/resolv.conf
```

* обновляем список пакетов и устанавливаем **openvswitch**:

```
apt-get update && apt-get install -y openvswitch
```

* включаем и добавляем в автозагрузку **openvswitch**:

```
systemctl enable --now openvswitch
```

Имеем следующие интерфейсы:

* ens33 - в сторону RTR-HQ;
* ens34 - vlan100;
* ens35 - vlan200;
* ens36 - vlan100;

Сетевая подсистема **etcnet** будет взаимодействовать с **openvswitch**, поэтому в директоии **/etc/net/ifaces/** создаём следующую структуру каталагов:

* создаём каталоги для физических интерфейсов **ens34**, **ens35** и **ens36**:

```
mkdir /etc/net/ifaces/ens3{4,5,6}
```

* создаём также каталог для мостового интерфейса с именем **ovs0**:

```
mkdir /etc/net/ifaces/ovs0
```

* создаём каталог для management интерфейса с именем **mgmt**:

```
mkdir /etc/net/ifaces/mgmt
```

![](https://sysahelper.ru/pluginfile.php/220/mod_page/content/3/image%20%289%29.png)

Описываем файлы **options** для каждого интерфейса:

* правим основной файл **options** в котором по умолчанию сказано - удалять настройки заданые через **ovs-vsctl,** т.к. через **etcnet** будет выполнено только создание **bridge** и интерфейса типа **internal** с назначением необходимого IP-адреса, а настройка функционала будет выполнена средствами **openvswitch**:

```
sed -i "s/OVS_REMOVE=yes/OVS_REMOVE=no/g" /etc/net/ifaces/default/options
```

* описываем файл **options** для создания моста с именем **ovs0**:

```
vim /etc/net/ifaces/ovs0/options
```

![](https://sysahelper.ru/pluginfile.php/220/mod_page/content/3/image%20%2810%29.png)

где:

**TYPE** - тип интерфейса (**bridge**);

**HOST** - интерфейсы которые будут добавлены в **bridge**;

* описываем файл **options** для создания management интерфейса с именем **mgmt**:

```
vim /etc/net/ifaces/mgmt/options
```

![](https://sysahelper.ru/pluginfile.php/220/mod_page/content/3/image%20%282%29.png)

где:

**TYPE** - тип интерфейса (**internal**);

**BOOTPROTO** - определяет как будут назначаться сетевые параметры (статически);

**CONFIG\_IPV4** - определяет использовать конфигурацию протокола IPv4 или нет;

**BRIDGE** - определяет к какому мосту необходимо добавить данный интерфейс;

**VID** - определяет принадлежность интерфейса к VLAN;

* файл **options** для физических интерфейсов **ens34** и **ens35** аналогичен **ens33:**
  * т.к. необходимо просто поднять эти интерфейсы:

```
for i in 4 5 6; do cp /etc/net/ifaces/ens33/options /etc/net/ifaces/ens3$i/; done
```

* назначаем IP-адрес и шлюз на созданный management интерфейс **mgmt** согласно таблеце адресации:

```
echo 10.0.10.66/27 > /etc/net/ifaces/mgmt/ipv4address
```

```
echo default via 10.0.10.65 > /etc/net/ifaces/mgmt/ipv4route
```

* перезапускаем службу **network**:

```
systemctl restart network
```

* Проверяем:

![](https://sysahelper.ru/pluginfile.php/220/mod_page/content/3/image%20%2811%29.png)

Средствами **openvswitch** настраиваем следующий функционал:

* порт **ens33** смотрящий в сторону **RTR-HQ** - делаем **trunk** и пропускаем все необходимые **VLANs**:

```
ovs-vsctl set port ens33 trunk=100,200,300
```

* порт **ens34** назначаем **тэг 100**:

```
ovs-vsctl set port ens34 tag=100
```

* порт **ens35** назначаем **тэг 200**:

```
ovs-vsctl set port ens35 tag=200
```

* порт **ens36** назначаем **тэг 100**:

```
ovs-vsctl set port ens36 tag=100
```

* включаем модуль ядра **8021q:**

```
modprobe 8021q
```

* Проверяем:

![](https://sysahelper.ru/pluginfile.php/220/mod_page/content/3/image%20%2812%29.png)

* * также проверяем доступ с **SRV-HQ** в сеть Интернет:

![](https://sysahelper.ru/pluginfile.php/220/mod_page/content/3/image%20%2813%29.png)

* &#x20;

**SW-BR:**

Аналогично **SW-HQ,** результат:

![](https://sysahelper.ru/pluginfile.php/220/mod_page/content/3/image%20%2814%29.png)

* SRV-BR:

![](https://sysahelper.ru/pluginfile.php/220/mod_page/content/3/image%20%2815%29.png)


---

# Agent Instructions: 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://seraphim.gitbook.io/volodyazetkin2024gitbook/2024-modul-b-1.-bazovaya-nastroika/2024-modul-b-3.-nastroika-kommutacii.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.
