Notice
Recent Posts
Recent Comments
Link
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags
more
Archives
Today
Total
관리 메뉴

layer 3

[CISCO Network R&S] CCNA 9장 NAT과 DHCP 본문

CISCO Networks/Routing and Switching

[CISCO Network R&S] CCNA 9장 NAT과 DHCP

뿅뿅뽁 2019. 1. 11. 12:58

안녕하세요 뿅뿅뽁입니다.


NAT(Network Address Translation)이란 IP 주소 변환을 담당하는 기능을 의미하고 우리가 흔히 보는 공유기가 대표적인 NAT을 수행하는 장비입니다. 또 NAT와 달리 포트 번호를 이용한 주소변환 PAT(Port Address Translation)을 사용하기도 합니다. 이번 장에서는 NAT, PAT, DHCP에 대해 알아보겠습니다.


NAT의 기능은 IP 주소 변환입니다. 그럼 NAT을 왜 쓰는지는 크게 2가지 이유가 있습니다.


첫째. 보안성을 높입니다. NAT의 기능을 수행하는 라우터는 그 라우터를 기준으로 내부와 외부가 나뉘기 때문에 외부에서는 내부 네트워크의 정보를 알기 어렵습니다. 따라서 내부 시스템에 대한 IP 주소와 서브넷 정보를 보호 할 수 있습니다.


둘째. 내부 시스템들에게 사설 IP 주소를 할당하고 인터넷으로 패킷을 전송할 경우, 공인 IP 주소로 변환이 가능하기 때문에 IPv4주소 고갈 문제를 해결 할 수 있습니다. 즉 하나의 공인 IP로 다수의 사설 IP 생성이 가능하다는 장점이 있습니다.


사설 IP를 쓰기 위해서는 NAT은 선택이 아니라 필수입니다. 회사나 가정에서 네트워크를 구성 할 때 NAT을 설정하지 않는다면 인터넷은 되지 않을 것입니다.


또한 정적 NAT과 동적 NAT이 있습니다. 앞 장에서 정적 라우팅과 동적 라우팅을 생각하시면 이해가 빠르실겁니다. 정적 NAT은 단일 IP를 변환하는 NAT이고 동적 NAT은 정해놓은 범위내에 있는 IP 주소를 변환하는 NAT입니다.


그럼 바로 설정하는 법을 알아보겠습니다.


우선 NAT을 설정하기 위해서는 내부 IP주소와 외부로 나가는 인터페이스의 IP, 그리고 외부 IP가 필요합니다. 그것부터 가정하겠습니다


외부 IP : 네이버(202.131.30.11) (네이버 여러개의 IP 중 하나입니다.)

라우터에서 외부로 나가는 인터페이스 IP : 202.131.30.1)

내부 IP : 192.168.0.1 ~ 192.168.0.3(PC)


정적 NAT은 간단합니다. 


ip nat inside source static 192.168.0.1 202.131.30.1

ip nat inside source static 192.168.0.2 202.131.30.1

int (내부쪽 인터페이스)

ip nat inside

int (외부쪽 인터페이스)

ip nat outside


정적은 중요하지 않은 내용이라 동적으로 시뮬을 해보겠습니다.

첨부파일을 다운받아서 하시길 바랍니다.



이 사진에서 두개의 라우터 중 왼쪽 라우터 아래가 내부 네트워크 입니다.


그 밑에 스위치는 나중에 스위칭 할 때 다루도록 하겠습니다.


저희는 PC에서 네이버로 핑을 보낼때 IP가 변환되도록 할 것입니다.



R1 들어가서 설정합니다.


R1>en

R1#conf t

R1(config)#access-list 10 permit 192.168.0.0 0.0.0.255

R1(config)#access-list 10 permit 192.168.0.0 0.0.0.255

R1(config)#ip nat pool LAYER3 202.131.30.1 202.131.30.1 netmask 255.255.255.0

R1(config)#ip nat inside source list 10 pool LAYER3 overload

R1(config)#int gigabitEthernet 0

R1(config-if)#ip nat inside

R1(config-if)#int se0

R1(config-if)#ip nat outside


3번째4번쨰 줄에서 ACL을 먼저 설정해줍니다. 

그다음 pool의 이름을 정해주고(저는 LAYER3로 했습니다) IP 범위를 지정해줍니다. 202.131.30.1~202.131.30.1. 하고 netmask 서브넷마스크를 써주시면 됩니다.


여기서 PC0과 PC1에서 패킷을 보내는것을 생각해보면 같은 IP로 변환되기 때문에 답장을 받을때 어디로 가야할지 모르게 될 겁니다. 그래서 PAT을 이용하여 포트를 지정해줍니다. PC0에서 나오는 패킷은 거기에 맞는 인터페이스를 정해주기 때문에 동일 IP라도 포트에 따라 패킷의 방향이 바뀝니다. 그런 의미로 overload를 써줍니다.

ip nat inside source 리스트번호 pool이름 overload   -> PAT

그 밑에 내용은 각 인터페이스를 들어가서 외부와 내부네트워크를 지정해준것입니다.



그럼 확인을 해보겠습니다

확인은 R1에서 디버그를 통해 알려고 합니다. R1에서 관리자모드를 들어가신 다음 debug ip nat을 해줘서 debug를 켜줍니다.


그리고 PC에서 ping 202.131.30.11 하신다음 R1을 다시 보시면 됩니다.



잘 변환됩니다.


이번에는 DHCP를 알아보겠습니다. DHCP는 Dynamic Host Configuration Protocol의 약자인데 동적으로 호스트에게 IP를 할당해주는 프로토콜입니다. 가정에서 쉽게보는 공유기가 이 기능도 수행합니다.


아마 가정에서 IP를 직접 설정하시는 분들은 적으실겁니다. 대부분 DHCP를 사용하여 자동으로 IP를 받아 오실텐데요 CCNA에서도 DHCP는 잘 못본거 같고 시뮬에서도 나오지 않기 때문에 간략하게 과정만 보겠습니다.


DHCP는 4가지 과정으로 이루어 지고 UDP 통신을 합니다.


DISCOVER, OFFER, REQUEST, ACK


DISCOVER : 클라이언트가 DHCP 서버를 찾기 위한 메시지

OFFER : 서버가 클라이언트에게 IP 주소 정보 관련 사항을 응답하는 메시지

REQUEST : 서버가 제공하는 IP 주소 정보를 사용할 것이라는 요청 메시지

ACK : 서버가 클라이언트에게 IP 주소 정보를 최종으로 허가하는 메시지


이것을 표로 정리하면 아래와 같습니다.


 DHCP 단계

출발지 IP 주소 

목적지 IP 주소 

출발지 포트 

목적지 포트 

DISCOVER 

0.0.0.0 

255.255.255.255 

68 

67 

OFFER 

DHCP 서버 

255.255.255.255 

67 

68 

REQUEST 

0.0.0.0 

255.255.255.255 

68 

67 

ACK

DHCP 서버 

255.255.255.255 

67 

68 


자신이 직접 DHCP 서버를 구성하고 싶으시다면 패킷트레이서에서 직접 만들어 보시는 것도 좋으실거 같습니다.


라우팅은 여기까지 입니다. 다음 장 부터는 스위칭을 알아보도록 하여 최종적으로는 라우팅, 스위칭을 하여 하나의 네트워크를 만들어 보도록 하겠습니다.


NAT 기본설정.pkt