Это решение, основанное на ответе fossfreedom на другой вопрос: Синхронизация 2 Ubuntu Systems с Unison, руководство Unison и мой ответ на другой вопрос.
Синхронизируйте компьютеры, запустив unison -auto default на компьютере, который может находиться за NAT. Это синхронизируется ~/Documents. Я делаю это до и после того, как мой ноутбук выходит из локальной сети с моим рабочим столом, чтобы синхронизировать их документы.
Вместо использования brctl напрямую, а затем возиться с отдельными конфигурациями контейнеров, используйте вместо этого lxc network create, и пусть LXD управляет этими мостами. Это делает создание мостов очень легким и не дает нам головных болей. (Это то, что я делаю в нескольких средах LXD).
Из использования:
lxc network create [<remote>:]<network> [key=value...]
Create a network.
Эффективно просто выполните lxc network create lxcbr1 или все, что вы хотите назвать.
Проблема в том, что вы должны указать это где-то. Я лично использую профили конфигурации для этого, особенно если мне приходится связываться с несколькими мостами.
Теперь, действительно У меня есть отдельные профили для отдельных мостов, и не ставьте два на тот же самый ящик, но в вашем случае у вас будет два определения моста LXD. Итак, нам нужно создать для них конфигурационный профиль.
Если вам нужно несколько мостов на контейнере одновременно ...
Start путем копирования конфигурации default в конфигурацию multibridge:
lxc profile copy default multibridge
После этого нам нужно отредактировать новый файл multibridge, чтобы он имел несколько сетевых устройств.
lxc profile edit multibridge
В файле вы увидите что-то подобное:
devices:
eth0:
nictype: bridged
parent: lxdbr0
type: nic
Создайте новую пустую строку после строки type и добавьте строки, чтобы она выглядела так:
devices:
eth0:
nictype: bridged
parent: lxdbr0
type: nic
eth1:
nictype: bridged
parent: testing
type: nic
Не редактируйте ничего в файле и сохраняйте его.
Теперь мы должны сообщить LXD о создании нового контейнера, но использовать профиль multibridge :
lxc launch images:centos/7/amd64 MyCentos -p multibridge
Это позволит LXD использовать профиль multibridge, который мы только что настроили в качестве профиля конфигурации для нового контейнера, и он должен использовать оба lxdbr0 и lxdbr1 в eth0 и eth1 соответственно в контейнере.
Если вам нужно несколько мостов на контейнере одновременно ... Система не умна и не настроить eth1 должным образом. Таким образом, вам нужно зайти в вашу систему CentOS и настроить конфигурацию для eth1 самостоятельно, чтобы установить ее как DHCP, так и статические IP-адреса в пределах диапазонов IP-адресов конфигурации lxdbr1. В противном случае этот интерфейс никогда не будет поднят. Поскольку эта конфигурация будет отличаться от ОС к ОС, я не могу дать вам четкого ответа здесь, как настроить каждый сетевой интерфейс на каждом изображении. Для этого доступны другие ресурсы.
Если вам нужен только новый мост, а не несколько мостов на одном контейнере за раз ...
Тогда нам нужно создать профиль для этого.
lxc profile copy default lxdbr1
... И затем отредактируйте этот новый профиль.
lxc profile edit lxdbr1
... И один раз там, найдите, где lxdbr0 указан и измените его на lxdbr1.
И, как и выше, запустите контейнер LXD и укажите для него профиль lxdbr1.
lxc launch images:centos/7/amd64 MyCentos -p lxdbr1
Вы не потребуется специализированная конфигурация для сетевого интерфейса, поскольку по умолчанию устанавливается первый интерфейс для DHCP и который будет автоматически конфигурироваться.
Просто какая-то постконфигурация теперь:
Вы также можете пересмотреть все отдельные сетевые элементы, если знаете конфигурации, которые нужно ввести, отредактировав конфигурацию сети lxdbr1, не используя brctl и просто вызовите lxc network edit lxdbr1 и добавьте отдельные конфигурации , Это позволяет lxd фактически обрабатывать все и не заставляет вас вручную настраивать мост с помощью brctl (и позволяет LXD управлять мостом).
Возможно, вы захотите настроить сетевая конфигурация, аналогичная приведенной ниже, которая отключает автоматический NAT и позволяет настроить способ передачи данных в Интернет вручную для вашего второго моста (вы можете внести изменения в конфигурацию моста через lxc network edit lxdbr1, если хотите использовать lxdbr1 как имя). Обратите внимание на использование здесь ipv4.nat: "false", которое отключает правило iptables 'MASQUERADE, которое делает его похожим на самую систему, достигающую исходящего:
config:
ipv4.address: 10.75.251.1/24
ipv4.dhcp: "true"
ipv4.dhcp.ranges: 10.75.251.200-10.75.251.250
ipv4.nat: "false"
Также есть эквивалентные команды IPv6, но IPv4 легче работать, поэтому я опускаю это здесь. Как только это будет сделано, вам необходимо перезагрузить контейнеры. Тем более, что мы установили все на dhcp.
Вместо использования brctl напрямую, а затем возиться с отдельными конфигурациями контейнеров, используйте вместо этого lxc network create, и пусть LXD управляет этими мостами. Это делает создание мостов очень легким и не дает нам головных болей. (Это то, что я делаю в нескольких средах LXD).
Из использования:
lxc network create [<remote>:]<network> [key=value...]
Create a network.
Эффективно просто выполните lxc network create lxcbr1 или все, что вы хотите назвать.
Проблема в том, что вы должны указать это где-то. Я лично использую профили конфигурации для этого, особенно если мне приходится связываться с несколькими мостами.
Теперь, действительно У меня есть отдельные профили для отдельных мостов, и не ставьте два на тот же самый ящик, но в вашем случае у вас будет два определения моста LXD. Итак, нам нужно создать для них конфигурационный профиль.
Если вам нужно несколько мостов на контейнере одновременно ...
Start путем копирования конфигурации default в конфигурацию multibridge:
lxc profile copy default multibridge
После этого нам нужно отредактировать новый файл multibridge, чтобы он имел несколько сетевых устройств.
lxc profile edit multibridge
В файле вы увидите что-то подобное:
devices:
eth0:
nictype: bridged
parent: lxdbr0
type: nic
Создайте новую пустую строку после строки type и добавьте строки, чтобы она выглядела так:
devices:
eth0:
nictype: bridged
parent: lxdbr0
type: nic
eth1:
nictype: bridged
parent: testing
type: nic
Не редактируйте ничего в файле и сохраняйте его.
Теперь мы должны сообщить LXD о создании нового контейнера, но использовать профиль multibridge :
lxc launch images:centos/7/amd64 MyCentos -p multibridge
Это позволит LXD использовать профиль multibridge, который мы только что настроили в качестве профиля конфигурации для нового контейнера, и он должен использовать оба lxdbr0 и lxdbr1 в eth0 и eth1 соответственно в контейнере.
Если вам нужно несколько мостов на контейнере одновременно ... Система не умна и не настроить eth1 должным образом. Таким образом, вам нужно зайти в вашу систему CentOS и настроить конфигурацию для eth1 самостоятельно, чтобы установить ее как DHCP, так и статические IP-адреса в пределах диапазонов IP-адресов конфигурации lxdbr1. В противном случае этот интерфейс никогда не будет поднят. Поскольку эта конфигурация будет отличаться от ОС к ОС, я не могу дать вам четкого ответа здесь, как настроить каждый сетевой интерфейс на каждом изображении. Для этого доступны другие ресурсы.
Если вам нужен только новый мост, а не несколько мостов на одном контейнере за раз ...
Тогда нам нужно создать профиль для этого.
lxc profile copy default lxdbr1
... И затем отредактируйте этот новый профиль.
lxc profile edit lxdbr1
... И один раз там, найдите, где lxdbr0 указан и измените его на lxdbr1.
И, как и выше, запустите контейнер LXD и укажите для него профиль lxdbr1.
lxc launch images:centos/7/amd64 MyCentos -p lxdbr1
Вы не потребуется специализированная конфигурация для сетевого интерфейса, поскольку по умолчанию устанавливается первый интерфейс для DHCP и который будет автоматически конфигурироваться.
Просто какая-то постконфигурация теперь:
Вы также можете пересмотреть все отдельные сетевые элементы, если знаете конфигурации, которые нужно ввести, отредактировав конфигурацию сети lxdbr1, не используя brctl и просто вызовите lxc network edit lxdbr1 и добавьте отдельные конфигурации , Это позволяет lxd фактически обрабатывать все и не заставляет вас вручную настраивать мост с помощью brctl (и позволяет LXD управлять мостом).
Возможно, вы захотите настроить сетевая конфигурация, аналогичная приведенной ниже, которая отключает автоматический NAT и позволяет настроить способ передачи данных в Интернет вручную для вашего второго моста (вы можете внести изменения в конфигурацию моста через lxc network edit lxdbr1, если хотите использовать lxdbr1 как имя). Обратите внимание на использование здесь ipv4.nat: "false", которое отключает правило iptables 'MASQUERADE, которое делает его похожим на самую систему, достигающую исходящего:
config:
ipv4.address: 10.75.251.1/24
ipv4.dhcp: "true"
ipv4.dhcp.ranges: 10.75.251.200-10.75.251.250
ipv4.nat: "false"
Также есть эквивалентные команды IPv6, но IPv4 легче работать, поэтому я опускаю это здесь. Как только это будет сделано, вам необходимо перезагрузить контейнеры. Тем более, что мы установили все на dhcp.
Вместо использования brctl напрямую, а затем возиться с отдельными конфигурациями контейнеров, используйте вместо этого lxc network create, и пусть LXD управляет этими мостами. Это делает создание мостов очень легким и не дает нам головных болей. (Это то, что я делаю в нескольких средах LXD).
Из использования:
lxc network create [<remote>:]<network> [key=value...]
Create a network.
Эффективно просто выполните lxc network create lxcbr1 или все, что вы хотите назвать.
Проблема в том, что вы должны указать это где-то. Я лично использую профили конфигурации для этого, особенно если мне приходится связываться с несколькими мостами.
Теперь, действительно У меня есть отдельные профили для отдельных мостов, и не ставьте два на тот же самый ящик, но в вашем случае у вас будет два определения моста LXD. Итак, нам нужно создать для них конфигурационный профиль.
Если вам нужно несколько мостов на контейнере одновременно ...
Start путем копирования конфигурации default в конфигурацию multibridge:
lxc profile copy default multibridge
После этого нам нужно отредактировать новый файл multibridge, чтобы он имел несколько сетевых устройств.
lxc profile edit multibridge
В файле вы увидите что-то подобное:
devices:
eth0:
nictype: bridged
parent: lxdbr0
type: nic
Создайте новую пустую строку после строки type и добавьте строки, чтобы она выглядела так:
devices:
eth0:
nictype: bridged
parent: lxdbr0
type: nic
eth1:
nictype: bridged
parent: testing
type: nic
Не редактируйте ничего в файле и сохраняйте его.
Теперь мы должны сообщить LXD о создании нового контейнера, но использовать профиль multibridge :
lxc launch images:centos/7/amd64 MyCentos -p multibridge
Это позволит LXD использовать профиль multibridge, который мы только что настроили в качестве профиля конфигурации для нового контейнера, и он должен использовать оба lxdbr0 и lxdbr1 в eth0 и eth1 соответственно в контейнере.
Если вам нужно несколько мостов на контейнере одновременно ... Система не умна и не настроить eth1 должным образом. Таким образом, вам нужно зайти в вашу систему CentOS и настроить конфигурацию для eth1 самостоятельно, чтобы установить ее как DHCP, так и статические IP-адреса в пределах диапазонов IP-адресов конфигурации lxdbr1. В противном случае этот интерфейс никогда не будет поднят. Поскольку эта конфигурация будет отличаться от ОС к ОС, я не могу дать вам четкого ответа здесь, как настроить каждый сетевой интерфейс на каждом изображении. Для этого доступны другие ресурсы.
Если вам нужен только новый мост, а не несколько мостов на одном контейнере за раз ...
Тогда нам нужно создать профиль для этого.
lxc profile copy default lxdbr1
... И затем отредактируйте этот новый профиль.
lxc profile edit lxdbr1
... И один раз там, найдите, где lxdbr0 указан и измените его на lxdbr1.
И, как и выше, запустите контейнер LXD и укажите для него профиль lxdbr1.
lxc launch images:centos/7/amd64 MyCentos -p lxdbr1
Вы не потребуется специализированная конфигурация для сетевого интерфейса, поскольку по умолчанию устанавливается первый интерфейс для DHCP и который будет автоматически конфигурироваться.
Просто какая-то постконфигурация теперь:
Вы также можете пересмотреть все отдельные сетевые элементы, если знаете конфигурации, которые нужно ввести, отредактировав конфигурацию сети lxdbr1, не используя brctl и просто вызовите lxc network edit lxdbr1 и добавьте отдельные конфигурации , Это позволяет lxd фактически обрабатывать все и не заставляет вас вручную настраивать мост с помощью brctl (и позволяет LXD управлять мостом).
Возможно, вы захотите настроить сетевая конфигурация, аналогичная приведенной ниже, которая отключает автоматический NAT и позволяет настроить способ передачи данных в Интернет вручную для вашего второго моста (вы можете внести изменения в конфигурацию моста через lxc network edit lxdbr1, если хотите использовать lxdbr1 как имя). Обратите внимание на использование здесь ipv4.nat: "false", которое отключает правило iptables 'MASQUERADE, которое делает его похожим на самую систему, достигающую исходящего:
config:
ipv4.address: 10.75.251.1/24
ipv4.dhcp: "true"
ipv4.dhcp.ranges: 10.75.251.200-10.75.251.250
ipv4.nat: "false"
Также есть эквивалентные команды IPv6, но IPv4 легче работать, поэтому я опускаю это здесь. Как только это будет сделано, вам необходимо перезагрузить контейнеры. Тем более, что мы установили все на dhcp.