Я экспериментирую (ну, в любом случае, пытаюсь) с гиперледжером в виртуальных машинах Virtualbox с orderer и peers, каждый на своей собственной виртуальной машине Ubuntu 18.04 Server. Я основываю свою деятельность на этом посте в блоге:
https://www.ideas2it.com/blogs/hyperledger-fabric-multiple-vm/
, что довольно хорошо, но предполагает, что вы точно знаете, как настроить dnsmasq и правильно его настроить для вашей сети. За все мои годы никогда не копался в DNS или DHCP, потому что, ну, они просто работали, а мне не пришлось. Но теперь я делаю ...
Я использую виртуальные машины в частной сети Virtualbox vboxnet0, для которой я настроил службу DHCP на 192.168.56.xx / 24. Адрес DHCP-сервера: 192.168.56.10. Нижняя и верхняя границы адресов для обслуживаемых адресов: 192.168.56.50 и 192.168.56.90
. Виртуальные машины, на которых я хочу работать с узлами hyperledger, получают IP-адрес, обслуживаемый DHCP, при запуске 192.168.56.50, 192.168.56.51. 192.168.56.52 и пр. c, как и ожидалось. Какой IP-адрес идет на какую виртуальную машину, зависит от порядка их запуска.
Я создал виртуальную машину для работы в качестве DNS-сервера и назначил ей stati c IP 192.168.56.20 на устройстве enp0s3. Этот сервер и другие виртуальные машины могут нормально пропинговать друг друга. Я установил dnsmasq на эту машину и работал над ее конфигурацией на основе этого:
https://linuxhint.com/dnsmasq_ubuntu_server/
В / etc / netplan / я создал файл 01-netcfg.yaml, содержащий:
network:
version: 2
renderer: networkd
ethernets: enp0s3
dhcp4: no
addresses: [192.168.56.20]
На виртуальной машине DNS-сервера, основываясь на приведенной выше ссылке на инструкцию по настройке, я сделал следующее:
$ sudo apt update
$ sudo apt install dnsmasq
$ sudo systemctl stop systemd-resolved
$ sudo systemctl disable systemd-resolved
$ sudo rm -v /etc/resolv.conf
$ echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
$ sudo mv -v /etc/dnsmasq.conf /etc/dnsmasq.conf.bk
$ sudo nano /etc/dnsmasq.conf
Теперь я редактируя /etc/dnsmasq.conf, помещая в него материал, и в конце я запутываюсь в отношении «домена»:
# DNS configuration
port=53
domain-needed
bogus-priv
strict-order
expand-hosts
domain=example.com # <-- ??? change this to arbitrary domain like 'fabnet' ?
ПЕРВЫЙ ВОПРОС - В этом контексте в частная сеть только для хоста, я не уверен, что «домен» должен быть - я просто создаю здесь доменное имя для использования, или есть что-то, что указывает частная сеть virtualbox? Где все места, которые нужны для go? Допустим, для этого небольшого сетевого использования используйте 'fa bnet' - где все места, которые ему нужны для go? В файлах / etc / hosts на всех виртуальных машинах или только здесь, на DNS-сервере?
Далее, инструкции по настройке файла / etc / hosts выглядят так, как будто он использует stati c IP-адреса для меня - с учетом этого, используя этот шаблон, моя будет содержать строки вроде:
# DNS Records
192.168.56.50 fabric01.fabnet
192.168.56.51 fabric02.fabnet
192.168.56.52 fabric03.fabnet
192.168.56.53 fabric04.fabnet
192.168.56.54 fabric05.fabnet
ВТОРОЙ ВОПРОС - Если фактические IP-адреса для хостов в этой сети обслуживаемая службой Virtualbox DHCP, как мы это делаем? Мне кажется, что файл / etc / hosts выше на DNS-сервере не учитывает это. В зависимости от того, в каком порядке запускаются эти виртуальные машины, они могут иметь IP-адреса, отличные от указанных в этом файле.
ТАК. Я полностью осознаю, что могут быть и другие аспекты, которые я тоже не совсем правильно понял. - заранее спасибо за ваше руководство и мудрость: -)