λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Computer Science/Linux (Ubuntu)

18 DNS μ„œλ²„

by Dowon Kang 2024. 2. 9.

λ„€μž„ μ„œλ²„(DNS: Domain Name System)λŠ” μΈν„°λ„·μ—μ„œ λ„메인 μ΄λ¦„을 IP μ£Όμ†Œλ‘œ λ³€ν™˜ν•˜κ³ , IP μ£Όμ†Œλ₯Ό λ„메인 μ΄λ¦„μœΌλ‘œ λ³€ν™˜ν•˜λŠ” μ—­ν• μ„ ν•©λ‹ˆλ‹€. μ¦‰, μ‚¬λžŒμ΄ μ΄ν•΄ν•  μˆ˜ μžˆλŠ” λ„메인 μ΄λ¦„을 μ»΄ν“¨ν„°κ°€ μ΄ν•΄ν•  μˆ˜ μžˆλŠ” IP μ£Όμ†Œλ‘œ λ§€ν•‘ν•˜μ—¬ μΈν„°λ„· μƒμ˜ μ„œλΉ„μŠ€μ— μ ‘속할 λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

 

λ„€μž„ μ„œλ²„μ˜ νŠΉμ§• 

  1. 도메인 μ΄λ¦„κ³Ό IP μ£Όμ†Œ κ°„μ˜ λ§€ν•‘:
  2. μΈν„°λ„·μ—μ„œ μ‰½κ²Œ μ•‘μ„ΈμŠ€ κ°€λŠ₯ν•œ μ„œλΉ„μŠ€:
  3. λ„€νŠΈμ›Œν¬μ˜ ꡬ쑰화와 관리:
  4. μ„œλΉ„μŠ€ ν™•μž₯μ„± 및 μœ μ—°μ„± 제곡:

λ”°λΌμ„œ λ„€μž„ μ„œλ²„λŠ” μΈν„°λ„·μ˜ ν•΅μ‹¬ κ΅¬μ„± μš”μ†Œ μ€‘ ν•˜λ‚˜λ‘œ, μ‚¬μš©μžκ°€ λ„메인 μ΄λ¦„을 μ‚¬μš©ν•˜μ—¬ μ›Ήμ‚¬μ΄νŠΈλ₯Ό λ°©λ¬Έν•˜κ³  μ΄λ©”일을 μ£Όκ³ λ°›μ„ μˆ˜ μžˆλ„둝 λ„μ™€μ€λ‹ˆλ‹€. λ˜ν•œ λ„€νŠΈμ›Œν¬μ˜ κ΅¬μ‘°ν™”와 κ΄€λ¦¬λ₯Ό μš©μ΄ν•˜κ²Œ ν•˜κ³ , μ„œλΉ„μŠ€μ˜ ν™•μž₯μ„±κ³Ό μœ μ—°μ„±μ„ μ œκ³΅ν•˜μ—¬ μΈν„°λ„·μ„ λ”μš± νš¨μœ¨μ μœΌλ‘œ κ΄€λ¦¬ν•˜κ³  μ΄μš©ν•  μˆ˜ μžˆλ„둝 ν•©λ‹ˆλ‹€.

 

 


 


λ„€μž„ μ„œλ²„λ₯Ό κ΅¬μΆ•ν•˜λŠ” κ³Όμ •

1) DNS μ„œλ²„ μ†Œν”„νŠΈμ›¨μ–΄ 선택: λ‹€μ–‘ν•œ DNS μ„œλ²„ μ†Œν”„νŠΈμ›¨μ–΄κ°€ μžˆμ§€λ§Œ, κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” 것 쀑 ν•˜λ‚˜λŠ” BIND(Berkeley Internet Name Domain)μž…λ‹ˆλ‹€. BINDλŠ” μ˜€ν”ˆ μ†ŒμŠ€λ‘œ 제곡되며, λŒ€λΆ€λΆ„μ˜ λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œμ— ν¬ν•¨λ˜μ–΄ μžˆκ±°λ‚˜ νŒ¨ν‚€μ§€ κ΄€λ¦¬μžλ₯Ό 톡해 μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

2) DNS μ„œλ²„ μ†Œν”„νŠΈμ›¨μ–΄ μ„€μΉ˜

sudo apt-get update
sudo apt-get install bind9

 

3) ꡬ성 파일 μˆ˜μ •: BIND의 μ£Όμš” ꡬ성 νŒŒμΌμ€ /etc/bind/named.confμž…λ‹ˆλ‹€. 이 νŒŒμΌμ„ νŽΈμ§‘ν•˜μ—¬ DNS μ„œλ²„μ˜ λ™μž‘μ„ μ‘°μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μΆ”κ°€μ μœΌλ‘œ, κ° λ„λ©”μΈμ˜ μ •λ³΄λ₯Ό μ €μž₯ν•˜λŠ” μ‘΄ νŒŒμΌ(zone file)도 κ΅¬μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ£Όλ‘œ /etc/bind λ””렉터리 λ‚΄μ— μ €μž₯λ©λ‹ˆλ‹€.

 

4) DNS μ‘΄ 파일 μž‘μ„±: 각 도메인에 λŒ€ν•œ 정보λ₯Ό μ €μž₯ν•˜λŠ” μ‘΄ νŒŒμΌμ„ μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이 νŒŒμΌμ€ λ„λ©”μΈμ˜ λ¦¬μ†ŒμŠ€ λ ˆμ½”λ“œλ₯Ό μ •μ˜ν•˜κ³  ν•΄λ‹Ή 도메인에 λŒ€ν•œ IP μ£Όμ†Œλ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 도메인 example.com에 λŒ€ν•œ μ‘΄ νŒŒμΌμ€ 보톡 /etc/bind/db.example.comκ³Ό 같은 μ΄λ¦„μœΌλ‘œ μ €μž₯λ©λ‹ˆλ‹€.

 

 

5) DNS μ„œλ²„ μž¬μ‹œμž‘: 섀정을 μ™„λ£Œν•œ ν›„μ—λŠ” BIND μ„œλΉ„μŠ€λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜μ—¬ λ³€κ²½ 사항을 μ μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

sudo systemctl restart bind9

 

6) DNS μ„œλ²„ 포트 개방: DNS μ„œλ²„μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ λ°©ν™”λ²½μ—μ„œ DNS 포트(기본적으둜 53번 포트)λ₯Ό μ—΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.

sudo ufw allow 53

 

μ΄λŸ¬ν•œ λ‹¨κ³„λ₯Ό κ±°μΉ˜λ©΄ DNS μ„œλ²„κ°€ κ΅¬μΆ•λ˜μ–΄ ν•΄λ‹Ή μ„œλ²„κ°€ λ„메인 μ΄λ¦„을 IP μ£Όμ†Œλ‘œ λ³€ν™˜ν•˜κ±°λ‚˜ IP μ£Όμ†Œλ₯Ό λ„메인 μ΄λ¦„μœΌλ‘œ λ³€ν™˜ν•˜λŠ” μ—­ν• μ„ μˆ˜ν–‰ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. DNS μ„œλ²„λŠ” μΈν„°λ„·μ„ μ‚¬μš©ν•˜λŠ” λͺ¨λ“  λ””λ°”μ΄μŠ€μ— ν•„μš”ν•œ ν•΅μ‹¬μ μΈ μ„œλΉ„μŠ€ μ€‘ ν•˜λ‚˜μž…λ‹ˆλ‹€.

 



도메인 이름 체계

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚            루트 도메인(.)         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β–Ό                     β–Ό
  μƒμœ„ μˆ˜μ€€ 도메인(TLD)    μƒμœ„ μˆ˜μ€€ 도메인(TLD)
   (.com, .net, .org)       (.kr, .uk, .us)
         β”‚                     β”‚
  β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β–Ό            β–Ό            β–Ό            β–Ό
도메인        도메인          도메인         도메인
(.example)  (.example)     (.example)    (.example)

 

1) 루트(μ΅œμƒμœ„) 도메인\

  • 루트 도메인은 κ°€μž₯ 높은 μˆ˜μ€€μ˜ 도메인이며, 전체 도메인 이름 μ²΄κ³„μ˜ μ΅œμƒμœ„μ— μœ„μΉ˜ν•©λ‹ˆλ‹€.
  • 루트 λ„메인은 λ§ˆμΉ¨ν‘œ(".")둜 ν‘œμ‹œλ˜λ©°, μΈν„°λ„·μ—μ„œ μ‚¬μš©λ˜λŠ” λͺ¨λ“  λ„λ©”μΈμ˜ κΈ°λ°˜μ΄ λ©λ‹ˆλ‹€.

 

2) μƒμœ„ μˆ˜μ€€ 도메인(TLD: Top-Level Domain)

  • μƒμœ„ μˆ˜μ€€ 도메인은 루트 도메인 μ•„λž˜μ— μœ„μΉ˜ν•˜λ©°, 주둜 κ΅­κ°€ μ½”λ“œ(TLD)와 일반(TLD)으둜 λ‚˜λ‰©λ‹ˆλ‹€.
  • κ΅­κ°€ μ½”λ“œ(TLD)λŠ” 각 λ‚˜λΌλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 두 자리 κ΅­κ°€ μ½”λ“œλ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, "kr"은 ν•œκ΅­μ„ λ‚˜νƒ€λ‚΄λŠ” κ΅­κ°€ μ½”λ“œμž…λ‹ˆλ‹€.
  • 일반(TLD)은 주둜 κΈ°μ—…, 쑰직, ν™œλ™ 등을 λ‚˜νƒ€λ‚΄λŠ” λ„λ©”μΈμœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, "com", "net", "org" 등이 일반 TLDμž…λ‹ˆλ‹€.

3) 이름 μ„œλ²„(Nameserver)

  • 이름 μ„œλ²„λŠ” 도메인 이름과 ν•΄λ‹Ή 도메인에 λŒ€ν•œ IP μ£Όμ†Œλ₯Ό λ§€ν•‘ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
  • 도메인 μ΄λ¦„을 μš”μ²­ν•˜λ©΄ μ΄λ¦„ μ„œλ²„λŠ” ν•΄λ‹Ή λ„λ©”μΈμ˜ IP μ£Όμ†Œλ₯Ό λ°˜ν™˜ν•˜μ—¬ μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μ›Ήμ‚¬μ΄νŠΈλ‚˜ μ„œλΉ„μŠ€μ— μ•‘μ„ΈμŠ€ν•  μˆ˜ μžˆλ„둝 ν•©λ‹ˆλ‹€.
  • 이름 μ„œλ²„λŠ” μΌλ°˜μ μœΌλ‘œ ν•΄λ‹Ή λ„메인을 λ“±λ‘ν•œ λ„메인 λ“±λ‘ κΈ°κ΄€μ—μ„œ κ΄€λ¦¬λ©λ‹ˆλ‹€.

4) ν•˜μœ„ μˆ˜μ€€ 도메인(Subdomain)

  • ν•˜μœ„ μˆ˜μ€€ 도메인은 μƒμœ„ μˆ˜μ€€ 도메인 μ•„λž˜μ— μœ„μΉ˜ν•˜λ©°, 도메인 이름을 λ”μš± κ΅¬μ²΄ν™”ν•˜κ³  λΆ„λ₯˜ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
  • 예λ₯Ό λ“€μ–΄, "blog.example.com"κ³Ό κ°™μ΄ "example.com" λ„λ©”μΈμ˜ ν•˜μœ„ μˆ˜μ€€ λ„메인인 "blog"κ°€ μžˆμ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ κ³„μΈ΅ κ΅¬μ‘°λ₯Ό ν†΅ν•΄ κ° λ„메인 μ΄λ¦„이 μ„œλ‘œ κ΄€λ ¨λ˜μ–΄ μžˆμŒμ„ μ•Œ μˆ˜ μžˆμœΌλ©°, μΈν„°λ„·μ—μ„œ λ„메인 μ΄λ¦„을 μ‚¬μš©ν•˜μ—¬ μ„œλΉ„μŠ€μ— μ ‘속할 λ•Œ ν•΄λ‹Ή λ„λ©”μΈμ˜ IP μ£Όμ†Œλ₯Ό μ°Ύμ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

'Computer Science > Linux (Ubuntu)' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

19 Servers  (1) 2024.02.11
17 ν…”λ„·(Telnet), OpenSSH  (0) 2024.02.09
16 μΏΌν„°(quota)  (1) 2024.02.09
15 RAID, LVM  (0) 2024.02.09
14 ν•˜λ“œλ””μŠ€ν¬ μž₯μ°© (SCSI)  (1) 2024.02.09

λŒ“κΈ€