1. 사용자는 웹 서버에 접근하기 위해 출발지 IP를 10.10.10.10으로, 목적지 IP와 서비스 포트는 20.20.20.20과 80으로 패키슬 전송한다. 출발지 서비스 포트는 임의의 포트로 할당되면 여기서는 2000포트로 가정한다.
2. NAT 역할을 수행하는 장비에서는 사용자가 보낸 패킷을 수신한 후 NAT 정책에 따라 외부 네트워크와 통신이 가능한 공인 IP인 11.11.11.11로 IP 주소를 변경한다. NAT장비에서 변경 전후의 IP 주소는 NAT 테이블에 저장된다.
3. NAT 장비에서는 출발지 주소를 11.11.11.11로 변경해 목적지 웹 서버로 전송한다.
4. 패킷을 수신한 웹 서버는 사용자에게 응답을 보낸다. 응답이므로 수신한 내용과 반대로 출발지는 웹 서버가 되고 목적지는 NAT 장비에 의해 변환된 공인 IP로 사용자에게 전송한다.
5. 웹 서버로부터 응답 패킷을 수신한 NAT 장비는 자신의 NAT 테이블에서 목적지 IP에 대한 원래 패킷을 발생시킨 출발지 IP 주소가 10.10.10.10인 것을 확인한다.
6. NAT 변환 테이블에서 확인된 원래 패킷 출발지 IP(10.10.10.10)로 변경해 사용자에게 전송하면 최종적으로 패킷을 수신한다.
1. 사용자가 웹 서버로 접근하기 위해 패킷에 출발지 10.10.10.10, 목적지 20.20.20.20, 목적지 서비스 포트는 웹 서비스 포트인 80으로 채워 패킷을 전송한다.출발지 서비스 포트는 임의의 포트로 할당되면 여기서는 2000포트로 가정한다.
2. NAT 장비는 사용자가 보낸 패킷을 받아 외부 네트워크와 통신이 가능한 공인 IP인 11.11.11.11로 변경한다. 다만 출발지에 있는 다수의 사용자가 동일한 공인 IP로 변환되어야 하므로 패킷의 주소 변경 시 출발지 IP뿐만 아니라 출발지의 서비스 포트도 변경된다. 출발지 IP와 출발지 서비스 포트는 NAT 장비에 의해 모두 변경되고 NAT 장비가 이 변경 정보를 NAT 테이블에 기록한다.
3. NAT 장비에서 변경된 출발지 IP 주소인 11.11.11.11과 서비스 포트 3000 패킷을 재작성해 웹 서버로 다시 재전송한다.
4. 사용자가 보낸 패킷을 수신한 웹 서버는 사용자에게 패킷을 응답하는데 출발지 IP는 웹 서버의 IP 주소로 채워지고 목적지 IP는 NAT 장비에 의해 변환된 공인 IP와 서비스 포트로 채워져 전송한다.
5. 웹 서버로부터 응답 패킷을 수신한 NAT 장비는 NAT 테이블을 확인해 웹 서버로부터 받은 패킷의 목적지 IP 주소인 11.11.11.11이 원래 10.10.10.10이며 서비스 포트 3000이 원래 2000인 것을 확인한다.
6. NAT 장비는 NAT 테이블에서 확인한 목적지 IP 주소와 서비스 포트로 패킷을 재작성한 후 사용자에게 전달한다. 사용자는 NAT 장비에서 역변환된 패킷을 받아 웹 페이지를 표시한다.
SNAT(Source NAT) - 출발지 주소를 변경하는 NAT DNAT(Destination NAT) - 도착기 주소를 변경하는 NAT
동적 NAT | 정적 NAT | |
---|---|---|
NAT 설정 | 1:N, N:1, N:M | 1:1 |
NAT 테이블 | NAT 수행 시 생성 | 사전 생성 |
NAT 테이블 타임아웃 | 동작 | 없음 |
NAT 수행 정보 | 실시간으로만 확인하거나 별도 변경 로그 저장 필요 | 별도 필요 없음 (설정 = NAT 내역) |
1. 사용자 호스트는 'zigispace.net'이라는 도메인 주소의 IP 주소가 로컬 캐시에 저장되어 있는지 확인한다.
2. 'zigispace.net'이 로컬 캐시에 저장되어 있지 않으면 사용자 호스트에 설정된 DNS에 'zigispace.net'에 대해 쿼리한다.
3. DNS 서버는 'zigispace.net'이 로컬 캐시와 자체에 설정되어 있는지 직접 확인한고 없으면 해당 도메인을 찾기 위해 루트 NS에 .net에 대한 TLD 정보를 가진 도메인 주소를 쿼리한다.
4. 루트 DNS는 'zigispace.net'의 TLD인 '.net'을 관리하는 TLD 네임 서버 정보를 DNS 서버에 응답한다.
5. DNS는 TLD 네임 서버에 'zigispace.net'에 대한 정보를 다시 쿼리한다.
6. TLD 네임 서버는 'zigispace.net'에 대한 정보를 가진 zigi 네임 서버에 대한 정보를 DNS 서버로 응답한다.
7. DNS는 zigi 네임 서버에 'zigispace.net'에 대한 정보를 쿼리한다.
8. zigi 네임 서버는 'zigispace.net'에 대한 정보를 DNS 응답합니다.
9. DNS는 'zigispace.net'에 대한 정보를 로컬 캐시에 저장하고 사용자 호스트에 'zigispace.net'에 대한 정보를 응답한다.
10. 사용자 호스트는 DNS로부터 받은 'zigispace.net'에 대한 IP 정보를 이용해 사이트에 접속한다.
마스터 서버 - 존 파일을 직접 생성해 도메인 관련 정보를 관리한다. 슬레이브 서버 - 마스터에 만들어진 존 파일을 본제한다.
1. 사용자가 web.zigispace.net에 접속하기 위해 DNS에 질의한다.
2. LDNS는 web.zigispace.net을 관리하는 NS 서버를 찾기 위해 root부터 순차 질의한다.
3. zigispace.net을 관리하는 NS 서버로 web.zigispace.net에 대해 질의한다.
4. DNS 서버는 GSLB로 web.zigispace.net에 대해 위임했으므로 GSLB 서버가 NS 서버라고 LDNS에 응답한다.
5. LDNS는 다시 GSLB로 web.zigispace.net에 대해 질의한다.
6. GSLB는 web.zigispace.net에 대한 IP 주솟값 중 현재 설정된 분산 방식에 따라 서울 또는 부산 데이터 센터의 IP 주소값을 DNS에 응답한다. 본 예제에는 서울 데이터 센터의 서비스 IP 인 1.1.1.1을 응답했다. GSLB가 응답하는 값은 GSLB에서 설정한 주기에 따라 서울과 부산 데이터 센터로 헬스 체크해 정상적인 값만 응답한다.
7. GSLB에서 결괏값을 응답받은 LDNS는 사용자에게 web.zigispace.net이 1.1.1.1로 서비스하고 있따고 최종 응답한다.
DLNS - Local DNS
도메인 자체를 GSLB로 사용 도메인 내의 특정 레코드만 GSLB를 사용
별칭(Alias) 사용(CNAME 레코드 사용) 위임(Delegation) 사용(NS 레코트 사용)
1. 사용자가 web.zigispace.net을 LDNS(1.1.1.1)로 질의
2. LDNS는 web.zigispace.net을 관리하는 NS 서버를 찾기 위해 root부터 순차적으로 질의
3. zigispace.net을 관리하는 DNS(2.2.2.2)에 web.zigispace.net의 주소 질의
4. DNS 서버는 LDNS에게 별칭으로 web.zigispace.net은 web.zigispace.net.gslb.net이 관리하고 있다는 응답 수신
5. 다시 LDNS(1.1.1.1)는 gslb.net을 관리하는 NS 서버를 root부터 순차 질의
6. LDNS(1.1.1.1)는 zigipace.gslb.net을 관리하는 NS 서버인 GSLB(3.3.3.3)에 web.zigispace.gslb.net에 대해 질의
7. GSLB(3.3.3.3)는 LDNS(1.1.1.1)에 web.zigispace.gslb.net의 IP(10.10.10.10)를 응답
8. LDNS(1.1.1.1)는 해당 결과값(10.10.10.10)을 사용자에게 최종 응답
1. 사용자가 web.zigispace.net을 LDNS(1.1.1.1)로 질의
2. LDNS는 web.zigispace.net을 관리하는 NS 서버를 찾기 위해 root부터 순차적으로 질의
3. zigispace.net을 관리하는 DNS(2.2.2.2)dp web.zigispace.net의 주소 질의
4. DNS(2.2.2.2)는 GSLB(3.3.3.3)가 web.zigispace.net을 관리한다고 응답
5. 다시 LDNS(1.1.1.1)는 web.zigispace.net을 관리하는 NS 서버인 GSLB(3.3.3.3)에게 web.zigispace.net을 질의
6. GSLB(3.3.3.3)는 LDNS(1.1.1.1)에 web.zigispace.net의 IP를 응답
7. LDNS(1.1.1.1)는 해당 결과값을 사용자에게 최종 응답
1. DHCP Discover
DHCP 클라이언트는 DHCP 서버를 찿기 위해 DHCP Discover 메시지를 브로드캐스트로 전송한다.2. DHCP Offer
DHCP Discover를 수신한 DHCP 서버는 클라이언트에 할당한 IP 주소와 서브넷, 게이트웨이, DNS 정보, Lease Time 드으이 정보를 포함한 DHCP 메시지를 클라이언트로 보내다.3. DHCP Request
DHCP 서버로부터 제안받은 IP 주소(Requested IP0와 DHCP 서버 정보(DHCP Server Identifier)를 포함한 DHCP 요청 메세지를 브로드캐스트로 전송한다.4. DHCP Acknowledgement
DHCP 클라이언트로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 해당 IP를 어떤 클라이언트가 언제부터 사용하기 시작했는지 정보를 기록하고 DHCP Request 메시지를 정상적으로 수신했다는 응답을 전송한다.
메시지 타입 | 내용 |
---|---|
DHCP Discover | 클라이언트가 사용한 DHCP 서버를 찾는 메시지 |
DHCP Offer | DHCP 서바가 IP 설정값에 대한 클라이언트에게 제안하는 메시지 |
DHCP Request | DHCP 서버에서 제안받은 설정값을 요청하는 메시지 |
DHCP Decline | 현재 IP 가 사용 중임을 클라이언트가 서버에 알려주는 메시지 |
DHCP ACK | DHCP 서버가 클라이언트에 받은 요청을 수락하는 메시지 |
DHCP Nak | DHCP 서버가 클라이언트에 받은 요청을 수락하는 않는다는 메시지 |
DHCP Release | 클라이언트가 현재 IP를 반납할 떄 사용하는 메시지 |
DHCP Inform | 클라이언트가 서버에 IP 설정값을 요청하는 메시지 |