---
title: 'Q-in-Q'
sidebar_label: 'Q-in-Q'
description: 'Как работает Q-in-Q и как его настроить'
sidebar_position: 7
---

import Formbricks from '@theme/MDXComponents/Formbricks';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { TabItemLabel } from '@selectel/docux/components';
import MoreVerticalIcon from '@selectel/docux/icons/more-vertical';

# Q-in-Q

Q-in-Q — технология, которая позволяет создать несколько изолированных сегментов внутри одного VLAN за счет добавления дополнительного тега к заголовку Ethernet-пакета.

Включить Q-in-Q можно только для приватной сети.
Настройка Q-in-Q в приватной сети нужна:

* для работы услуги Direct Connect, когда на стороне оператора настроен транковый порт;

* для настройки транкового порта в VMware ESXi на выделенном сервере с VMware;

* для использования разных VLAN-сегментов на выделенном сервере, на котором развернуты виртуальные серверы.
  В этом случае выделенный сервер объединяется в приватную сеть с виртуальным сервером при помощи [глобального роутера](/global-router/create-network/create-global-router-network.mdx).
  Тегированный трафик разных VLAN-сегментов терминируется на глобальном роутере, а затем маршрутизируется до виртуального сервера.

## Принцип работы

Все порты коммутаторов Selectel, к которым подключены выделенные серверы, настроены в режиме Access.

По умолчанию сервер-источник отправляет Ethernet-пакет без тегов.
Когда пакет приходит на порт коммутатора Selectel, к нему добавляется тег с номером VLAN приватной сети сервера.
Этот тег используется для передачи пакета внутри сети Selectel.
Перед доставкой пакета на сервер назначения тег с номером VLAN удаляется на коммутаторе, и сервер получает исходный Ethernet-пакет без тегов.

При включенном Q-in-Q вы можете передавать собственный Q-in-Q тег.
В этом случае Q-in-Q тег добавляется к заголовку Ethernet-пакета на выходе с сервера-источника и передается до сервера назначения без изменений.

Пример передачи Ethernet-пакета между двумя выделенными серверами:

![](https://423.selcdn.ru/kb/dedic-q-in-q-ethernet-header-LANG-THEME.png)

## Настроить Q-in-Q \{#configure-q-in-q}

1. [Включите Q-in-Q на порту коммутатора](#enable-q-in-q-on-switch-port).

2. [Выберите приватную подсеть](#select-private-subnet).

3. [Настройте сетевые интерфейсы на сервере](#configure-network-interfaces-on-server).

### 1. Включить Q-in-Q на порту коммутатора \{#enable-q-in-q-on-switch-port}

При включении Q-in-Q возможен кратковременный даунтайм приватной сети для серверов на выбранном VLAN.

1. [Создайте тикет](https://my.selectel.ru/tickets/create/) с запросом на включение Q-in-Q.
   В тикете укажите:

   * номера VLAN, можно посмотреть в [панели управления](https://my.selectel.ru/servers/network/networks): в верхнем меню нажмите **Продукты** → **Выделенные серверы** → **Сеть** → вкладка **VLAN** → столбец **VLAN**;

   * пулы, в которых находятся VLAN, можно посмотреть в [панели управления](https://my.selectel.ru/servers/network/networks): в верхнем меню нажмите **Продукты** → **Выделенные серверы** → **Сеть** → вкладка **VLAN** → столбец **Пул**.

2. Дождитесь ответа сотрудника Selectel о том, что Q-in-Q включен.

### 2. Выбрать приватную подсеть \{#select-private-subnet}

Выберите незанятую подсеть, IP-адреса из которой будут использоваться для настройки сетевой связности.
Подробнее в подразделе [Стандартные диапазоны приватных IP-адресов](/dedicated/networks/private-networks-and-subnets.mdx#standard-private-ip-ranges).

### 3. Настроить сетевые интерфейсы на сервере \{#configure-network-interfaces-on-server}

<Tabs queryString="configure-network-interfaces-on-server">
  <TabItem value="ubuntu" default>
    <TabItemLabel>
      Ubuntu
    </TabItemLabel>

    1. [Подключитесь к серверу по SSH](/dedicated/manage/connect-to-server.mdx#connect-via-ssh) или через [KVM-консоль](/dedicated/manage/connect-to-server.mdx#connect-via-kvm-console).

    2. Откройте конфигурационный файл утилиты `netplan` текстовым редактором `vi`:

       ```bash
       vi /etc/netplan/01-netcfg.yaml
       ```

    3. Добавьте настройки Q-in-Q для сетевого интерфейса приватной сети:

       ```yaml
       ...
           vlans:
             <eth_name>.<id>:
                   id: <id>
                   link: <eth_name>
                   mtu: 1400
                   addresses:
                       - [<ip_address>/<mask>]
       ```

       Укажите:

       * `<eth_name>` — имя сетевого интерфейса приватной сети;
       * `<id>` — тег Q-in-Q, вы можете указать число от 2 до 4094;
       * `<ip_address>` — IP-адрес из новой приватной подсети;
       * `<mask>` — маска подсети.

       <details>
         <summary>Пример конфигурационного файла утилиты netplan</summary>

         ```yaml
         network:
             version: 2
             renderer: networkd
             ethernets:
                 eth0:
                     addresses: [203.0.113.0/24]
                     gateway4: 203.0.113.1
                     nameservers:
                         addresses: [198.51.100.1,198.51.101.1]
                 eth1:
                     addresses: [192.168.0.2/24]
         ...
             vlans:
                 eth1.40:
                     id: 40
                     link: eth1
                     mtu: 1400
                     addresses:
                         - [10.0.0.15/24]
         ```
       </details>

    4. Нажмите **ESC**.

    5. Выйдите из текстового редактора `vi` с сохранением изменений:

       ```bash
       :wq
       ```

    6. Примените конфигурацию:

       ```bash
       netplan apply
       ```

    7. Опционально: перезагрузите сервер.
  </TabItem>

  <TabItem value="debian">
    <TabItemLabel>
      Debian
    </TabItemLabel>

    1. [Подключитесь к серверу по SSH](/dedicated/manage/connect-to-server.mdx#connect-via-ssh) или через [KVM-консоль](/dedicated/manage/connect-to-server.mdx#connect-via-kvm-console).

    2. Откройте конфигурационный файл сетевых интерфейсов текстовым редактором `vi`:

       ```bash
       vi /etc/network/interfaces.d/50-cloud-init
       ```

    3. Добавьте настройки Q-in-Q для сетевого интерфейса приватной сети:

       ```bash
       auto <eth_name>.<id>
       iface <eth_name>.<id> inet static
         address <ip_address>/<mask>
         vlan-raw-device <eth_name>.<id>
         mtu 1400
       ```

       Укажите:

       * `<eth_name>` — имя сетевого интерфейса приватной сети;
       * `<id>` — тег Q-in-Q, вы можете указать число от 2 до 4094;
       * `<ip_address>` – IP-адрес из новой приватной подсети;
       * `<mask>` — маска подсети.

       <details>
         <summary>Пример конфигурационного файла сетевых интерфейсов</summary>

         ```bash
         source /etc/network/interfaces.d/*
         auto lo
         iface lo inet loopback
         auto eth0
         iface eth0 inet static
           address 203.0.113.218
           netmask 255.255.255.0
           gateway 203.0.113.1
           dns-nameserver 198.51.100.1,198.51.101.1

         auto eth1
         iface eth1 inet static
           address 192.168.0.2/24

         auto eth1.40
         iface eth1.40 inet static
           address 10.0.0.15/24
           vlan-raw-device eth1.40
           mtu 1400
         ```
       </details>

    4. Нажмите **ESC**.

    5. Выйдите из текстового редактора `vi` с сохранением изменений:

       ```bash
       :wq
       ```

    6. Перезапустите сеть:

       ```bash
       service networking restart
       ```

    7. Опционально: перезагрузите сервер.
  </TabItem>

  <TabItem value="centos">
    <TabItemLabel>
      CentOS
    </TabItemLabel>

    1. [Подключитесь к серверу по SSH](/dedicated/manage/connect-to-server.mdx#connect-via-ssh) или через [KVM-консоль](/dedicated/manage/connect-to-server.mdx#connect-via-kvm-console).

    2. Выведите информацию о сетевых интерфейсах:

       ```bash
       ip address
       ```

    3. Создайте или откройте конфигурационный файл сетевого интерфейса приватной сети с Q-in-Q текстовым редактором `vi`:

       ```bash
       vi /etc/sysconfig/network-scripts/ifcfg-<eth_name>
       ```

       Укажите `<eth_name>` – имя сетесетевого интерфейса приватной сети с Q-in-Q.

    4. Добавьте настройки сетевого интерфейса:

       ```bash
       NAME="<q_in_q_eth_name>"
       ONBOOT=yes
       TYPE=Ethernet
       VLAN=yes
       DEVICE=<basic_eth_name>.<id>
       BOOTPROTO=static
       IPADDR=<ip_address>
       NETMASK=<mask>
       NM_CONTROLLED=no
       ```

       Укажите:

       * `<q_in_q_eth_name>` — имя нового сетевого интерфейса;
       * `<basic_eth_name>` – физический интерфейс приватной сети, к которому привязан VLAN;
       * `<id>` — тег Q-in-Q, вы можете указать число от 2 до 4094;
       * `<ip_address>` – IP-адрес из новой приватной подсети;
       * `<mask>` – маска подсети.

       <details>
         <summary>Пример файла конфигурации для сетевого интерфейса</summary>

         ```bash
         NAME="vlan40"
         ONBOOT=yes
         TYPE=Ethernet
         VLAN=yes
         DEVICE=eth1.40
         BOOTPROTO=static
         IPADDR=10.10.10.10
         NETMASK=255.255.255.0
         NM_CONTROLLED=no
         ```
       </details>

    5. Нажмите **ESC**.

    6. Выйдите из текстового редактора `vi` с сохранением изменений:

       ```bash
       :wq
       ```

    7. Перезапустите сеть:

       ```bash
       systemctl restart network
       ```

    8. Опционально: перезагрузите сервер.
  </TabItem>

  <TabItem value="windows">
    <TabItemLabel>
      Windows
    </TabItemLabel>

    1. [Подключитесь к серверу по RDP](/dedicated/manage/connect-to-server.mdx#connect-via-rdp) или через [KVM-консоль](/dedicated/manage/connect-to-server.mdx#connect-via-kvm-console).

    2. Запустите **Server Manager Local**.

    3. Перейдите в раздел **Local Server**.

    4. Нажмите **NIC Teaming**.

    5. В блоке **Teams** нажмите **Task** → **New Team**.

    6. В поле **Team name** введите имя группы.

    7. Отметьте сетевые адаптеры, которые нужно добавить в группу.

    8. Нажмите **OK**.

    9. В блоке **Adapter and Interfaces** нажмите **Tasks** → **Add Interface**.

    10. В поле **Interface name** введите имя нового сетевого интерфейса.

    11. В поле **Specific VLAN** введите тег Q-in-Q, вы можете указать число от 2 до 4094.

    12. Нажмите **OK**.

    13. Откройте **Network and Sharing Center**.

    14. Откройте сетевой интерфейс новой приватной сети.

    15. Нажмите **Properties**.

    16. Выберите **IPv4**.

    17. Нажмите **Properties**.

    18. В поле **IP-address** введите приватный IP-адрес сервера, например `192.168.0.2`.

    19. В поле **Subnet mask** введите маску подсети.

    20. Нажмите **OK**.
  </TabItem>
</Tabs>

<Formbricks />
