idnits 2.17.1 draft-sonoda-dnsop-dnslb-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 6 instances of lines with non-RFC2606-compliant FQDNs in the document. -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 209: '... Full resolver MUST re-resolv the ei...' RFC 2119 keyword, line 216: '... SHOULD gets from config file. Full...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (January 22, 2018) is 2285 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- No issues found here. Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Domain Name System Operations Sonoda, Ed. 3 Internet-Draft Internet Initiative Japan Inc. 4 Intended status: Informational January 22, 2018 5 Expires: July 26, 2018 7 DNS load balancing 8 draft-sonoda-dnsop-dnslb-00 10 Abstract 12 This document defines a new DNS base load balancing function. 14 Status of This Memo 16 This Internet-Draft is submitted in full conformance with the 17 provisions of BCP 78 and BCP 79. 19 Internet-Drafts are working documents of the Internet Engineering 20 Task Force (IETF). Note that other groups may also distribute 21 working documents as Internet-Drafts. The list of current Internet- 22 Drafts is at https://datatracker.ietf.org/drafts/current/. 24 Internet-Drafts are draft documents valid for a maximum of six months 25 and may be updated, replaced, or obsoleted by other documents at any 26 time. It is inappropriate to use Internet-Drafts as reference 27 material or to cite them other than as "work in progress." 29 This Internet-Draft will expire on July 26, 2018. 31 Copyright Notice 33 Copyright (c) 2018 IETF Trust and the persons identified as the 34 document authors. All rights reserved. 36 This document is subject to BCP 78 and the IETF Trust's Legal 37 Provisions Relating to IETF Documents 38 (https://trustee.ietf.org/license-info) in effect on the date of 39 publication of this document. Please review these documents 40 carefully, as they describe your rights and restrictions with respect 41 to this document. Code Components extracted from this document must 42 include Simplified BSD License text as described in Section 4.e of 43 the Trust Legal Provisions and are provided without warranty as 44 described in the Simplified BSD License. 46 1. Introduction and Background 48 This document defines a new DNS load balance function that is able to 49 transfer information in zone transfer and not need online signing. 51 DNS base load balance is popluer technology. It provides weight base 52 response and location base response. It have become an indispensable 53 part of traffic engineering. 55 However, DNS base load balance can't transfer load balance 56 information in zone transfer and need online sigining because it is 57 not standardized. 59 This document defines a new DNS resource record called "LB" and new 60 EDNS option bit called "LS". LB RR provides the balancing 61 information wieght, location and target domain name. LS bit provides 62 the change response mechanism in name servers. 64 2. Mechanism 66 1. Stub resolver sends A or AAAA query to full resolver. 68 2. Full Resolver sends A or AAAA query with LS bit to authoritative 69 server. 71 3. Authoritative Server responses LB RRset. 73 4. Full Resolver selects target domaoin name using location 74 information and weight information. 76 5. Full Resolver resolv target domaoin name. 78 6. Full Resolver response target domaoin name and LB RRSet to stub 79 resolver. 81 3. The LB Resource Record 83 The LB RR has mnemonic LB. LB RR define load balancing information. 85 LB format below. 87 LB 89 The format is not class-sensitive. All fields are required. 91 field is a 2 octets, 1 or more natural number. 93 field is a "" [RFC1035]. 95 field is a "" [RFC1035]. It has A or AAAA RR 96 or CNAME RR or DNAME RR. 98 3.1. Define location 100 ::= "*" | | | 101 | | 103 ::= "AF" | "AN" | "AS" | "EU" | "NA" | "OC" | "SA" 105 ::= ISO 3166-1 alpha-2 Country code. 107 ::= ISO 3166-2 Codes for the representation of 108 names of countries and their subdivisions. 110 ::= "AS" [ ":" ] 112 ::= "+" 114 ::= 116 ::= any one of the ten digits 1 through 9 118 ::= any one of the ten digits 0 through 9 120 ::= any one of the 26 alphabetic characters A through Z in 121 upper case or any one of the ten digits 0 through 9. 123 3.2. Record example 125 ; for any region. 126 example.jp. 3600 IN LB 1 * www.example.com. 127 ; for AP region. 128 example.jp. 3600 IN LB 1 AP ap.example.com. 129 ; for JP region, weight 1. 130 example.jp. 3600 IN LB 1 JP jp1.example.jp. 131 ; for JP region, weight 3. 132 example.jp. 3600 IN LB 3 JP jp2.example.jp. 133 ; for tokyo region. (JP-13 is tokyo region ISO 3166-2:JP) 134 example.jp. 3600 IN LB 1 JP-13 tokyo.example.jp. 135 ; for AS2497 136 example.jp. 3600 IN LB 1 AS2496 as2497.example.jp. 137 ; for AS2497 138 example.jp. 3600 IN LB 1 AS2496:1 as2497.example.jp. 139 ; private use 140 example.jp. 3600 IN LB 1 +BEER beer.example.jp. 142 4. The LB Support Flag 144 Defines a new "EDNS Header Flags" [RFC6891] call LB Support Flag(LS) 145 using full resolver sends LB RR supported to authoritative server. 147 LS bit provides change response mechanism in authoritative name 148 server. If LS bit is flagged, Authoritative name server can response 149 LB RR for A,AAAA query. 151 5. Authoritative name server Behavior 153 When authoritative name server receives a query of type A or AAAA 154 with LS bit and LB record is present at a sname, The authoritative 155 server returns the LB RRSet in the answer section with LS bit. 157 5.1. Example of authoritative name server behavior 159 Example zone data: 161 example.jp. 3600 IN SOA ( ns1.example.com. 162 postmaster.example.com. 163 1 164 3600 165 900 166 1814400 167 900 ) 168 example.jp. 3600 IN NS ns1.example.com. 169 example.jp. 3600 IN NS ns2.example.com. 170 example.jp. 3600 IN A 198.51.100.1 171 example.jp. 3600 IN LB 1 * www.example.com. 172 example.jp. 3600 IN LB 1 JP jp1.example.com. 173 example.jp. 3600 IN LB 3 JP jp2.example.com. 175 Incomming query with LS bit: 177 query: qtype = example.jp. qtype=A, LS=1 179 Response for include LS: 181 query: qtype = example.jp. qtype=A 182 response: LS=1 183 answer: 184 example.jp. 3600 IN LB 1 * www.example.com. 185 example.jp. 3600 IN LB 1 JP jp1.example.com. 186 example.jp. 3600 IN LB 3 JP jp2.example.com. 187 authority: 188 example.jp. 3600 IN NS ns1.example.com. 189 example.jp. 3600 IN NS ns2.example.com. 191 Incomming query without LS bit (normal query): 193 query: qtype = example.jp. qtype=A, LS=0 195 Response for not include LS: 197 query: qtype = example.jp. qtype=A 198 response: LS=0 199 answer: 200 example.jp. 3600 IN A 198.51.100.1 201 authority: 202 example.jp. 3600 IN NS ns1.example.com. 203 example.jp. 3600 IN NS ns2.example.com. 205 6. Full Service Resolver Behavior 207 When a full resulver sends a query of type A or AAAA with LS bit and 208 recives a response with a LB RRset in the answer section with LS bit, 209 Full resolver MUST re-resolv the either LB of type "STYPE" 210 [RFC1034]. be selected by and . 212 6.1. Location selection 214 Location selection needs full resolver or stub resolver location 215 information. Full resolver location informations with priority value 216 SHOULD gets from config file. Full resolver MUST setting '*' 217 location with lowest priority. Full resolver select location that 218 match either LB RR and highest priority resolver location. 219 if all LB RRs don't matche all resolver locations, resolver selects a 220 location randomly. 222 6.2. Weight selection 224 Full resolver selects using from LB RR whose 225 location matches. 227 6.3. Example 229 1. Full resolver's location is configured "JP-13" "JP" "AS" "*". 231 2. Stub resolver query comming: 233 query: qtype = example.jp. qtype=A 235 3. Full resolver send query: 237 query: qtype = example.jp. qtype=A, LS=1 239 3. If response include LB RRSets: 241 query: qtype = example.jp. qtype=A 242 response: LS=1 243 answer: 244 example.jp. 3600 IN LB 1 * www.example.com. 245 example.jp. 3600 IN LB 1 JP jp1.example.com. 246 example.jp. 3600 IN LB 3 JP jp2.example.com. 247 authority: 248 example.jp. 3600 IN NS ns1.example.com. 249 example.jp. 3600 IN NS ns2.example.com. 251 4. select LB RR that's location include resolver location: 253 example.jp. 3600 IN LB 1 JP jp1.example.com. 254 example.jp. 3600 IN LB 3 JP jp2.example.com. 256 5. Select one using : 258 example.jp. 3600 IN LB 3 JP jp2.example.com. 260 5. Name resolution : 262 query: qtype = jp2.example.com. qtype=A, LS=1 263 response: 264 answer: 265 jp2.example.com. 3600 IN A 192.0.2.2 266 authority: 267 example.com. 3600 IN NS ns1.example.com. 268 example.com. 3600 IN NS ns2.example.com. 270 6. Make response message: 272 query: qtype = example.jp. qtype=A, LS=1 273 response: 274 answer: 275 example.jp. 3600 IN LB 1 * www.example.com. 276 example.jp. 3600 IN LB 1 JP jp1.example.com. 277 example.jp. 3600 IN LB 3 JP jp2.example.com. 278 jp2.example.com. 3600 IN A 192.0.2.2 279 authority: 280 example.jp. 3600 IN NS ns1.example.com. 281 example.jp. 3600 IN NS ns2.example.com. 283 7. Stub resolver uses 192.0.2.2 285 7. IANA Considerations 287 IANA is requested to assign a DNS RR data type value for the LB RR 288 type under the "Resource Record (RR) TYPEs" subregistry and a EDNS 289 Header Flag value for the LB Support Flag under the "EDNS Header 290 Flags (16 bits)" subregistry under the "Domain Name System (DNS) 291 Parameters" registry. 293 8. Security Considerations 295 Both authoritative server and resolvers that implement LB SHOUD 296 carefully check for loops. 298 9. Normative References 300 [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", 301 STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, 302 . 304 [RFC1035] Mockapetris, P., "Domain names - implementation and 305 specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, 306 November 1987, . 308 [RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms 309 for DNS (EDNS(0))", STD 75, RFC 6891, 310 DOI 10.17487/RFC6891, April 2013, 311 . 313 Author's Address 315 Manabu Sonoda (editor) 316 Internet Initiative Japan Inc. 318 Email: manbabu-s@iij.ad.jp