Page tree
Skip to end of metadata
Go to start of metadata

Модуль Service Activation обеспечивает сбор технической информации о сети и абстрагирует ее для других модулей от типа и производителя оборудования.

Архитектура модуля.

    Модуль Service Activation разделен на две части:

  1. Service Activation Engine (сокр. SAE) - центральный процесс, единая точка входа для всех задач, которые должны быть выполнены на оборудовании, распределяет все поступающие задачи между доступными активаторами
  2. Activator - процесс, который непосредственно выполняет подключение к оборудованию.

Активаторы объединены в пулы для распределения нагрузки по множеству процессов, но каждое сетевое устройство может обслуживаться только одним конкретным пулом.

Принцип действия.

На центральном сервере запускается процесс noc-sae и начинает ждать подключения от удаленных активаторов. Процесс noc-activator запускается в месте, наиболее оптимальном для управления оборудованием, подключается к SAE и проходит процедуру регистрации и аутентификации, если все настройки верные, в логе активатора можно будет увидеть следующее:

noc-activator.log

 

2014-11-24 10:28:40,755 [root] Negotiation protocol 'NOC SAE PROTOCOL (http://nocproject.org/)' version '1.0'
2014-11-24 10:28:40,763 [root] Protocol version negotiated
2014-11-24 10:28:40,767 [root] Registering as 'noc'
2014-11-24 10:28:40,778 [root] Registration accepted
2014-11-24 10:28:40,779 [root] Authenticating as noc
2014-11-24 10:28:40,812 [root] Authenticated

 

Все, между активатором и SAE установлен канал связи, по которому будут отправляться задачи и возвращаться результат. Данные, передаваемые по каналу, сжимаются и, что важнее, шифруются, так как там же передаются логины и пароли на доступ к оборудованию.

Не рекомендуется подключать активаторы через публичные сети, следует использовать более известные и проверенные решения для организации безопасного канала связи активатора с SAE

Обновление. Получен комментарий от разработчика:

 

KEY_EXCHANGES = ["diffie-hellman-group1-sha1"]
PUBLIC_KEYS = ["ssh-dss"]
CIPHERS = ["aes256-cbc""blowfish-cbc""3des-cbc"]
MACS = ["hmac-sha1""hmac-md5"]
COMPRESSIONS = ["zlib"]
CIPHER_MAP = {
              "aes256-cbc": ("AES"32),
              "blowfish-cbc": ("Blowfish"16),
              "3des-cbc": ("DES3"24),
}
MAC_MAP = {
           "hmac-sha1": hashlib.sha1,
           "hmac-md5": hashlib.md5
}

 

там протокол, эквивалентный ssh

по умолчанию будет AES 256 bit/HMAC SHA1

в следующих версиях будет обычный TLS

и JSON-RPC поверх HTTPS

и не будет protocol buffers

Так как инициатива по созданию подключения исходит от процесса активатора, это позволяет устанавливать связь через NAT или statefull firewall, что, в общем случае, упрощает развертывание удаленных активаторов.

Настройка.

Процесс noc-sae.

Настройка SAE процесса достаточно проста, вот пример конфигурационного файла с описанием

 

[main]
## Общая секция, которая есть у всех прочих процессов, не будем заострять внимание, тем более что опции достаточно очевидны
logfile  = /var/log/noc/noc-sae.log
loglevel = info
logsize  = 0
logfiles = 0
syslog_host =
pidfile  = /var/run/noc/noc-sae.pid
mrt_log = false
 
[debug]
## Секция с опциями для отладки, необходима разработчикам, тоже проходим мимо
enable_manhole = false
enable_timing = false
timing_base = local/timing
 
[sae]
## Секция настроек SAE
shards     = default           # указывает принадлежность SAE процесса одному из shards, что это и зачем тема для отдельной статьи про NOC sharding, для большинства обычных инсталляций SAE всегда будет привязан к default shard
listen     = 127.0.0.1         # ip адрес определяет где SAE будет ожидать подключения от активаторов, по-умолчанию стоит адрес loopback интерфейса, т.е. noc-activator должен быть запущен на том же сервере что и noc-sae, чтобы SAE слушал на всех интерфейсах можно указать адрес 0.0.0.0
port       = 19701 # TCP порт на который ожидаются подключения активаторов
refresh_event_filter = 600     # требуется пояснение от разработчиков
force_plaintext = 127.0.0.1/32 # настройка, позволяющая отключить шифрование при передаче данных на активаторы, подключенные с указанных ip адресов
max_mrt_rate_per_sae = 0       # обе опции позволяют ограничить количество одновременно выполняемых задач, например, необходимо для случаев, когда TACACS сервер не справляется с потоком запросов от оборудования на аутентификацию/авторизацию подключений
max_mrt_rate_per_shard = 0     #
 
[event]
strip_syslog_facility = true   # требуется пояснение от разработчиков
strip_syslog_severity = true   # требуется пояснение от разработчиков

 

    

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels

Похожие по тематике