Как настроить мост OVS таким образом, чтобы запретить или фильтровать соединения между виртуальными машинами в одном VLAN?

Как ограничить передачу трафика между виртуальными машинами в одном VLAN через гипервизор с использованием OVS bridge и предотвратить доступ к локальной сети, сохраняя доступ в Интернет? Возможно ли установить фильтрацию трафика для этих виртуальных машин на OVS bridge без перехода на Linux bridge?
  • 15 июня 2024 г. 7:01
Ответы на вопрос 2
Для настройки моста OVS таким образом, чтобы запретить или фильтровать соединения между виртуальными машинами в одном VLAN, можно использовать функционал Open vSwitch (OVS) для настройки правил фильтрации трафика.

1. Создайте OVS мост с помощью команды:
```
sudo ovs-vsctl add-br <bridge_name>
```

2. Добавьте виртуальные интерфейсы в OVS мост с помощью команды:
```
sudo ovs-vsctl add-port <bridge_name> <port_name>
```

3. Установите правила фильтрации трафика с помощью команды:
```
sudo ovs-ofctl add-flow <bridge_name> <flow_rule>
```

Для ограничения передачи трафика между виртуальными машинами в одном VLAN и предотвращения доступа к локальной сети, можно установить правила фильтрации, которые будут блокировать трафик между виртуальными машинами внутри VLAN. Таким образом, они сохранят доступ в Интернет.

Для установки фильтрации трафика для виртуальных машин на OVS мосте, вы можете использовать команду `ovs-ofctl add-flow`, чтобы добавлять правила фильтрации соответственно вашим требованиям.

Пример команды для добавления правила, которое блокирует трафик между виртуальными машинами в одном VLAN:
```
sudo ovs-ofctl add-flow <bridge_name> priority=100,dl_type=0x0800,actions=drop
```

Обратите внимание, что перед тем как применять правила фильтрации, необходимо убедиться, что они соответствуют вашим требованиям и что необходимая часть трафика (например, трафик в Интернет) не будет заблокирована.

Эти действия позволят ограничить передачу трафика между виртуальными машинами в одном VLAN через гипервизор с использованием OVS bridge, сохраняя доступ в Интернет, и не требуя перехода на Linux bridge.
Да, ovs умеет в acl, называются они в нем flow, пример у меня получился такой: 

ovs-ofctl add-flow ovs-br "cookie=0x00, table=0, in_port=eth0, action=normal"
ovs-ofctl add-flow ovs-br "cookie=0x01, table=0, in_port=ovs-br, action=normal"

ovs-ofctl add-flow ovs-br "cookie=0x08, table=0, icmp6, ipv6_src=fe80::/64, ipv6_dst=ff02::/96, action=normal"
ovs-ofctl add-flow ovs-br "cookie=0x09, table=0, arp, action=normal"

ovs-ofctl add-flow ovs-br "cookie=0x10, table=0, ip, nw_src=<ipv4 subnet>, nw_dst=<ipv4 subnet>, actions=drop"
ovs-ofctl add-flow ovs-br "cookie=0x11, table=0, ip, nw_src=<ipv4 subnet>, actions=normal"

ovs-ofctl add-flow ovs-br "cookie=0x12, table=0, ipv6, ipv6_src=<ipv6 subnet>, ipv6_dst=<ipv6 subnet>, action=drop"
ovs-ofctl add-flow ovs-br "cookie=0x13, table=0, ipv6_src=<ipv6 subnet>, ipv6, action=normal"
Похожие вопросы