Перейти к содержанию

Сетевые интерфейсы и правила доступа

Статья описывает операции с сетевыми ресурсами, доступные Администратору ВЦОД после настройки базовой инфраструктуры Администратором кластера.

Основные операции управления сетями:

  1. VXLAN-подсети. Создание и управление IP-сегментами в overlay-сетях.
  2. Сетевые интерфейсы. Просмотр и изменение параметров интерфейсов ВМ.
  3. Статические IP-адреса. Резервирование фиксированных адресов.
  4. Правила доступа (ACL). Настройка политик безопасности для сетей и портов ВМ.

Примечание

Базовая настройка сетевой инфраструктуры должна быть выполнена Администратором кластера в соответствии с Руководством администратора


VXLAN-подсети

VXLAN-подсеть — это IP-сегмент внутри VXLAN-сети, который предоставляет услуги маршрутизации для виртуальных машин.

Особенности VXLAN-подсетей:

  • каждая подсеть создается внутри родительской VXLAN-сети и наследует ее ВЦОД;
  • при создании подсети автоматически назначается VID из диапазона vxlan_vid_range;
  • не поддерживают применение правил списков контроля доступа.

Действия с VXLAN-подсетями:

  1. Чтобы создать VXLAN-подсеть, введите в командной строке

    ipam vxlan subnet add --name <NAME>
                          --vxlan_uuid <VXLAN_UUID>
                          --network <NETWORK>
                          --ip_first <IP_FIRST>
                          --ip_last <IP_LAST>
                          [--gateway <GATEWAY>]
                          [--dns_1 <DNS_1>]
                          [--dns_2 <DNS_2>]
                          [--desc <DESC>]
    

    где

    • name — имя подсети;
    • vxlan_uuid — идентификатор родительской VXLAN-сети;
    • network — IP-адрес подсети в формате CIDR;
    • ip_first — начало диапазона DHCP IP-адресов;
    • ip_last — конец диапазона DHCP IP-адресов;
    • gateway — адрес шлюза по умолчанию;
    • dns_1 — первичный адрес DNS-сервера;
    • dns_2 — вторичный адрес DNS-сервера;
    • desc — описание VXLAN-подсети.
    Пример
    ipam vxlan subnet add --name vx-sub-1 
                          --vxlan_uuid <UUID parent VXLAN> 
                          --network 10.1.2.0/24 
                          --gateway 10.1.2.1 
                          --ip_first 10.1.2.2 
                          --ip_last 10.1.2.254
    
  2. Просмотреть список подсетей

    ipam vxlan subnet list [--vxlan_uuid <VXLAN_UUID>]
    

    Из текущего ВЦОД видны только подсети, находящиеся в нем. При указании vxlan_uuid отобразятся подсети конкретной VXLAN-сети.

  3. Просмотреть подробную информацию о VXLAN-подсети

    ipam vxlan subnet show --subnet_uuid <SUBNET_UUID>
    

    где subnet_uuid— идентификатор VXLAN-подсети.

  4. Просмотреть интерфейсы ВМ в VXLAN-подсети

    ipam iface list --net_uuid <SUBNET_UUID>
    

    где net_uuid— идентификатор VXLAN-подсети.

  5. Удалить VXLAN-подсеть

    Внимание

    Нельзя удалить VXLAN-подсеть, если в ней есть интерфейсы ВМ

    ipam vxlan subnet del --subnet_uuid <SUBNET_UUID>
    

    где subnet_uuid— идентификатор VXLAN-подсети.


Сетевые интерфейсы

Sharx Base автоматически управляет сетевыми интерфейсами:

  • При создании ВМ в VXLAN-подсети система автоматически создает сетевой интерфейс.
  • Для каждого интерфейса генерируются уникальные MAC и IP-адреса.
  • При удалении ВМ все связанные сетевые интерфейсы освобождаются автоматически.
  • Освобожденные IP-адреса могут быть назначены новым ВМ.

Также сетевыми интерфейсами можно управлять вручную.

  1. Посмотреть список сетевых интерфейсов

    ipam iface list [--net_uuid <NET_UUID>]
                    [--vxlan_uuid <VXLAN_UUID>]
                    [--show_acl <SHOW_ACL>]
    

    где

    • net_uuid — идентификатор сети. Обязателен;
    • vxlan_uuid— идентификатор VXLAN. Обязателен;

      Примечание

      Для выполнения команды необходимо указать один из параметров: net_uuid или vxlan_uuid

    • show_acl — показать правила списков контроля доступа для каждого интерфейса. Возможные значения:

      • y — да;
      • n — нет.
  2. Обновить IP-адрес сетевого интерфейса виртуальной машины

    ipam iface update --iface_id <IFACE_ID>
                      --ip_address <IP_ADDRESS>
    

    где

    • iface_id — идентификатор сетевого интерфейса, который нужно изменить;
    • ip_address— новый IP-адрес для указанного сетевого интерфейса.

Статические IP-адреса

  1. Чтобы создать статический IP-адрес, введите

    ipam addr virtual add --ip <IP> 
                          --net_uuid <NET_UUID>
    

    где

    • ip — новый виртуальный IP-адрес для указанной сети;
    • net_uuid— идентификатор сети.
  2. Посмотреть список созданных адресов

    ipam addr virtual list --net_uuid <NET_UUID>
    

  3. Удалить статический IP-адрес

    ipam addr virtual del --ip <IP> 
                          --net_uuid <NET_UUID>
    


Правила доступа

Списки контроля доступа ACL можно применять как к конкретному порту ВМ, так и на всю виртуальную локальную сеть.

Примечание

Добавляйте ACL с помощью файла YAML, так как часто возникают ошибки при внесении данных

Правила доступа для порта ВМ

Важно

Сначала загружайте ACL с разрешениями, затем с запретом. Неправильный порядок загрузки ACL приводит к блокировке трафика ВМ.
ACL работают только для VLAN

  1. Пример для настройки ACL для ВМ acl_vm.yaml.

    Файл описывает ACL allow-rules. Перечень списков контроля доступа включает:

    • разрешение доступа к репозиторию 10.2.2.11;
    • TCP-трафик до ya.ru;
    • TCP-трафик до конкретного адреса или с конкретного адреса.
  2. ACL для блокировки остального вида трафика содержатся в файле deny_all.yaml.

  3. Загрузите файл на Платформу.

    Чтобы загрузить файлы в Sharx Base, введите команду

    resource --spec <path_to_yaml_file>
    
    где spec — расположение YAML-файла.

    При локальном расположении на АРМ пользователя введите путь до файла.

    При расположении в стороннем репозитории укажите ссылку на данный файл.

  4. Чтобы посмотреть список всех созданных ACL, введите

    ipam acl list
    

  5. Посмотреть подробную информацию о конкретном списке контроля доступа

    ipam acl show --name <NAME>
    

    где name — имя списка контроля доступа.

  6. Обновить список контроля доступа

    ipam acl update --name <NAME> 
                    --data <DATA>
    

    где data — обновленный перечень правил, входящих в файл acl.

  7. Добавить списки контроля доступа для сетевого интерфейса

    ipam iface acls add --acls <[ACLS ...]>
                        --mac <MAC> 
                        --net_uuid <NET_UUID>
    

    где

    • acls — перечень имен списков контроля доступа для указанной сети;
    • mac — MAC-адрес сетевого интерфейса;
    • net_uuid— идентификатор сети.
  8. Удалить список контроля доступа с порта ВМ можно командой

    ipam iface acls del --acls <[ACLS ...]> 
                        --mac <MAC>
                        --net_uuid <NET_UUID>
    


Списки контроля доступа ACL для виртуальной локальной сети

Важно

Сначала загружайте ACL с разрешениями, затем с запретом. Неправильный порядок загрузки ACL приводит к блокировке трафика ВМ.
ACL работают только для VLAN

  1. Пример для настройки ACL для виртуальной сети aclvlan.yaml.

    Файл описывает ACL allow-rules. Они совпадают с ACL для порта ВМ, но в aclvlan.yaml заданы списки контроля доступа для черных списков, а для порта ВМ — только для белых.

    В перечень ACL входит:

    • разрешение доступа к репозиторию 10.2.2.11;
    • TCP-трафик до ya.ru;
    • TCP-трафик до конкретного адреса или с конкретного адреса;
    • ACL для черных списков.
  2. Списки контроля доступа для блокировки остального вида трафика содержатся в файле denyall.yaml.

  3. Загрузите файл на Платформу.

    Чтобы загрузить файлы в Sharx Base, введите команду

    resource --spec <path_to_yaml_file>
    
    где spec — расположение YAML-файла.

    При локальном расположении на АРМ пользователя введите путь до файла.

    При расположении в стороннем репозитории укажите ссылку на данный файл.

  4. Чтобы добавить ACL к виртуальной сети, введите

    ipam network acls add --acls <[ACLS ...]> 
                          --net_uuid <NET_UUID>
    

    где

    • acls — перечень имен списков контроля доступа для указанной сети;
    • net_uuid— идентификатор сети.
  5. Удалить списки контроля доступа у виртуальной сети

    ipam network acls del --acls <[ACLS ...]> 
                          --net_uuid <NET_UUID>
    

  6. Удалить списки контроля доступа с кластера Sharx Base

    ipam acl del --name <NAME>
    

    где name — имя списка контроля доступа.


Перечень дополнительных списков контроля доступа ACL

  1. ACL, позволяющий использовать ICMP

    allow-ping:
      - rule:
          # Разрешить ICMP (ip protocol number 1)
          eth_type: 0x800      
          ip_proto: 1          
          actions:
            allow: True
      - rule:
          # Блокировать весь остальной трафик
          eth_type: 0x800      
          actions:
            allow: False
    

  2. ACL с блокировкой ICMP по критерию запрос/ответ

    block-icmp-by-type:
      - rule:
          # Блокировать ICMP Echo Reply
          eth_type: 0x800      
          ip_proto: 1
          icmpv4_type: 0
          actions:
            allow: False
      - rule:
          # Блокировать ICMP Echo Request
          eth_type: 0x800      
          ip_proto: 1
          icmpv4_type: 8
          actions:
            allow: False
    

  3. ACL для защиты от спуфинга (antispoofing)

    antispoof_acl:
      - rule:
          # Разрешить ARP с IP-адресом ВМ (IP antispoofing)
          dl_type: 0x806
          arp_spa: $VM_interface_IP
          actions:
            allow: True
      - rule:
          # Разрешить ARP с MAC-адресом ВМ (MAC antispoofing)
          dl_type: 0x806
          arp_sha: $VM_interface_MAC
          actions:
            allow: True
      - rule:
          # Блокировать все остальные ARP-пакеты
          dl_type: 0x806
          actions:
            allow: False
    

  4. ACL для разрешения всего трафика

    permit_all_acl:
      - rule:
         # Разрешить весь трафик
         actions:
           allow: True
    


Термины и определения содержатся в статьях: