Мне интересно, может ли свойство отношения между двумя узлами ссылаться на другой узел. Я пытаюсь увидеть, могу ли я визуализировать списки ACL Cisco с Neo4j, поэтому у меня есть некоторые данные, которые выглядят так:
сеть группы объектов Server_Group_A
сеть-объект хост 1.2.3.4
хост сетевого объекта 2.3.4.5
хост сетевого объекта 3.4.5.6
сеть группы объектов Server_Group_B
сеть объекта хост 4.3.2.1
хост сетевого объекта 5.4.3.2
хост сетевого объекта 6.5.4.3
служба группы объектов Port_Group_A tcp
port- объектный эквалайзер 80
порт-объектный эквалайзер 443
access-list Расширенное разрешение Some_Interface tcp объектная группа Server_Group_A объектная группа Server_Group_B объектная группа Port_Group_A
Пока что Я строил все в Cypher так:
(Server1
: Сервер {IP: '1.2.3.4'}),
... et c. ..
(Server_Group_A
: ObjectGroup {Имя: 'Server_Group_A'}),
(Server_Group_B
: ObjectGroup {Имя: 'Server_Group_B'}),
(Port_Group_A
: PortGrou p {Name: 'Server_Group_B'}),
(Port_80
: PortObject {Port: '80 '}),
(Port_443
: PortObject {Port:' 443 '} ),
(Server1
) - [: MemberOf
] -> (Server_Group_A
)
... et c ...
( Port_80
) - [: MemberOf
] -> (Port_Group_A
)
... et c ...
Когда речь идет о выражении отношений между Server_Group_A и Server_Group_B для соответствия ACL, возможно ли, чтобы узел Port_Group_A был одним из свойств отношения? Я пробовал это, но я получаю ошибку типа, которую я ожидал:
(Server_Group_A
) - [: ConnectedTo
{Ports: [Port_Group_A
]}] -> ( Server_Group_B
)
Если это невозможно, как я надеюсь, у кого-нибудь есть какие-либо рекомендации относительно того, как они к этому подойдут?