From a8822cf2444f0fb5c553ccea3057490e210a7ef4 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Wed, 7 May 2025 21:43:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20open-isns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/open-isns/etc/isns/examples.md | 70 +++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 services/open-isns/etc/isns/examples.md diff --git a/services/open-isns/etc/isns/examples.md b/services/open-isns/etc/isns/examples.md new file mode 100644 index 0000000..13e418f --- /dev/null +++ b/services/open-isns/etc/isns/examples.md @@ -0,0 +1,70 @@ +# Пример + +Если вы хотите использовать Open-iSNS в режиме аутентификации, сначала необходимо инициализировать DSA-ключ и параметры DSA сервера. Это можно удобно сделать с помощью команды: + +``` +isnsd --init +``` + +Эта команда создаст закрытый и открытый ключи сервера и поместит их в файлы `/etc/isns/auth_key` и `auth_key.pub` соответственно. + +Следующая команда создаст объект политики для узла с именем `isns.control` и предоставит ему права управления: + +``` +isnsadm --local --keyfile=control.key --enroll isns.control \ + node-type=ALL functions=ALL object-type=ALL +``` + +В процессе регистрации клиента будет создана пара DSA-ключей, а закрытая часть ключа будет помещена в файл `control.key`. Этот файл необходимо установить как `/etc/isns/control.key` на хосте, который вы хотите использовать в качестве станции управления iSNS. + +Далее, необходимо создать объект узла хранения для станции управления: + +``` +isnsadm --local --register control +``` + +На станции управления вы можете затем зарегистрировать дополнительные хосты: + +``` +isnsadm --control --keyfile=somehost.key --enroll iqn.2005-01.org.open-iscsi.somehost \ + node-type=target+initiator +``` + +Эта команда также создаст пару DSA-ключей и сохранит закрытую часть ключа в файл `auth _ + +_key`. Обратите внимание на использование опции `--control`, которая указывает `isnsadm` использовать идентификатор управляющего узла вместо ключа и имени источника по умолчанию. + +Затем необходимо скопировать файл `somehost.key` на клиентский хост и установить его как `/etc/isns/auth_key`. Аналогично, открытый ключ сервера (находящийся в `/etc/isns/auth_key.pub` на сервере) нужно скопировать на клиентскую машину и поместить в `/etc/isns/server_key.pub`. + +По умолчанию, когда клиент регистрирует узел хранения (инициатор или цель) в iSNS, он не сможет видеть другие узлы хранения. Чтобы цели были видны определённому инициатору, необходимо создать так называемые домены обнаружения (Discovery Domains, или DD). + +На данный момент операции с членством в доменах требуют прав администратора. В будущем расширения могут позволить клиентам iSNS добавлять себя в один или несколько DD при регистрации. + +Чтобы создать домен обнаружения и добавить в него узлы, используйте: + +``` +isnsadm --control --dd-register dd-name=mydomain \ + member-name=iqn.org.bozo.client iqn.org.bozo.jbod ... +``` + +Для добавления членов в существующий DD необходимо указать числовой идентификатор домена — использование имени DD, к сожалению, недостаточно (это требование RFC, а не проблема реализации): + +``` +isnsadm --control --dd-register dd-id=42 \ + member-name=iqn.com.foo member-name=iqn.com.bar +``` + +Идентификатор DD можно получить, выполнив запрос по имени DD: + +``` +isnsadm --control --query dd-name=mydomain +``` + +В режиме управления вы также можете вручную регистрировать и удалять узлы и порталы, например, чтобы исправить несоответствия в базе данных. Например, следующая команда зарегистрирует узел и портал на хосте с именем `client.bozo.org`: + +``` +isnsadm --control --register entity=client.bozo.org \ + initiator=iqn.org.bozo.client portal=191.168.7.1:860 +``` + +Обратите внимание, что эта регистрация явно указывает сетевую сущность, в которую помещаются новые объекты. Если опустить этот параметр, новые объекты будут помещены в сущность с именем `CONTROL`, что определённо не является желаемым результатом.