한 걸음 두 걸음

네트워크 DHCP 와 NAT 본문

CSE/Network

네트워크 DHCP 와 NAT

언제나 변함없이 2019. 10. 28. 16:23
반응형

 

DHCP란?

Dynamic Host Configuration Protocol의 약자로 호스트의 IP주소 및 TCP/IP suite에 필요한 기본 설정을 동적으로 제공해주는 프로토콜을 의미합니다. 이러한 DHCP가 나온 배경은 IP주소자원이 고갈됨에 따라 IPv4주소를 보다 효율적으로 사용해야했기 때문입니다. IP주소가 반드시 있어야하는 중요한 실험 장비 등은 static한 IP주소를 부여하지만 핸드폰 단말기나 노트북같은 경우 DHCP서버를 이용하여 동적으로 사설 IP주소를 할당하여 사용하기 시작했습니다.

DHCP의 작동 원리

이와 같이 새로운 PC가 네트워크에 연결되는 경우, PC는 자신이 연결된 네트워크 주소를 알기위해 브로드캐스팅을 합니다. 이 때 브로드캐스트 프레임이 DHCP 서버로 가고, DHCP는 컴퓨터에게 새로운 사설IP를 할당해줍니다. 여기서 PC는 DHCP의 클라이언트입니다.

(이 때 통신을 위해 반드시 함께 진행되어야하는 것은 라우터의 게이트웨이 설정 + DNS 설정이 있습니다. 물론 DHCP가 IP주소 뿐만 아니라 DNS와 gateway도 함께 자동설정해줍니다.)

IP주소를 할당받은 후 IP Lease Time 이 있어 이 기간이 끝나면 IP Address Release를 하게 됩니다. 그 전에 연장요청을 하면 더 사용할 수 있습니다.

discover - offer- request - ack 단계를 거칩니다.

아까는 새로운 컴퓨터가 있는 곳이 DHCP서버가 같은 네트워크 안에 존재해서 브로드캐스팅을 통해 손쉽게 IP주소를 얻을 수 있었지만,

만약 이처럼 PC가 DHCP가 없는 네트워크에 추가되었다면 어떻게 되었을까요? 브로드캐스트의 범위는 같은 네트워크 이내이기때문에 라우터에 막혀 다른 네트워크에 존재하는 DHCP까지 프레임이 전달되지 못했을 것입니다. 그렇다면 초록색 PC는 DHCP서버로부터 IP를 받지 못해 통신하지 못하는데 이런 경우 어떻게 해야할까요?

IP Helper-address

브로드캐스팅의 단점은 같은 네트워크 내까지만 도달범위이므로, 모든 네트워크에 DHCP를 둘 수는 없고 DHCP서버가 어디있는지 라우터에게 알려주어야합니다. 이 때 사용하는 것이 바로 IP Helper-address입니다.

DHCP Discover

이 사진에서 보면, 왼쪽 PC가 브로드캐스팅 했을 떄 IP Helper address가 DHCP서버에 대한 IP주소 정보를 제공하고 있어 해당 서버까지 데이터 전달을 하고 라우터로 되돌려받을 수 있게 됩니다.

DHCP offer

그럼 DHCP로부터 새로운 IP주소를 받을 수 있습니다. 이 offer엔 IP 뿐만 아니라, subnetmask, dns, router gateway, IP lease time, DHCP server ip주소 등을 함께 보내줍니다. ( 여러 개의 DHCP 서버가 존재할 경우 모두 위의 정보를 보내주는데 이 정보를 받은 PC가 나 이거 쓸게!라는 답장을 줘야 제대로 인식하기 시작하므로 DHCP서버가 여러개여도 문제가 없습니다.) discover - offer - request - ack 순으로 진행됩니다. 

DHCP서버의 클라이언트 관리

그렇다면 위의 DHCP서버는 어떤 IP까지 관리해야할까요? 네트워크 단위로 사용할 수 있는 IP주소 pool을 만드는 DHCP서버이기 때문에 위처럼 pool 두 개를 만들어서 관리합니다. (네트워크 단위로 pool을 만드나, 라우터간 pool을 만들지 않는 이유는 라우터는 사설IP로 동적으로 사용하지 않기 때문입니다. 라우터의 주소가 계속 동적으로 변하면 라우팅테이블 등이 실시간으로 많이 바뀌어야하는 등의 문제가 발생하므로 static하게 사용합니다.)

여기서 DNS와 같은 서버들은 다이나믹하게 사용하면 나중에 번거로워지므로, static하게 IP를 설정해주고, 그 외의 PC등의 호스트들을 동적으로 사용합니다.

참고로 그림에서 Global 에 있는 exclude 는 제외시킬 IP주소입니다. 주로 IP대역에서의 네트워크 주소와 브로드캐스트 주소 등을 지정합니다.

관련 패킷트레이서 실습 때 사용할 CLI 명령어 
ip dhcp excluded-address 172.16.1.1 172.16.1.50 //범위
ip dhcp excluded-address 172.16.2.1 172.16.2.100
ip dhcp pool subnet-left
network 172.16.1.0 255.255.255.0
dns-server 172.16.1.12
default-router 172.16.1.1
lease 0 23 59
domain-name example.com
ip dhcp pool subnet-right
network 172.16.2.0 /24
dns-server 172.16.1.12
default-router 172.16.2.1
lease 1 2 3

NAT

NAT이란 network address translation의 약자로, 하나의 공인IP주소에 맞춰 사설 IP로 변환시켜주는 것입니다.

NAT은 static NAT과 dynamic NAT으로 나뉩니다.

static NAT은 1:1 변환, 즉 public IP 하나당 private IP도 하나 매칭된다는 것입니다. 이렇게 사용함으로써 외부에 컴퓨터 IP가 노출되지 않아 보안이 강화된다는 이점이 있습니다.

반면에 Dynamic NAT은 사용가능한 public IP pool을 지정해두고 사용합니다. 즉, 여러 개의 public IP가 있고, 내부 네트워크에 여러 개의 PC가 있을 떄 PC가 요청할 때마다 해당 PC에 private IP를 할당해주고 사용이 끝나면 회수해갑니다. 이런식으로 IP를 static보다 효율적으로 사용할 수 있습니다.

static NAT CLI 명령어 
interface GigabitEthernet0/0
ip address 10.1.1.3 255.255.255.0
ip nat inside
interface Serial0/0/0
ip address 200.1.1.251 255.255.255.0
ip nat outside
ip nat inside source static 10.1.1.2 200.1.1.2
ip nat inside source static 10.1.1.1 200.1.1.1

PAT(=NAT overroad)

Port Address Translation 의 약자로 공인 IP주소 하나에 사설 IP주소를 여러 개 매핑할 수 있는 방법입니다. NAT의 경우 1:1매칭밖에 할 수 없었는데 PAT에서는 port정보를 추가하여 하나의 public IP를 받아도 어떤 private IP로 향하는 데이터인지 구분시킬 수 있습니다.

 

보안 Access control List(ACL): 이 목록에 있는 PC들은 이 공인 IP의 접근을 허용한다.

 

참고_ 포트포워딩이란, 서로 다른 포트로 통신하는 인터넷 사이에 호환이 가능하도록 포트를 바꿔주는 것을 뜻합니다. 예) http(client) : 80 https(server) : 443 를 사용할 때 두 단말기간 통신이 가능하도록 포트포워딩해줍니다. 또는 포트 번호를 속여 보안을 지키고자할 때 사용합니다.


문제 풀어보기

네트워크에 새로 연결된 노트북이 DHCP로부터 IP주소를 동적으로 할당받기 위해 DHCP 요청 메시지를 송신할 때 사용할 IP주소는?

새로 연결된 네트워크는 자신의 네트워크 주소 또한 알 수 없으므로 브로드캐스트 주소 255.255.255.255로 브로드캐스팅하여 DHCP서버로부터 IP를 동적으로 받아야합니다.

라우터 밖의 다른 네트워크에 DHCP서버가 있을 경우 새롭게 추가된 PC는 IP를 할당받을 수 없는데 그 이유는?

이유 : DHCP가 다른 네트워크에 있기 때문(브로드캐스팅의 도달 범위 : 같은 네트워크 내)

DHCP를 사용하기 위해 해야할 추가 작업 : 라우터에 DHCP 서버 주소를 알려주어야 한다. (223.1.1.4 인터페이스에) : IP Helper-Address라 한다.

static NAT의 문제점 ; 문제는 IP주소가 많이 소요되어 IP주소가 고갈된다는 것이다.

해결방법 : IP주소와 포트번호를 함께 사용하여 (포트번호가 65000개정도 되므로 걱정ㄴㄴ) 하나의 공인 IP로도 여러 개의 사설 IP를 매칭시킨다.

참고

https://rednooby.tistory.com/25

반응형