Назад | Перейти на главную страницу

Доступ к хосту через две разные сетевые карты

У меня есть серверный блок Ubuntu 18.04 с двумя сетевыми адаптерами, каждый в своей сети, оба соединены мостом:

br0 (eno1): 192.168.18.5 / 24 br1 (eno2): 192.168.40.5 / 24

Шлюз по умолчанию настроен как 192.168.18.1 через br0.

У меня на этом сервере запущены контейнеры lxc, подключенные к br1 (192.168.40.0/24), к которым нужно получить доступ извне. Но когда я пытаюсь использовать ssh, у меня возникает тайм-аут.

Я могу использовать ssh на хост-машине или в контейнерах lxc, прикрепленных к br0 (192.168.18.0/24) интерфейс.

Это мой текущий файл конфигурации netplan:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false
    eno2:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces:
      - eno1
      dhcp4: false
      dhcp6: false
      addresses:
      - 192.168.18.5/24
      gateway4: 192.168.18.1
      nameservers:
        addresses:
         - 9.9.9.9
         - 8.8.8.8
    br1:
      interfaces:
      - eno2
      dhcp4: false
      dhcp6: false
      addresses:
      - 192.168.40.5/24

Если я вручную создам эти правила и маршрут, то все заработает:

echo 200 custom >> /etc/iproute2/rt_tables
ip rule add from 192.168.40.5/24 table custom  # this is the host on br1
ip rule add from 192.168.40.6/24 table custom  # this is a lxc container on br1
ip route add default via 192.168.40.1 table custom

Затем я могу использовать ssh в 192.168.40.5 (хост-компьютер) и в 192.168.40.6 (контейнер lxc).

Но как я могу сделать это внутри конфигурации netplan?

Большое спасибо.