Понять различия между двумя сетевыми конфигурациями для MAAS

Понять различия между двумя сетевыми конфигурациями для MAAS

Я пытаюсь понять разницу между двумя сетевыми конфигурациями для MAAS. Насколько я понимаю, обе выполняют одни и те же задачи, где первая сеть подключается к Интернету, а вторая управляется MAAS. Затем вторая сеть настраивается на пересылку трафика через публичный сетевой интерфейс.

Несмотря на достижение тех же результатов, конфигурация выглядит несколько иначе, и в этом заключается мое замешательство.

Первая конфигурация

Первая предлагаемая конфигурация исходит из следующего:Wiki-страница Cloudbase SolutionsОни предлагают простой /etc/network/interfacesспособ eth0подключения к внешней сети, eth1перехода во внутреннюю сеть и получения статического адреса:

# The primary network interface (external)
auto eth0
iface eth0 inet dhcp

# The secondary NIC (used internal for MAAS)
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

Соответствующие iptablesправила затем сохраняются в /etc/rc.local. Насколько я могу судить, это как-то связано с пересылкой сетевого трафика между eth1и eth0.

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Вторая конфигурация

Вторая конфигурация исходит изРуководство по установке Ubuntu Openstack для Multi Installer. Их /etc/network/interfacesфайл имеет больше сетевых интерфейсов, но похож на предыдущую конфигурацию, где eth0подключается к внешней сети и eth1является внутренним:

# The loopback network interface
auto lo
iface lo inet loopback
  dns-nameservers 127.0.0.1
  pre-up iptables-restore < /etc/network/iptables.rules

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet manual

auto br0
iface br0 inet static
  address 172.16.0.1
  netmask 255.255.255.0
  bridge_ports eth1

Вопросы, которые приходят мне в голову на этом этапе, почему у есть loDNS Name Server и iptablesприменяется к нему? Почему в этом случае используется мостовое соединение?

Их iptableправила также выглядят по-разному и размещаются в /etc/network/iptables.rulesпредположении, что это позволяет пересылать трафик:

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 172.16.0.1/24 ! -d 172.16.0.1/24 -j MASQUERADE
COMMIT

Краткое содержание

Может ли кто-нибудь объяснить, что они делают по-другому и почему?

Дайте мне знать, если этот вопрос слишком большой, и я смогу разбить его на отдельные вопросы, но изначально я думал, что это даст больше контекста.

решение1

Обе конфигурации практически одинаковы, за исключением некоторых нюансов.

iface lo inet loopback
  dns-nameservers 127.0.0.1
  pre-up iptables-restore < /etc/network/iptables.rules

Такая конфигурация гарантирует, что даже если ваш кабель eth0 отключен во время загрузки, у вас все равно будут установлены правила DNS-резолвера и брандмауэра (сложно избавиться от сетевого устройства loopback, не так ли?). Конечно, этот пример предполагает, что у вас будет запущена служба DNS-резолвера локально.

Я не вижу никаких проблем с настройкой мостового устройства. Эта конфигурация должна работать без проблем, но не думаю, что она вам нужна в вашем случае, если только вы не планируете что-то, что будет ее использовать (виртуальные машины KVM, например).

В первом случае правила iptables пишутся для скрипта оболочки, поэтому их синтаксис отличается от /etc/network/iptables.rules, который следует использовать с iptables-restore.

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 172.16.0.1/24 ! -d 172.16.0.1/24 -j MASQUERADE
COMMIT

Здесь есть только одно правило, и оно позволяет маскировать подсеть 172.16.0.0/24.

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Правила выше позволяютлюбойподсеть, идущая от eth1 до eth0, будет маскироваться с использованием некоторой фильтрации.

Лично я бы предпочел использовать комбинацию из вышеперечисленных конфигураций.

решение2

Первая конфигурация сети довольно понятна. Файл /etc/network/interfaces знаком всем и, конечно, IP-переадресация через iptables необходима при использовании MAAS, чтобы предоставить интернет узлам, которые управляются MAAS.

Вторая конфигурация, отличная от DNS-части и части br0, понятна. DNS-часть фактически заставляет сервер MAAS осознать, что он сам размещает DNS-сервисы. Эта строка может быть перемещена в /etc/resolve.conf, который включает другие конфигурации DNS. Если эта запись DNS не сделана, вы получите эту ошибку во время загрузки JUJU:https://github.com/Ubuntu-Solutions-Engineering/openstack-installer/issues/901

Однако я не совсем уверен насчет моста br0. Эта сетевая конфигурация действительно работала?

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