DHCP&NAT

oogu ㅣ 2022. 5. 18. 23:45

Autoconfiguration IP Address -> ip 못 받음 -> 169.

1. DHCP(Dynamic Host Configuration Protocol)

 - IP 주소 자동 할당 기능을 수행하는 네트워크 서비스
 - 서버와 클라이언트간에 IP 주소 임대 서비스
 - DHCP 구성 요소 : 서버, 클라이언트, DHCP Relay Agent
 - DHCP 동작 과정 : 4개 메세지를 이용하여 4단계 진행

 1) DHCP 동작 단계 -> 브로드캐스트

SA 68                                     SA 67
DA 67                                     DA 68
----------------- UDP                   ----------------- UDP
SA 0.0.0.0                                 SA 192.168.1.254
DA 255.255.255.255                     DA 255.255.255.255
----------------- IP                        ----------------- IP

클라이언트(UDP 68)                     서버(UDP 67)
0.0.0.0                                       192.168.1.254

Discover ---------------------------------->
(서버 찾기) <-------------------------------- Offer
                                             (IP 주소 정보 할당)(예정)
Request ---------------------------------->
(IP 할당 요청) <-------------------------------- Ack
                                        (IP 할당 승인)(할당)


Ex1) DHCP 클라이언트와 서버가 다른 네트워크에 있다면, IP 주소 할당이 진행될것인가?


 2) DHCP 서버에 설정할 내용

- IP 주소 정보
- 서브넷 마스크
- 기본 게이트웨이
- DNS 서버 주소 정보
- 임대 기간


Ex2) R1에서 DHCP 서버를 구성하여, A~C PC에게 IP 주소 정보를 할당하도록 한다.

- 제외 IP 주소 범위 : 
- IP 주소 정보 : 
- 서브넷 마스크 : 
- 기본 게이트웨이 : 
- DNS 서버 주소 정보 : 
- 임대 기간 : 무제한

@ R1

ip dhcp excluded-address 192.168.1.253 192.168.1.254 
!
ip dhcp pool Local-192
 network 192.168.1.0 255.255.255.0
 default-router 192.168.1.254
 dns-server 192.168.1.253
 lease infinite

 - A~C 에서 'dhcp'를 클릭한다.


R1#show ip dhcp binding 
IP address       Client-ID/              Lease expiration        Type
                 Hardware address
192.168.1.1      00D0.BCB4.E4E4           --                     Automatic
192.168.1.2      0090.216A.0A2D           --                     Automatic
192.168.1.3      0060.5C84.02D1           --    

R1#ping 192.168.1.1
R1#ping 192.168.1.2
R1#ping 192.168.1.3


Ex3) R3에서 DHCP 서버를 구성하여, X~Z PC에게 IP 주소 정보를 할당하도록 한다.

- 제외 IP 주소 범위 : 
- IP 주소 정보 : 
- 서브넷 마스크 : 
- 기본 게이트웨이 : 
- DNS 서버 주소 정보 : 
- 임대 기간 : 무제한

@ R1

ip dhcp excluded-address 198.133.219.25 
ip dhcp excluded-address 198.133.219.254
!
ip dhcp pool Remote-198
 network 198.133.219.0 255.255.255.0
 default-router 198.133.219.254
 dns-server 198.133.219.25
 lease infinite


 - X~Z에서 'dhcp'를 클릭한다.

R3#show ip dhcp binding 
IP address       Client-ID/              Lease expiration        Type
                 Hardware address
198.133.219.1    0006.2A9C.CD45           --                     Automatic
198.133.219.2    00D0.583B.8398           --                     Automatic
198.133.219.3    00D0.FF88.676D           --                     Automatic

R3#ping 198.133.219.1
R3#ping 198.133.219.2
R3#ping 198.133.219.3


Ex4) ISP 라우터에서 DHCP 서버를 구성하여, R2 F0/1에 IP 주소 정보를 할당하도록 한다.

- 제외 IP 주소 범위 : 
- IP 주소 정보 : 
- 서브넷 마스크 : 
- 기본 게이트웨이 : 
- DNS 서버 주소 정보 : 
- 임대 기간 : 무제한

@ ISP

ISP#show run
ISP#show ip int brief

ip dhcp excluded-address 13.13.111.254
!
ip dhcp pool NET-13
 network 13.13.111.0 255.255.255.0
 default-router 13.13.111.254
 dns-server 168.126.63.1
 lease infinite

@ R2

int fa0/1
 ip address dhcp
 no shutdown


R3#show ip int brief

R3#show ip route

R3#show dhcp lease 

ISP#show ip dhcp binding 



 2) 클라이언트에게 특정 IP 주소 할당

DHCP 서버          DHCP 클라이언트
R1[F0/1]--------------------------[F0/1]R2
    192.168.1.254

@ R1

ip dhcp pool 1
   host 192.168.1.200 255.255.255.0
   client-identifier 01c0.011b.6800.01     (맨 앞에 01는 클라이언트가 이더넷 장치라는 16진수 값)
   default-router 192.168.1.254 
   dns-server 168.126.63.1 
   domain-name cisco.com
 end
!

@ R2 (DHCP 클라이언트가 PC인 경우에는 '자동 받기'만 클릭하면 된다.)

int fa0/1
 ip address dhcp client-id fa0/1 hostname R2
 no shutdown


 3) DHCP Relay Agent

 - DHCP 클라이언트와 서버가 브로드케스트가 공유되지 않는 다른 네트워크 상에 구성되어 있다면, 
   DHCP 메세지를 교환할 수 없기 때문에 IP 할당이 불가능하다.

                               192.168.1.254      192.168.13.254
DHCP Client-----------------------[F0/0]R1[F0/1]--------------------------------DHCP 서버
  'Discover' ----------------->            'Discover' --------X------->      192.168.13.200
   DA 255.255.255.255                     DA 255.255.255.255


 - 이런 경우, R1을 DHCP Relay Agent로 구성하여 R1 F0/0으로 수신하는 'Discover' 메세지의 목적지 주소(255.255.255.255)를 '192.168.13.200' DHCP 서버 IP 주소로 변환하여 전송하면 해결할 수 있다.

 - 즉, 목적지 브로드케스트 주소를 유니케스트 주소(DHCP 서버 IP 주소)로 변환하는 것이다.

@ R1

int fa0/0
 ip helper-address 192.168.13.200

                               192.168.1.254      192.168.13.254
DHCP Client-----------------------[F0/0]R1[F0/1]--------------------------------DHCP 서버
  'Discover' ----------------->            'Discover' ---------------->      192.168.13.200
   DA 255.255.255.255                     DA 192.168.13.200

 
---------------------------------------------------------------------------------------------------------------
NAT (Network Address Translation)

 - IP 주소 및 포트 번호를 변환하는 네트워크 서비스이다.
 - 일반적으로 내부 사설 IP 주소를 사용하는 환경에서 데이터를 인터넷으로 전송할때 공인 IP 주소로 변환한다.
 - 리눅스 환경에서는 마스커레이드(Masquerade)라고도 한다.
 - NAT 목적

 ① 보안(방화벽 개념)
 ② IP 주소 고갈 문제 해결
 ③ NAT는 내부에서 외부로 패켓을 전송하기 위해서 설정하는 것이 아니라, 내부에서 외부로 전송된 패켓이 다시
     되돌아올 수 있도록 하기 위해서 구성하는 것이다.

Ex1) NAT를 방화벽 기능으로 분류하는 이유는 무엇인가?


 1) NAT 구성 요소

- Inside(내부, 사설 IP 환경) / Outside(외부, 공인 IP 환경)

- Inside Local 주소 (Inside 내부에서 사용하는 주소, 사설 IP 주소)
- Inside Global 주소 (Inside 내부에서 외부로 패켓을 전송할때, 변환되는 주소, 공인 IP 주소)

- Inside -> Outside로 패켓이 전송될때 : 출발지 주소 변경
- Outside ->Inside로 패켓이 전송될때 : 목적지 주소 변경



 2) 동적 NAT

 - 내부 네트워크에 위치한 사용자 PC들을 동적 NAT로 구성하는 방법은 다음과 같다.

Ex1) 동적 NAT

 - Inside Local : 192.168.1.0/24 (192.168.1.1 ~ 192.168.1.254)
 - Inside Global : 13.13.12.1/24

@ R1

access-list 10 permit 192.168.1.0 0.0.0.255
!
ip nat inside source list 10 interface s1/0 overload(포트까지 변함)
!
int fa0/0
 ip nat inside
!
int s1/0
 ip nat outside
 end
!


R1#debug ip nat
IP NAT debugging is on

 - A~C PC에서 Web Brower -> www.xyz.com 실시

R1#show ip nat translations 
Pro  Inside global     Inside local       Outside local      Outside global
tcp 13.13.12.1:1025    192.168.1.1:1025   198.133.219.25:80  198.133.219.25:80
tcp 13.13.12.1:1026    192.168.1.1:1026   198.133.219.25:80  198.133.219.25:80
tcp 13.13.12.1:1027    192.168.1.1:1027   198.133.219.25:80  198.133.219.25:80
tcp 13.13.12.1:1024    192.168.1.2:1025   198.133.219.25:80  198.133.219.25:80
tcp 13.13.12.1:1028    192.168.1.3:1025   198.133.219.25:80  198.133.219.25:80


A_PC>ping 198.133.219.25

Pinging 198.133.219.25 with 32 bytes of data:

Reply from 198.133.219.25: bytes=32 time=2ms TTL=125
Reply from 198.133.219.25: bytes=32 time=11ms TTL=125
Reply from 198.133.219.25: bytes=32 time=2ms TTL=125
Reply from 198.133.219.25: bytes=32 time=2ms TTL=125

Ping statistics for 198.133.219.25:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 11ms, Average = 4ms


R1#show ip nat translations 
Pro  Inside global     Inside local       Outside local      Outside global
icmp 13.13.12.1:10     192.168.1.1:10     198.133.219.25:10  198.133.219.25:10
icmp 13.13.12.1:11     192.168.1.1:11     198.133.219.25:11  198.133.219.25:11
icmp 13.13.12.1:8      192.168.1.1:8      198.133.219.25:8   198.133.219.25:8
icmp 13.13.12.1:9      192.168.1.1:9      198.133.219.25:9   198.133.219.25:9
tcp 13.13.12.1:1025    192.168.1.1:1025   198.133.219.25:80  198.133.219.25:80
tcp 13.13.12.1:1026    192.168.1.1:1026   198.133.219.25:80  198.133.219.25:80
tcp 13.13.12.1:1027    192.168.1.1:1027   198.133.219.25:80  198.133.219.25:80
tcp 13.13.12.1:1024    192.168.1.2:1025   198.133.219.25:80  198.133.219.25:80
tcp 13.13.12.1:1028    192.168.1.3:1025   198.133.219.25:80  198.133.219.25:80



3) 정적 NAT

 - 내부 네트워크에 위치한 특정 서버 및 시스템들을 정적 NAT로 구성하는 방법은 다음과 같다.
 - 만약, 웹 서버에 대해서 정적 NAT를 구성하는 경우, 포트 번호도 변환해야 한다.
 - 이러한 기능을 포트 포워딩이라고 한다. (내부 포트:외부포트 -> 80:80, 80:8080)
 
Ex1) 정적 NAT

 - Inside Local : 192.168.1.253 <-- 웹 서버(TCP 80)
 - Inside Global : 13.13.12.100 <- 남는거 쓴다. 겹치면 안좋음

@ R1

ip nat inside source static tcp 192.168.1.253 13.13.12.100
!
int fa0/0
 ip nat inside
!
int s1/0
 ip nat outside
!


X PC에서 Web Brower -> http://www.abc.com
X_PC>ping 13.13.12.100
X_PC>ftp 13.13.12.100

Ex2) 위와 같은 구성의 문제점은 무엇인가?


Ex3) 외부에서 'www.abc.com' 접속만 가능하도록 정적 NAT를 구성한다.

@ R1

no ip nat inside source static tcp 192.168.1.253 13.13.12.100
ip nat inside source static tcp 192.168.1.253 80 13.13.12.100 80
!
int fa0/0
 ip nat inside
!
int s1/0
 ip nat outside
!

X PC에서 Web Brower -> 13.13.12.100 실시
X_PC>ping 13.13.12.100
X_PC>ftp 13.13.12.100


Ex4) 외부에서 'www.abc.com'으로 접속할때 8080 포트로 접속되도록 정적 NAT를 구성한다.

@ R1

no ip nat inside source static tcp 192.168.1.253 80 13.13.12.100 80
ip nat inside source static tcp 192.168.1.253 80 13.13.12.100 8080
!
int fa0/0
 ip nat inside
!
int s1/0
 ip nat outside
!

X PC에서 Web Brower -> http://www.abc.com:8080
X_PC>ping 13.13.12.100
X_PC>ftp 13.13.12.100


Ex5) 외부에서 'www.abc.com'으로 HTTPS 접속이 가능하도록 정적 NAT를 구성한다.

X PC에서 Web Brower -> https://www.abc.com


Ex6) 외부에서 '192.168.1.253'으로 FTP 접속 및 업로드/다운로드가 가능하도록 정적 NAT를 구성한다.

X_PC>ftp 13.13.12.100

'네트워크' 카테고리의 다른 글

VMware - Virtual Network Editor 설명  (0) 2022.05.22
STP  (0) 2022.05.09
스위치 특징, VLAN  (0) 2022.05.02
와일드카드 마스크, ACL  (0) 2022.04.27
동적 경로 OSPF  (0) 2022.04.26