Browse code

Enable recursion by default for start commands

Does not change the default behavior.

Clayton Coleman authored on 2016/05/03 00:40:15
Showing 4 changed files
... ...
@@ -177,7 +177,7 @@ func (c *MasterConfig) RunDNSServer() {
177 177
 		glog.Fatalf("Could not start DNS: %v", err)
178 178
 	}
179 179
 	if port != "53" {
180
-		glog.Warningf("Binding DNS on port %v instead of 53 (you may need to run as root and update your config), using %s which will not resolve from all locations", port, c.Options.DNSConfig.BindAddress)
180
+		glog.Warningf("Binding DNS on port %v instead of 53, which may not be resolvable from all clients", port)
181 181
 	}
182 182
 
183 183
 	if ok, err := cmdutil.TryListen(c.Options.DNSConfig.BindNetwork, c.Options.DNSConfig.BindAddress); !ok {
... ...
@@ -101,7 +101,7 @@ func NewDefaultMasterArgs() *MasterArgs {
101 101
 		MasterAddr:       flagtypes.Addr{Value: "localhost:8443", DefaultScheme: "https", DefaultPort: 8443, AllowPrefix: true}.Default(),
102 102
 		EtcdAddr:         flagtypes.Addr{Value: "0.0.0.0:4001", DefaultScheme: "https", DefaultPort: 4001}.Default(),
103 103
 		MasterPublicAddr: flagtypes.Addr{Value: "localhost:8443", DefaultScheme: "https", DefaultPort: 8443, AllowPrefix: true}.Default(),
104
-		DNSBindAddr:      flagtypes.Addr{Value: "0.0.0.0:53", DefaultScheme: "tcp", DefaultPort: 53, AllowPrefix: true}.Default(),
104
+		DNSBindAddr:      flagtypes.Addr{Value: "0.0.0.0:8053", DefaultScheme: "tcp", DefaultPort: 8053, AllowPrefix: true}.Default(),
105 105
 
106 106
 		ConfigDir: &util.StringFlag{},
107 107
 
... ...
@@ -209,6 +209,8 @@ func (args MasterArgs) BuildSerializeableMasterConfig() (*configapi.MasterConfig
209 209
 		DNSConfig: &configapi.DNSConfig{
210 210
 			BindAddress: dnsServingInfo.BindAddress,
211 211
 			BindNetwork: dnsServingInfo.BindNetwork,
212
+
213
+			AllowRecursiveQueries: true,
212 214
 		},
213 215
 
214 216
 		MasterClients: configapi.MasterClients{
... ...
@@ -538,7 +540,7 @@ func (args MasterArgs) GetDNSBindAddress() (flagtypes.Addr, error) {
538 538
 	if args.DNSBindAddr.Provided {
539 539
 		return args.DNSBindAddr, nil
540 540
 	}
541
-	dnsAddr := flagtypes.Addr{Value: args.ListenArg.ListenAddr.Host, DefaultPort: 53}.Default()
541
+	dnsAddr := flagtypes.Addr{Value: args.ListenArg.ListenAddr.Host, DefaultPort: args.DNSBindAddr.DefaultPort}.Default()
542 542
 	return dnsAddr, nil
543 543
 }
544 544
 
... ...
@@ -206,13 +206,6 @@ func (o *AllInOneOptions) Complete() error {
206 206
 	o.NodeArgs.NodeName = strings.ToLower(o.NodeArgs.NodeName)
207 207
 	o.NodeArgs.MasterCertDir = o.MasterOptions.MasterArgs.ConfigDir.Value()
208 208
 
209
-	// in the all-in-one, default ClusterDNS to the master's address
210
-	if host, _, err := net.SplitHostPort(masterAddr.Host); err == nil {
211
-		if ip := net.ParseIP(host); ip != nil {
212
-			o.NodeArgs.ClusterDNS = ip
213
-		}
214
-	}
215
-
216 209
 	return nil
217 210
 }
218 211
 
... ...
@@ -227,7 +227,7 @@ func TestDNS(t *testing.T) {
227 227
 		},
228 228
 		{
229 229
 			dnsQuestionName:   "www.google.com.",
230
-			recursionExpected: false,
230
+			recursionExpected: true,
231 231
 		},
232 232
 	}
233 233
 	for i, tc := range tests {
... ...
@@ -236,7 +236,7 @@ func TestDNS(t *testing.T) {
236 236
 			qType = dns.TypeSRV
237 237
 		}
238 238
 		m1 := &dns.Msg{
239
-			MsgHdr:   dns.MsgHdr{Id: dns.Id(), RecursionDesired: false},
239
+			MsgHdr:   dns.MsgHdr{Id: dns.Id(), RecursionDesired: tc.recursionExpected},
240 240
 			Question: []dns.Question{{tc.dnsQuestionName, qType, dns.ClassINET}},
241 241
 		}
242 242
 		ch := make(chan struct{})