Netplan, два шлюза для двух подсетей

Netplan, два шлюза для двух подсетей

Я пытаюсь сделать следующее:

Имеем 2 подсети (т. е. 192.168.15.0/24 и 192.168.19.0/24) и два шлюза (192.168.105.1/24, 192.168.109.1/24), а также сервер Ubuntu 18.04 с netplan в качестве маршрутизатора (.1/24 в подсетях, .2/24 в подсетях шлюза). Цель состоит в том, чтобы использовать один шлюз для одной подсети и другой шлюз для второй подсети. Даже если я использую маршрутизацию на основе источника, как в документации netplan, в итоге получается два шлюза (случайный порядок), и только одна подсеть может получить доступ к Интернету.

Пожалуйста, как мне это сделать?

Спасибо

правка: - добавлены настройки

при этой настройке работает из 192.168.105.xx в интернет, но ничего из 192.168.109.xx.

И с маршрутом есть два шлюза для 0.0.0.0/0

/etc/iptables/rules.v4

# Generated by iptables-save v1.6.1 on Sat Aug 22 10:38:15 2020
*nat
:PREROUTING ACCEPT [386:180180]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:76]
:POSTROUTING ACCEPT [1:76]
-A POSTROUTING -s 192.168.15.0/24 -o br105 -j MASQUERADE
-A POSTROUTING -s 192.168.19.0/24 -o br109 -j MASQUERADE
COMMIT
# Completed on Sat Aug 22 10:38:15 2020
# Generated by iptables-save v1.6.1 on Sat Aug 22 10:38:15 2020
*filter
:INPUT ACCEPT [4:1760]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [28:2536]
-A INPUT -i br105 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i br109 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sat Aug 22 10:38:15 2020

/etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp7s0:
      dhcp4: no

    enp7s1:
      dhcp4: no

    enp1s0f0:
      dhcp4: no

    enp1s0f1:
      dhcp4: no


  bridges:
    br15:
      dhcp4: no
      interfaces: [ enp7s0 ]
      addresses: [ 192.168.15.1/24 ]

    br19:
      dhcp4: no
      interfaces: [ enp7s1 ]
      addresses: [ 192.168.19.1/24 ]

    br105:
      dhcp4: no
      interfaces: [ enp1s0f0 ]
      addresses: [ 192.168.105.2/24 ]
      nameservers:
        addresses: [ 8.8.8.8 ]
      gateway4: 192.168.105.1

    br109:
      dhcp4: no
      interfaces: [ enp1s0f1 ]
      addresses: [ 192.168.109.2/24 ]
      routes:
        - to: 0.0.0.0/0
          from: 192.168.109.2
          via: 192.168.109.1
          on-link: true

решение1

Хотя у каждой подсети есть шлюз, у каждой может быть только одинпо умолчаниюшлюз, обойти это на самом деле довольно просто — вы создаете «статический маршрут».

Поэтому вам нужно выбрать, какая подсеть будет подсетью по умолчанию, и установить ее в качестве шлюза по умолчанию (DG), затем все, что вам нужно сделать, это добавить второй IP-адрес ко второму адаптеру/VLAN, а затем просто добавить статический маршрут.

Итак, в примере снова вы имеете, скажем, NIC 1 как 192.168.15.whatever как IP, 255.255.255.0 как NM и 192.168.15.1 (или как угодно как DG, он должен быть внутри подсети, которой 192.168.105.1 не является), затем настраиваете 192.168.19.whatever на NIC 2, тот же NM, но этот не получает DG. Затем вы создаете статический маршрут, так как все в 192.168.19.0/24 должно проходить через IP, который вы назначили NIC 2, который действует как шлюз, но не шлюз по умолчанию, для этого диапазона IP и ничего больше. О, и 192.168.109.1, конечно, не входит в этот диапазон, так что это тоже неправильно.

Надеюсь, это достаточно ясно, а в остальном возвращайтесь, ок.

Связанный контент