{ "id":"/axapi/v3/slb/template/dns/{name}", "type":"object", "node-type":"list", "title":"dns", "partition-visibility":"shared", "description":"DNS template", "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"DNS Template Name", "optional":false }, "default-policy":{ "type":"string", "format":"enum", "default":"nocache", "partition-visibility":"shared", "description":"'nocache': Cache disable; 'cache': Cache enable; ", "enum":[ "nocache", "cache" ], "optional":true }, "disable-dns-template":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Disable DNS template", "optional":true }, "period":{ "type":"number", "format":"number", "minimum":1, "maximum":10000, "partition-visibility":"shared", "description":"Period in minutes", "optional":true }, "drop":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"forward", "description":"Drop the malformed query", "optional":true }, "forward":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/service-group", "not":"drop", "description":"Forward to service group (Service group name)", "optional":true }, "max-query-length":{ "type":"number", "format":"number", "minimum":1, "maximum":4095, "partition-visibility":"shared", "description":"Define Maximum DNS Query Length, default is unlimited (Specify Maximum Length)", "optional":true }, "max-cache-entry-size":{ "type":"number", "format":"number", "minimum":1, "maximum":4096, "partition-visibility":"shared", "description":"Define maximum cache entry size (Maximum cache entry size per VIP)", "optional":true }, "max-cache-size":{ "type":"number", "format":"number", "platform-specific-range":1, "platform-specific-default":1, "partition-visibility":"shared", "description":"Define maximum cache size (Maximum cache entry per VIP)", "optional":true }, "enable-cache-sharing":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable DNS cache sharing", "optional":true }, "redirect-to-tcp-port":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Direct the client to retry with TCP for DNS UDP request", "optional":true }, "query-id-switch":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use DNS query ID to create sesion", "optional":true }, "dnssec-service-group":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/service-group", "description":"Use different service group if DNSSEC DO bit set (Service Group Name)", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Customized tag", "optional":true }, "class-list":{ "type":"object", "$ref":"/axapi/v3/slb/template/dns/{name}/class-list", "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"Specify a class list name" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" }, "lid-list":{ "type":"array", "minItems":1, "items":{ "type":"lid" }, "uniqueItems":true, "$ref":"/axapi/v3/slb/template/dns/{name}/class-list/lid/{lidnum}", "array":[ { "properties":{ "lidnum":{ "type":"number", "format":"number", "minimum":1, "maximum":1023, "partition-visibility":"shared", "description":"Specify a limit ID", "optional":false }, "conn-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":2147483647, "partition-visibility":"shared", "description":"Connection rate limit", "optional":true }, "per":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Per (Number of 100ms)", "optional":true }, "over-limit-action":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Action when exceeds limit", "optional":true }, "action-value":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'dns-cache-disable': Disable DNS cache when it exceeds limit; 'dns-cache-enable': Enable DNS cache when it exceeds limit; 'forward': Forward the traffic even it exceeds limit; ", "enum":[ "dns-cache-disable", "dns-cache-enable", "forward" ], "optional":true }, "lockout":{ "type":"number", "format":"number", "minimum":1, "maximum":1023, "partition-visibility":"shared", "description":"Don't accept any new connection for certain time (Lockout duration in minutes)", "optional":true }, "log":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Log a message", "optional":true }, "log-interval":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "partition-visibility":"shared", "description":"Log interval (minute, by default system will log every over limit instance)", "optional":true }, "dns":{ "type":"object", "properties":{ "cache-action":{ "type":"string", "format":"enum", "default":"cache-disable", "partition-visibility":"shared", "description":"'cache-disable': Disable dns cache; 'cache-enable': Enable dns cache; ", "enum":[ "cache-disable", "cache-enable" ] }, "ttl":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"TTL for cache entry (TTL in seconds)" }, "weight":{ "type":"number", "format":"number", "minimum":1, "maximum":7, "partition-visibility":"shared", "description":"Weight for cache entry" }, "honor-server-response-ttl":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Honor the server reponse TTL" } } }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Customized tag", "optional":true } }, "required":[ "lidnum" ] } ] } } }, "response-rate-limiting":{ "type":"object", "$ref":"/axapi/v3/slb/template/dns/{name}/response-rate-limiting", "properties":{ "response-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":1000, "default":5, "partition-visibility":"shared", "description":"Responses exceeding this rate within the window will be dropped (default 5 per second)" }, "filter-response-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":1000, "default":20, "partition-visibility":"shared", "description":"Maximum allowed request rate for the filter. This should match average traffic. (default 20 per two seconds)" }, "slip-rate":{ "type":"number", "format":"number", "minimum":2, "maximum":10, "partition-visibility":"shared", "description":"Every n'th response that would be rate-limited will be let through instead" }, "window":{ "type":"number", "format":"number", "minimum":1, "maximum":60, "default":1, "partition-visibility":"shared", "description":"Rate-Limiting Interval in Seconds (default is one)" }, "enable-log":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable logging" }, "action":{ "type":"string", "format":"enum", "default":"rate-limit", "partition-visibility":"shared", "description":"'log-only': Only log rate-limiting, do not actually rate limit. Requires enable-log configuration; 'rate-limit': Rate-Limit based on configuration (Default); 'whitelist': Whitelist, disable rate-limiting; ", "enum":[ "log-only", "rate-limit", "whitelist" ] }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "object-keys":[ "name" ], "required":[ "name" ] }