mirror of
https://github.com/slackhq/nebula.git
synced 2025-11-23 00:44:25 +01:00
honor remote_allow_list in hole punch response (#1186)
* honor remote_allow_ilst in hole punch response When we receive a "hole punch notification" from a Lighthouse, we send a hole punch packet to every remote of that host, even if we don't include those remotes in our "remote_allow_list". Change the logic here to check if the remote IP is in our allow list before sending the hole punch packet. * fix for netip * cleanup
This commit is contained in:
@@ -1337,12 +1337,19 @@ func (lhh *LightHouseHandler) handleHostPunchNotification(n *NebulaMeta, fromVpn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
remoteAllowList := lhh.lh.GetRemoteAllowList()
|
||||||
for _, a := range n.Details.V4AddrPorts {
|
for _, a := range n.Details.V4AddrPorts {
|
||||||
punch(protoV4AddrPortToNetAddrPort(a), detailsVpnAddr)
|
b := protoV4AddrPortToNetAddrPort(a)
|
||||||
|
if remoteAllowList.Allow(detailsVpnAddr, b.Addr()) {
|
||||||
|
punch(b, detailsVpnAddr)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, a := range n.Details.V6AddrPorts {
|
for _, a := range n.Details.V6AddrPorts {
|
||||||
punch(protoV6AddrPortToNetAddrPort(a), detailsVpnAddr)
|
b := protoV6AddrPortToNetAddrPort(a)
|
||||||
|
if remoteAllowList.Allow(detailsVpnAddr, b.Addr()) {
|
||||||
|
punch(b, detailsVpnAddr)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This sends a nebula test packet to the host trying to contact us. In the case
|
// This sends a nebula test packet to the host trying to contact us. In the case
|
||||||
|
|||||||
Reference in New Issue
Block a user