The gatekeeper is a service that filters messages intended for the node itself according to IDs, origin and/or destination. Messages that merely pass through the node on their way to other nodes are not filtered.
Which messages were able to pass the gatekeeper and which were rejected can be seen in the LOG.
The gatekeeper rules are expected in the preference node "network/gatekeeper". Each rule key consists of the word "rule" followed by some unique number. Each rule value consists of exactly 6 entries in one line, separated by commas. Some values may be missing.
This rule lets all messages pass. It is valuable in that you get logged all messages that pass the gatekeeper during operation.
rule001 = +,,,,,all
|1||+ or -||+ means allow messages, - means block messages||
|2||20022||The local TCP port number (random for outgoing connections)||no|
|3||79e8304a-b6bb-4fc5-9acb-d8f930017ec0||A record ID||no|
|4||SYSTEM||receiver namespace id||no|
|5||sun.ss||sender node id||no|
|6||Broadcast 1||a description||
Example for a configuration file
# nyssr.net preference.node.name = network/gatekeeper preference.node.clear.first = true preference.key.overwrite.existing = true # payload # allow all rule001 = +,,,,,all # allow Ping messages from everywhere rule002 = +,,73265,,,Ping # block 79e8304a-b6bb-4fc5-9acb-d8f930017ec0 (BroadcastTransportMsg) from port 20000 rule003 = -,20000,79e8304a-b6bb-4fc5-9acb-d8f930017ec0,,,Broadcasts # block any message from the node "sun.ss" rule003 = -,,,,sun.ss,all from sun
The LOG output uses the logger "".
Here is an example of a LOG output.
+ Gate=51892, ID=79e8304a-b6bb-4fc5-9acb-d8f930017ec0 (BroadcastTransportMsg), sender=BROADCAST.TRANSPORT.sun.ss, receiver=.SYSTEM.ceres.ss + Gate=51892, ID=93df1c45-725d-4f57-83b8-41cc6dfdb93a, sender=12.MicroServiceReg-4.sun.ss, receiver=.SYSTEM.ceres.ss + Gate=51892, ID=be46c53e-e544-4e76-8c44-01f8c144254c, sender=12.MicroServiceReg-4.sun.ss, receiver=5.SYSTEM.ceres.ss + Gate=51892, ID=79e8304a-b6bb-4fc5-9acb-d8f930017ec0 (BroadcastTransportMsg), sender=BROADCAST.TRANSPORT.sun.ss, receiver=.SYSTEM.ceres.ss + Gate=51892, ID=986a7cf9-dcec-47a9-b2e8-77a2348ed384, sender=8.LinkCostCollector-3.sun.ss, receiver=4.TRANSPORT.ceres.ss + Gate=51892, ID=79e8304a-b6bb-4fc5-9acb-d8f930017ec0 (BroadcastTransportMsg), sender=BROADCAST.TRANSPORT.sun.ss, receiver=.SYSTEM.ceres.ss
Example for a LOG configuration
# nyssr.net preference.node.name = logging/writer/file/levels preference.node.clear.first = true preference.key.overwrite.existing = true # payload startup = TRACE network = INFO de.sillysky.nyssr.impl.network.gatekeeper.CGateKeeper = DEBUG