Merge remote-tracking branch 'origin/topic/seth/make-cluster-port-optional'

* origin/topic/seth/make-cluster-port-optional:
  Apply suggestions from code review
  Update scripts/base/frameworks/cluster/main.zeek
  Make defining a port number for hosts in a cluster that only connect outbound optional
This commit is contained in:
Jon Siwek 2020-10-13 15:34:02 -07:00
commit 6cb0cb9746
5 changed files with 25 additions and 6 deletions

View file

@ -1,3 +1,12 @@
3.3.0-dev.420 | 2020-10-13 15:34:02 -0700
* Change "Cluster::Node$p" field to use "&default=0/unknown" (Seth Hall, Corelight)
This effectively makes defining the listening port optional in the cluster
node layout config, with "0/unknown" meaning the node is not pre-configured
to listen for incoming connections from other cluster nodes.
3.3.0-dev.414 | 2020-10-13 13:49:05 -0700 3.3.0-dev.414 | 2020-10-13 13:49:05 -0700
* Update cmake submodule to pull in fix for building libkqueue (Tim Wojtulewicz, Corelight) * Update cmake submodule to pull in fix for building libkqueue (Tim Wojtulewicz, Corelight)

5
NEWS
View file

@ -88,6 +88,11 @@ Changed Functionality
than the previous one. A detailed explanation of the implementation is here: than the previous one. A detailed explanation of the implementation is here:
https://jasonlue.github.io/algo/2019/08/20/clustered-hashing.html https://jasonlue.github.io/algo/2019/08/20/clustered-hashing.html
- The ``p`` fields of ``Cluster::Node`` records now use a
``&default=0/unknown`` attribute with ``0/unknown`` meaning that the node is
not pre-configured to listen for incoming connections from other cluster
nodes.
Removed Functionality Removed Functionality
--------------------- ---------------------

View file

@ -1 +1 @@
3.3.0-dev.414 3.3.0-dev.420

View file

@ -162,7 +162,8 @@ export {
## can specify a particular :rfc:`4007` ``zone_id``. ## can specify a particular :rfc:`4007` ``zone_id``.
zone_id: string &default=""; zone_id: string &default="";
## The port that this node will listen on for peer connections. ## The port that this node will listen on for peer connections.
p: port; ## A value of ``0/unknown`` means the node is not pre-configured to listen.
p: port &default=0/unknown;
## Identifier for the interface a worker is sniffing. ## Identifier for the interface a worker is sniffing.
interface: string &optional; interface: string &optional;
## Name of the manager node this node uses. For workers and proxies. ## Name of the manager node this node uses. For workers and proxies.

View file

@ -89,11 +89,15 @@ event zeek_init() &priority=-10
Broker::subscribe(nodeid_topic(Broker::node_id())); Broker::subscribe(nodeid_topic(Broker::node_id()));
Broker::subscribe(node_topic(node)); Broker::subscribe(node_topic(node));
if ( self$p != 0/unknown )
{
Broker::listen(Broker::default_listen_address, Broker::listen(Broker::default_listen_address,
self$p, self$p,
Broker::default_listen_retry); Broker::default_listen_retry);
Cluster::log(fmt("listening on %s:%s", Broker::default_listen_address, self$p)); Cluster::log(fmt("listening on %s:%s", Broker::default_listen_address, self$p));
}
switch ( self$node_type ) { switch ( self$node_type ) {
case MANAGER: case MANAGER: