μ λ΄νμ§λ§ μκ·λͺ¨ μ μ§ κ΄λ¦¬ νμ΄ μλ μ€ν μμ€ νλ‘μ νΈλ‘μ λ¬Έμ λ₯Ό ν΄κ²°νλ λ° μκ°μ΄ μ€λ 걸릴 μ μμΌλ―λ‘ μΈλ΄μ¬μ κ°κ³ μ΅λν 빨리 μ°λ½λλ¦¬κ² μ΅λλ€.
λ‘컬 λλ©μΈμ λ λ§μ΄ μ μ΄νκ³ μΆμ΅λλ€. μ΄κ²μ νμ¬ lan
νλ μ½λ©λμ΄ μμ΅λλ€. #2393λ μ°Έμ‘°νμμμ€.
λν dhcpv4
νλ μ΅μ
μ λν ip
λλ hex
μꡬ μ¬νμ΄ νΌλμ€λ½μ΅λλ€. μ΄κ²μ μ«μ κ°/μ΅μ
λ§ μ€μ ν μ μμ΅λλ€. DHCP options/RFC2132 μ μ΅μ
15λ₯Ό μ¬μ©νμ¬ DHCP ν΄λΌμ΄μΈνΈμ λλ©μΈμ λΈλ‘λμΊμ€νΈνλ €κ³ νμ§λ§ lan
λ¬Έμμ΄μ μ€μ ν μ μλ λ°©λ²μ΄ μμ΅λλ€. ASCII/UTF-8 μ½λ ν¬μΈνΈλ‘ μλνμ§λ§ ꡬ문 λΆμ λ°©λ²μ κ³ λ €ν λ μλ―Έκ° μμ΅λλ€.
int λ§ λ°ννλ κ² κ°μ΅λκΉ?
μ΄ μμ μμ μ΄κ²μ λ΄ λ₯λ ₯ μμ€μ ν¨μ¬ λ°μ΄ λμ΅λλ€.
dnsmasq
μ μ μ¬ν dhcpv4
νλμ λ λ§μ μ΅μ
μ μΆκ°ν©λλ€. μ΄ μν μ€μ μ
νμ¬ AGHλ₯Ό DHCP λ° DNS μλ²λ‘ μ¬μ©ν λ lan
λ‘컬 λλ©μΈμ΄ μ μλν©λλ€. κ·Έλ¬λ local_machine.lan
λν 쿼리λ AGHμμ λ‘μ»¬λ‘ μ ννκ² μλ΅νμ§λ§ λ΄ μ€μ μ μ
μ€νΈλ¦Ό μΈν°λ· μλ²μλ μ λ¬ λ©λλ€. μ΄κ²μ μ½κ° νΌλμ€λ½μ΅λλ€. [/lan/]192.168.0.2
, μ¬κΈ°μ 192.168.0.2
λ AGH μμ€ν
μ£Όμλ₯Ό μ
μ€νΈλ¦Ό DNS μλ² λͺ©λ‘μ μΆκ°νλ©΄ μ΄ λ¬Έμ κ° ν΄κ²°λ©λλ€. μμ²μ΄ λ μ΄μ μ λ¬λμ§ μμ΅λλ€. 0.0.0.0
λλ 127.0.0.1
λ μλνμ§λ§ μ¬κΈ°μ 무μμ νκ³ μλμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. μ μ΄λ κ·Έλ€μ λ μ΄μ "λμΆ"λμ§ μμ΅λλ€. #2582λ μ°Έμ‘°νμμμ€.
λΆμμ©μΌλ‘ λ€μκ³Ό κ°μ΄ μ μ§νκ³ κ²°κ΅ μκ°μ΄ μ΄κ³Όλ©λλ€.
# Before, *without* [/lan/] filter
$ host local_machine.lan
local_machine.lan has address 192.168.0.50 # IMMEDIATE
Host local_machine.lan not found: 3(NXDOMAIN) # Almost immediate
# ^ NXDOMAIN from upstream internet DNS server.
# Of course it doesn't know that domain.
# Now *with* the custom [/lan/] upstream DNS in place:
$ host local_machine.lan
local_machine.lan has address 192.168.0.50 # Again, IMMEDIATE
;; connection timed out; no servers could be reached # 10s, then timeout
μλ‘μ΄ [/lan/]
κ° μμΌλ©΄ ssh
μ κ°μ κ²μ μ¬μ ν ββμ¦μ μλν©λλ€. 첫 λ²μ§Έ IPκ° λμ°©ν ν μ€νλκΈ° λλ¬Έμ
λλ€.
dnsmasq
-like local
λͺ
λ Ήμ μ¬μ©ν μ μμ΅λκΉ? μν μ€μ μ λν μμ λ§ν¬λ₯Ό μ°Έμ‘°νμμμ€. /etc/dnsmasq.conf
μμ λͺ
λ Ή
local=/mydomain/
μ λ μΈλΆλ‘ μ μΆλμ§ μμ΅λλ€. μλ²½ν! κ²λ€κ°,
domain=mydomain
μλ€λ κ²μ λλΌμ΄ μΌμ
λλ€. domain-needed
-λ±κ°λ¬Όμ λμ§ μ μμ΅λκΉ?
μ΄ μμ μμ #2514μ κ°μ μ€μ μ μ€νν μ μμ΅λλ€. λͺ¨λ dnsmasq
-λλ±ν μ΅μ
μ΄ νμν κ²½μ° DNS+DHCP dnsmasq
μλ²λ₯Ό κΈ°λ³Έ μλ²λ‘ μ€ννκΈ°λ§ νλ©΄ λ©λλ€. μ¬κΈ°μμ AGH μΈμ€ν΄μ€(DHCP μμ)λ₯Ό μ μΌν μ
μ€νΈλ¦Ό DNSλ‘ μ€μ ν©λλ€. μ μλν΄μΌ ν©λλ€. λ¨μ§ λ λ§μ κ²λ€μ΄ νμν©λλ€. μλ₯Ό λ€μ΄, ν μ»΄ν¨ν°μμ μ€ννλ κ²½μ° AGHλ 53κ³Ό λ€λ₯Έ ν¬νΈκ° νμν©λλ€. network_mode: host
μ€ννμ§ μμΌλ©΄ μΆ©λΆν μ½μ΅λλ€. DHCPλ₯Ό μ¬μ©νλ κ²½μ°μλ§ νμν©λλ€. κ·Έλ¬λ μ΄ μ€μ μ ν΄λΉ λ¬Έμ μ μ€λͺ
λ λλ‘ add-mac
/ add-subnet
"νμ"ν©λλ€.
μ΄λ―Έ μ§μ νλ―μ΄ λ‘컬 λλ©μΈμ ꡬμ±μ μ΄λ―Έ κ³νλμ΄ μμΌλ©° μ΅μ ꡬ문λ κ°μ λμμ΅λλ€. νμ¬ κ²°ν¨μ΄ μλ μ΅μ ꡬ문μΌλ‘ μ΅μ μ μ€μ νλ λ°©λ²μ λν μλ #2385 λ° [μ΄ μ£Όμ]μ μ°Έμ‘°νμμμ€.
μ μ€νΈλ¦Όμ λ‘컬 λλ©μΈ μμ²μ μ λ¬νμ§λ§ λ²κ·Έμ΄λ©°, μ°λ¦¬λ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μ κ³ κ°μ¬ν©λλ€!
μ μ€νΈλ¦Όμ λ‘컬 λλ©μΈ μμ²μ μ λ¬νμ§λ§ λ²κ·Έμ΄λ©°, μ°λ¦¬λ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μ κ³ κ°μ¬ν©λλ€!
κ°μ¬ ν΄μ! μ΄ λ¬Έμ λ μ£Όλ‘ λ€λ₯Έ λ¬Έμ μ κ΄ν κ²μ΄λ―λ‘ μ΄μ λν μ μ© λ¬Έμ λ₯Ό μνμλ©΄ μλ €μ£Όμμμ€. λν μ΄ λ¬Έμ λ 볡μ ν μ μμ λ§νΌ μ¬μμΌ νμ§λ§ μΆκ° μ λ³΄κ° νμν κ²½μ° μλ €μ£Όμμμ€.
hostname.lan
λ₯Ό μ¬μ©νμ¬ λ‘컬 μμ€ν
μ 쿼리ν©λλ€(μ dig
hex
μ¬μ©μ λν κ·νμ μ견μ λν λ§ν¬λ μν©μ λͺ
ννκ² νμ§λ§ κ·Έκ²μ΄ μ΄λ»κ² μλνλμ§ μκ³ μμμ΅λλ€. λ΄κ° κ²ͺκ³ μλ λ¬Έμ λ DHCPμ λν μ΅μ
15κ° int/numberκ° μλ λ¬Έμμ΄μ΄λΌλ κ²μ
λλ€. λ΄κ° λ³Ό μμλ ν hex
κ°μ ASCII λλ κΈ°νλ‘ ν΄μλμ§ μκ³ μμ§μ μ μλ‘ ν΄μλκΈ° λλ¬Έμ λ¬Έμμ΄ κ°μ μ ν μ€μ ν μ μμ΅λλ€.
ν
μ€νΈμ hex
λ₯Ό μ¬μ©ν μ μμ΅λλ€. μλ #2388μ μ°Έμ‘°νμμμ€.
hex.DecodeString
λ 16μ§μ λ¬Έμμ΄μμ λμ½λ©λ λ°μ΄νΈ μ‘°κ°κ³Ό μ€λ₯λ₯Ό λ°νν©λλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄λ―Έ μ§μ νλ―μ΄ λ‘컬 λλ©μΈμ ꡬμ±μ μ΄λ―Έ κ³νλμ΄ μμΌλ©° μ΅μ ꡬ문λ κ°μ λμμ΅λλ€. νμ¬ κ²°ν¨μ΄ μλ μ΅μ ꡬ문μΌλ‘ μ΅μ μ μ€μ νλ λ°©λ²μ λν μλ #2385 λ° [μ΄ μ£Όμ]μ μ°Έμ‘°νμμμ€.
μ μ€νΈλ¦Όμ λ‘컬 λλ©μΈ μμ²μ μ λ¬νμ§λ§ λ²κ·Έμ΄λ©°, μ°λ¦¬λ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μ κ³ κ°μ¬ν©λλ€!