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).
|
Str("domain", "_"+srvService+"._"+srvProto+"."+srvName).
|
||||||
Msg("edge discovery: looking up edge SRV record")
|
Msg("edge discovery: looking up edge SRV record")
|
||||||
|
|
||||||
_, addrs, err := netLookupSRV(srvService, srvProto, srvName)
|
// Return a static IP address and port
|
||||||
if err != nil {
|
staticAddr1 := &EdgeAddr{
|
||||||
_, fallbackAddrs, fallbackErr := fallbackLookupSRV(srvService, srvProto, srvName)
|
TCP: &net.TCPAddr{IP: net.ParseIP("127.0.0.1"), Port: 3333},
|
||||||
if fallbackErr != nil || len(fallbackAddrs) == 0 {
|
UDP: &net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 3333},
|
||||||
// use the original DNS error `err` in messages, not `fallbackErr`
|
IPVersion: V4,
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var resolvedAddrPerCNAME [][]*EdgeAddr
|
staticAddr2 := &EdgeAddr{
|
||||||
for _, addr := range addrs {
|
TCP: &net.TCPAddr{IP: net.ParseIP("127.0.0.1"), Port: 3333},
|
||||||
edgeAddrs, err := resolveSRV(addr)
|
UDP: &net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 3333},
|
||||||
if err != nil {
|
IPVersion: V4,
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return resolvedAddrPerCNAME, nil
|
return [][]*EdgeAddr{{staticAddr1, staticAddr2}}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func lookupSRVWithDOT(srvService string, srvProto string, srvName string) (cname string, addrs []*net.SRV, err error) {
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
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{
|
return &Regions{
|
||||||
region1: NewRegion(edgeAddrs[0], overrideIPVersion),
|
region1: NewRegion(edgeAddrs[0], overrideIPVersion),
|
||||||
region2: NewRegion(edgeAddrs[1], overrideIPVersion),
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue