update cloudflare edge discovery to static ip
This commit is contained in:
parent
7ae1d4668e
commit
dc1a8589c3
|
@ -116,38 +116,20 @@ func edgeDiscovery(log *zerolog.Logger, srvService string) ([][]*EdgeAddr, error
|
|||
Str("domain", "_"+srvService+"._"+srvProto+"."+srvName).
|
||||
Msg("edge discovery: looking up edge SRV record")
|
||||
|
||||
_, addrs, err := netLookupSRV(srvService, srvProto, srvName)
|
||||
if err != nil {
|
||||
_, fallbackAddrs, fallbackErr := fallbackLookupSRV(srvService, srvProto, srvName)
|
||||
if fallbackErr != nil || len(fallbackAddrs) == 0 {
|
||||
// use the original DNS error `err` in messages, not `fallbackErr`
|
||||
logger.Err(err).Msg("edge discovery: error looking up Cloudflare edge IPs: the DNS query failed")
|
||||
for _, s := range friendlyDNSErrorLines {
|
||||
logger.Error().Msg(s)
|
||||
}
|
||||
return nil, errors.Wrapf(err, "Could not lookup srv records on _%v._%v.%v", srvService, srvProto, srvName)
|
||||
}
|
||||
// Accept the fallback results and keep going
|
||||
addrs = fallbackAddrs
|
||||
// Return a static IP address and port
|
||||
staticAddr1 := &EdgeAddr{
|
||||
TCP: &net.TCPAddr{IP: net.ParseIP("127.0.0.1"), Port: 3333},
|
||||
UDP: &net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 3333},
|
||||
IPVersion: V4,
|
||||
}
|
||||
|
||||
var resolvedAddrPerCNAME [][]*EdgeAddr
|
||||
for _, addr := range addrs {
|
||||
edgeAddrs, err := resolveSRV(addr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
logAddrs := make([]string, len(edgeAddrs))
|
||||
for i, e := range edgeAddrs {
|
||||
logAddrs[i] = e.UDP.IP.String()
|
||||
}
|
||||
logger.Debug().
|
||||
Strs("addresses", logAddrs).
|
||||
Msg("edge discovery: resolved edge addresses")
|
||||
resolvedAddrPerCNAME = append(resolvedAddrPerCNAME, edgeAddrs)
|
||||
staticAddr2 := &EdgeAddr{
|
||||
TCP: &net.TCPAddr{IP: net.ParseIP("127.0.0.1"), Port: 3333},
|
||||
UDP: &net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 3333},
|
||||
IPVersion: V4,
|
||||
}
|
||||
|
||||
return resolvedAddrPerCNAME, nil
|
||||
return [][]*EdgeAddr{{staticAddr1, staticAddr2}}, nil
|
||||
}
|
||||
|
||||
func lookupSRVWithDOT(srvService string, srvProto string, srvName string) (cname string, addrs []*net.SRV, err error) {
|
||||
|
|
|
@ -24,12 +24,8 @@ func ResolveEdge(log *zerolog.Logger, region string, overrideIPVersion ConfigIPV
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(edgeAddrs) < 2 {
|
||||
return nil, fmt.Errorf("expected at least 2 Cloudflare Regions regions, but SRV only returned %v", len(edgeAddrs))
|
||||
}
|
||||
return &Regions{
|
||||
region1: NewRegion(edgeAddrs[0], overrideIPVersion),
|
||||
region2: NewRegion(edgeAddrs[1], overrideIPVersion),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue