mirror of
https://github.com/coredns/coredns.git
synced 2025-10-28 16:54:15 -04:00
Allow cidr based reverse zone config (#500)
* add cidrs opt * remove state data from middleware object
This commit is contained in:
committed by
John Belamaric
parent
3a04d2a306
commit
8beb1b2166
@@ -5,6 +5,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -41,6 +42,7 @@ type Kubernetes struct {
|
||||
LabelSelector *unversionedapi.LabelSelector
|
||||
Selector *labels.Selector
|
||||
PodMode string
|
||||
ReverseCidrs []net.IPNet
|
||||
}
|
||||
|
||||
const (
|
||||
@@ -128,6 +130,16 @@ func (k *Kubernetes) Reverse(state request.Request, exact bool, opt middleware.O
|
||||
return records, nil, nil
|
||||
}
|
||||
|
||||
func (k *Kubernetes) IsRequestInReverseRange(state request.Request) bool {
|
||||
ip := dnsutil.ExtractAddressFromReverse(state.Name())
|
||||
for _, c := range k.ReverseCidrs {
|
||||
if c.Contains(net.ParseIP(ip)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Lookup implements the ServiceBackend interface.
|
||||
func (k *Kubernetes) Lookup(state request.Request, name string, typ uint16) (*dns.Msg, error) {
|
||||
return k.Proxy.Lookup(state, name, typ)
|
||||
|
||||
Reference in New Issue
Block a user