본문 바로가기

교육/Server

Day 13 (DNS)

반응형

오늘은 랜카드가 없을 경우를 생각하면서 시작하겠다. 네트워크를 이용하려면 물리적인 랜카드가 적어도 하나 이상 필요하다. IP는 IP Aliase를 이용해 복수의 IP를 사용할수있다. 그렇다면 랜카드가 없으면 네트워크 구성을 할 수 없을까? 답은 '아니다'이다. 물론 외부와의 네트워크는 할 수 없지만 마더보드에 lo라는 이름의 네트워크가 내장되어있다. lo는 local loopback을 가르킨다. local loopback은 실체 없는 가상의 네트워크다. 이 IP를 이용하면 패킷이 자기 자신으로 돌아온다. 패킷 송신시 메모리 내에서만 패킷이 이동하기 때문이다. lo의 IP주소인 127.0.0.0/24, 넷마스크 255.0.0.0 네트워크는 실제 인터넷에서 사용할 수 없는 IP이다. 사설 IP인 192.168.0.0/24도 소규모 네트워크 망에서 사용하기는 하지만 외부와 통신하기 위해서는 다른 네트워크 주소로 변경한 후 연결해야한다.

 

네트워크를 구성하는 요소들을 살펴보자.

ens는 네트워크 장치 이름이다. 연결된 인터페이스카드에 따라 자동으로 변경되는 값이라서 얼마든지 변경 가능하다.

ip주소 또한 변경이 가능하다. '/etc/stysconfig/networ-scrtipts/ifcfg-NIC명'으로 연결하면 변경이 가능하다. 이 파일에는 ip와 넷마스크는 반드시 존재하지만 gateway나 DNS같은 정보는 없을 수도 있다.

DNS는 '/etc/resolv.conf'에 적힌 값이 '/etc/stysconfig/networ-scrtipts/ifcfg-NIC명'에 적힌 값보다 우선시 된다. 또한 여기에 적힌 DNS는 로컬 DNS다. ISP에서는 책임 DNS가 아닌 cache DNS를 사용하는 경우가 많다. 간혹 네임서버를 사적으로 사용하려고 숨기는 경우가 있는데 DNS서버는 비밀보장이 안될 뿐더러 숨기면 안된다. DNS서버는 도메인이 많이 알려져 다른 네트워크에서 보다 쉽게 접속하기 위해 만든 것인데 그 의도에 반하는 것이기 때문이다.

gateway는 '/etc/stysconfig/networ-scrtipts/ifcfg-NIC명'에 없다면 '/etc/sysconfig/network'에 있다.

 

네트워크 설정에 관한 얘기에서 'ntsysv'명령어를 빼놓을 수 없다. 'ntsysv'명령어는 데몬을 설정하는 프로그램중 하나이다. 데몬중에 NetworkManager.service란 항목은 활성화하면 리눅스에서 수정하고 저장한 네트워크 설정이 초기화 된다. 이 경우에는 xwindow의 NetworkManager에서 직접 설정해야 하는 것이 정상이다. 그러나 모두 그런것은 아니라 리눅스상에서 설정을 변경해도 적용되는 항목도 있다.


/etc/resolv.conf의 내용을 확인해보자.

search는 도메인을 적는 란으로 www.만 적어도 도메인에 access하게 되는 것이다.

nameserver는 DNS로 사용할 주소를 적는 란으로 자신을 DNS로 사용하고 싶다면 자신의 IP주소를 적은 후 HOST명령어로 IP주소 회신이 오는지로 확인 가능하다.

 

------------------------------------------------------------------------------------------------------------------------------

'/etc/sysconfig/network'파일에서는 Zeroconf (Zero Configuration Networking)을 위하여 예약된 subnet 설정을 제거한다. zeroconf에 대해 잘 모르고 있어 인터넷에서 찾아보았다. Zeroconf는 사람손에 의한 조작없이또한 특별한 설정서버를 사용하지 않고이용가능한 인터넷프로토콜(IP) 네트워크를 자동적으로 작성 하는 일종의 기법이다. Zero configuration networking 컴퓨터나 프린터와 같은 장치를 자동적으로 네트워크에 접속하는것이 가능하게 한다. zeroconf 없는 경우네트워크 관리자가 Dynamic Host Configuration Protocol (DHCP)  Domain Name System (DNS)  같은 서비스의 설정을  필요가 있고경우에 따라서는 각각 컴퓨터의 네트워크설정을 사람손으로 변경할 필요가 있고시간이 걸리고 귀찮다.

zeroconf  다음 3가지의 기술을 기반으로 하고 있다.

    • 네트워크 장치로의 네트워크 주소 할당
    • 컴퓨터 hostname 자동 해석과 자동 배포
    • 프린터와 같은 네트워크 장치의 위치를 자동 감지<출처 : 위키백과>

------------------------------------------------------------------------------------------------------------------------------

host명령어는 도메인을 ip변환하는 작업을 수행한다. 변환까지만 수행하고 그 이상으로 IP를 사용하는 등의 관여는 하지 않는다.

 

DNS에서 하는 질의는 두가지이다. 1. 관리 하는 DNS정보 2. 관리 하지 않는 DNS정보가 있다. 관리하는 DNS같은 경우는 TLD를 가르키는 경우가 대부분이다. 관리하지 않는 DNS같은 경우는 로컬 DNS나 cache DNS를 가르킨다.

named.conf에서는 연결하는 zone이 어떤 성격이냐에 따라 구체적인 action을 정하는것이다. option에는 zone파일의 경로나 덤프파일 이름 등을 적는다. 키 항목은 마스터 슬레이브 서버간 정보 암호화를 위해 사용하는데 유출 문제될것이 없어서 크게 문제 없다. 왜냐하면 애당초 유출에 문제가 될만한 것을 연결하면 안되기 때문이다. 여기서 키 자체가 중요한것이 아니라 슬레이브 서버를 임의로 변경하지 못하게 하는것이 중요하다.

 

zone의 성격에는 마스터, 슬레이브, 힌트가 있다. 마스터는 zone파일 직접 소유하며 자동으로 생성하고 슬레이브는 마스터로부터 zone파일 마스터로 부터  다운로드하고 생성하지 않는다. 힌트는 사용자가 파일을 관리하지 않으며 루트DNS에 연결한다. 루트DNS 파일(자동생성)은 없으면 인터넷에서 긁어와도 사용 가능하다. named.ca, named.cache, root.cache등으로 배포한다.

 

마스터 DNS일때 zone파일은 IXFR과 AXFR 2가지 방식이 있는데 IXFR방식은 also-notify를 이용해 slave DNS와 연결하는 것이고 AXFR방식은 allow-update를 이용해 slave DNS와 연결하는 것이다. 좀더 자세한 설명은 Day 15에서 실습할것이다.

다중 도메인을 구축할때는 여러개의 도매인을 관리하는 책임 DNS서버에 도메인 서버에 이름만 올리면 된다. 루트 존은 cache DNS든 책임 DNS든 둘다 가지고 있다.

 

zone파일의 내용을 살펴보자.

예시 'bow02.com'에 대한 zone파일

master, slave DNS간에 zone파일을 유지하는 방식에는 TTL, LRU 두가지가 존재한다.

TTL방식은 임의의 시간을 초단위로 작성하면 1초에 1씩 감소하게 된다. 이때 이 감소 체크는 cpu만 가능하며 메모리가 부족해지면 0인것부터 삭제한다. 따라서 대용량 메모리 사용시에는 TTL을 사용하면 cpu에 무리를 주기 때문에 LRU를 사용한다.

@는 실행한다는 의미이고, IN SOA는 문서의 시작점을 의미한다. 'ns.도메인', '계정.ns.도메인'에서 한글로 적힌 계정과 도메인 부분은 변경이 가능하다.

마스터DNS에서 슬레이브DNS로 zone파일을 복사할때 내용변경이 있는지 확인하는 것은 serial값을 보고 확인한다. 마스터DNS의 zone파일을 수정할때마다 serial값을 1씩 올려줘야한다. 그 값이 변경되지 않는다면 유지 되고 변경된다면 named.conf에서 설정한 방식으로 zone파일을 변경한다.

serial값을 확인 하는 주기는 refresh값인데  master DNS서버에 확인해서 하는것은 1일 간격으로 하는 것이다. 이때 파일을 유지할지 재설치할지확인하는 것이다.

retry는 refresh시 확인 응답없으면 1H마다 재시도한다는 내용이다.

또한 expire은 받은 zone파일의 유효기간을 나타낸 값인데 예시에서는 무조건 1주일 후에는 폐기 되므로 새로 받아가야된다는 내용이다.

3h는 최소유지시간 인데 의미없다.

 

위의 값들은 master DNS로 사용할때는 의미가 없고 slave DNS로 사용할때 의미를 갖는다. 왜냐하면 master DNS는 zone 파일을 직접 유지하고 있기때문에 받거나 내용을 확인하거나 할 필요가 없기 때문이다.

';Name Server'에 적히는 값은 도메인 네임서버를 적는 부분이다.

';Mail Exchange'는 메일을 주고 받을때 적는 부분이다. 위의 예시에서 보면 'www.bow02.com.'을 입력하면  CNAME은  때문에 'mail.bow02.com.' 으로 변경되어 '192.169.10.33'으로 연결된다.

 

 

---------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

다중 도메인  서버 구축
DNS 주소 입력
두번째 도메인 서버 내용
host를 이용해 통신 확인
외부 클라이언트로 정상 작동 확인
cache DNS서버

---------------------------------------------------------------------------------------------------------------------------------

 

//라즈베리 파이

 

마스터와 슬레이브 네임 서버 구축

슬레이브 네임 서버는 마스터 네임 서버가 제공하는 도메인에 대한 정보를 그대로 저장해 마스터 네임 서버가 어떤 이유로 인해 정보를 제공하지 못하는 경우 마스터 네임 서버를 대신해 서비스를 클라이언트에게 제공하는 네임 서버를 의미한다.

마스터 서버에서 도메인에 대한 설정 정보를 슬레이브 서버에게 전달할  서로에 대한 인증이 필요하며  사용하는 방법은 2가지로 IP주소를 사용하는 방법과 TSIG(Transaction Signatures) 사용하는 방법이 있다.

<출처 : https://beomsu33.tistory.com/94>

 

 

반응형

'교육 > Server' 카테고리의 다른 글

Day 17 (apache)  (0) 2019.12.10
Day 16 (DNS)  (0) 2019.12.09
Day 14 (DNS)  (0) 2019.12.05
Day 12 (DNS)  (0) 2019.12.04
Day 10  (0) 2019.11.30