@@ -2,6 +2,7 @@ package types
22
33import (
44 "context"
5+ "maps"
56 "net"
67 "net/netip"
78 "slices"
@@ -16,7 +17,6 @@ import (
1617 nbpeer "github.com/netbirdio/netbird/management/server/peer"
1718 "github.com/netbirdio/netbird/route"
1819 "github.com/netbirdio/netbird/shared/management/domain"
19- "golang.org/x/exp/maps"
2020)
2121
2222const EnvNewNetworkMapCompacted = "NB_NETWORK_MAP_COMPACTED"
@@ -119,10 +119,9 @@ func (c *NetworkMapComponents) Calculate(ctx context.Context) *NetworkMap {
119119 routesUpdate := c .getRoutesToSync (targetPeerID , peersToConnect , peerGroups )
120120 routesFirewallRules := c .getPeerRoutesFirewallRules (ctx , targetPeerID )
121121
122- isRouter , networkResourcesRoutes , sourcePeers , peerFirewallRules := c .getNetworkResourcesRoutesToSync (targetPeerID )
122+ isRouter , networkResourcesRoutes , sourcePeers := c .getNetworkResourcesRoutesToSync (targetPeerID )
123123 var networkResourcesFirewallRules []* RouteFirewallRule
124124 if isRouter {
125- firewallRules = append (firewallRules , peerFirewallRules ... )
126125 networkResourcesFirewallRules = c .getPeerNetworkResourceFirewallRules (ctx , targetPeerID , networkResourcesRoutes )
127126 }
128127
@@ -527,6 +526,7 @@ func (c *NetworkMapComponents) getRoutingPeerRoutes(peerID string) (enabledRoute
527526 return enabledRoutes , disabledRoutes
528527}
529528
529+
530530func (c * NetworkMapComponents ) filterRoutesByGroups (routes []* route.Route , groupListMap LookupMap ) []* route.Route {
531531 var filteredRoutes []* route.Route
532532 for _ , r := range routes {
@@ -692,11 +692,10 @@ func (c *NetworkMapComponents) getRulePeers(rule *PolicyRule, postureChecks []st
692692 return distributionGroupPeers
693693}
694694
695- func (c * NetworkMapComponents ) getNetworkResourcesRoutesToSync (peerID string ) (bool , []* route.Route , map [string ]struct {}, [] * FirewallRule ) {
695+ func (c * NetworkMapComponents ) getNetworkResourcesRoutesToSync (peerID string ) (bool , []* route.Route , map [string ]struct {}) {
696696 var isRoutingPeer bool
697697 var routes []* route.Route
698698 allSourcePeers := make (map [string ]struct {})
699- localResourceFwRule := make ([]* FirewallRule , 0 )
700699
701700 for _ , resource := range c .NetworkResources {
702701 if ! resource .Enabled {
@@ -715,9 +714,6 @@ func (c *NetworkMapComponents) getNetworkResourcesRoutesToSync(peerID string) (b
715714
716715 addedResourceRoute := false
717716 for _ , policy := range c .ResourcePoliciesMap [resource .ID ] {
718- if isRoutingPeer && resource .OnRoutingPeer {
719- localResourceFwRule = append (localResourceFwRule , c .getLocalResourceFirewallRules (policy )... )
720- }
721717 var peers []string
722718 if policy .Rules [0 ].SourceResource .Type == ResourceTypePeer && policy .Rules [0 ].SourceResource .ID != "" {
723719 peers = []string {policy .Rules [0 ].SourceResource .ID }
@@ -740,63 +736,7 @@ func (c *NetworkMapComponents) getNetworkResourcesRoutesToSync(peerID string) (b
740736 }
741737 }
742738
743- return isRoutingPeer , routes , allSourcePeers , localResourceFwRule
744- }
745-
746- func (c * NetworkMapComponents ) getLocalResourceFirewallRules (policy * Policy ) []* FirewallRule {
747- sourcePeerIDs := c .getPoliciesSourcePeers ([]* Policy {policy })
748- postureValidatedPeerIDs := c .getPostureValidPeers (maps .Keys (sourcePeerIDs ), policy .SourcePostureChecks )
749-
750- rules := make ([]* FirewallRule , 0 )
751- for _ , rule := range policy .Rules {
752- if ! rule .Enabled {
753- continue
754- }
755-
756- protocol := rule .Protocol
757- if protocol == PolicyRuleProtocolNetbirdSSH {
758- continue
759- }
760-
761- for _ , peerID := range postureValidatedPeerIDs {
762- peer := c .GetPeerInfo (peerID )
763- if peer == nil {
764- continue
765- }
766- peerIP := peer .IP .String ()
767-
768- fr := FirewallRule {
769- PolicyID : rule .ID ,
770- PeerIP : peerIP ,
771- Direction : FirewallRuleDirectionIN ,
772- Action : string (rule .Action ),
773- Protocol : string (protocol ),
774- }
775-
776- if len (rule .Ports ) == 0 && len (rule .PortRanges ) == 0 {
777- rules = append (rules , & fr )
778- continue
779- }
780-
781- for _ , port := range rule .Ports {
782- portRule := fr
783- portRule .Port = port
784- rules = append (rules , & portRule )
785- }
786-
787- for _ , portRange := range rule .PortRanges {
788- if len (rule .Ports ) > 0 {
789- break
790- }
791- rangeRule := fr
792- rangeRule .PortRange = portRange
793- rules = append (rules , & rangeRule )
794- }
795-
796- }
797- }
798-
799- return rules
739+ return isRoutingPeer , routes , allSourcePeers
800740}
801741
802742func (c * NetworkMapComponents ) getNetworkResourcesRoutes (resource * resourceTypes.NetworkResource , peerID string , router * routerTypes.NetworkRouter ) []* route.Route {
0 commit comments