@@ -85,6 +85,24 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
85
85
HostNetworkInfo : models.HostInfoMap {},
86
86
EndpointDetection : servercfg .IsEndpointDetectionEnabled (),
87
87
}
88
+ defer func () {
89
+ if ! hostPeerUpdate .FwUpdate .AllowAll {
90
+ aclRule := models.AclRule {
91
+ ID : "allowed-network-rules" ,
92
+ AllowedProtocol : models .ALL ,
93
+ Direction : models .TrafficDirectionBi ,
94
+ Allowed : true ,
95
+ }
96
+ for _ , allowedNet := range hostPeerUpdate .FwUpdate .AllowedNetworks {
97
+ if allowedNet .IP .To4 () != nil {
98
+ aclRule .IPList = append (aclRule .IPList , allowedNet )
99
+ } else {
100
+ aclRule .IP6List = append (aclRule .IP6List , allowedNet )
101
+ }
102
+ }
103
+ hostPeerUpdate .FwUpdate .AclRules ["allowed-network-rules" ] = aclRule
104
+ }
105
+ }()
88
106
89
107
slog .Debug ("peer update for host" , "hostId" , host .ID .String ())
90
108
peerIndexMap := make (map [string ]int )
@@ -158,17 +176,20 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
158
176
}
159
177
defaultUserPolicy , _ := GetDefaultPolicy (models .NetworkID (node .Network ), models .UserPolicy )
160
178
defaultDevicePolicy , _ := GetDefaultPolicy (models .NetworkID (node .Network ), models .DevicePolicy )
161
- if node .NetworkRange .IP != nil {
162
- hostPeerUpdate .FwUpdate .Networks = append (hostPeerUpdate .FwUpdate .Networks , node .NetworkRange )
163
- }
164
- if node .NetworkRange6 .IP != nil {
165
- hostPeerUpdate .FwUpdate .Networks = append (hostPeerUpdate .FwUpdate .Networks , node .NetworkRange6 )
166
- }
167
179
168
- if ! defaultDevicePolicy .Enabled || ! defaultUserPolicy .Enabled {
180
+ if defaultDevicePolicy .Enabled && defaultUserPolicy .Enabled {
181
+ if node .NetworkRange .IP != nil {
182
+ hostPeerUpdate .FwUpdate .AllowedNetworks = append (hostPeerUpdate .FwUpdate .AllowedNetworks , node .NetworkRange )
183
+ }
184
+ if node .NetworkRange6 .IP != nil {
185
+ hostPeerUpdate .FwUpdate .AllowedNetworks = append (hostPeerUpdate .FwUpdate .AllowedNetworks , node .NetworkRange6 )
186
+ }
187
+
188
+ } else {
169
189
hostPeerUpdate .FwUpdate .AllowAll = false
190
+ hostPeerUpdate .FwUpdate .AclRules = GetAclRulesForNode (& node )
170
191
}
171
- hostPeerUpdate . FwUpdate . AclRules = GetAclRulesForNode ( & node )
192
+
172
193
currentPeers := GetNetworkNodesMemory (allNodes , node .Network )
173
194
for _ , peer := range currentPeers {
174
195
peer := peer
0 commit comments