[GNS3] DHCP 서버구성 및 NAT/PAT 활용

2025. 12. 8. 16:10·Network Practice

실습 목표

이번 실습에서는 엔터프라이즈 네트워크에서 필수적인 DHCP 서버를 구성하여 클라이언트에게 자동으로 IP 주소를 할당하고, NAT/PAT를 통해 내부 사설 IP 주소를 공인 IP 주소로 변환하여 인터넷 연결을 구현할 예정이다.

 

DHCP(Dynamic Host Configuration Protocol)는 네트워크 관리자가 각 PC마다 수동으로 IP를 할당하는 번거로움을 없애고, IP 주소 충돌을 방지하며, 중앙 집중식 관리를 가능하게 한다. NAT(Network Address Translation)는 제한된 공인 IP 자원을 효율적으로 사용하고, 내부 네트워크 구조를 외부로부터 숨겨 보안을 강화하는 핵심 기술이다.


전체 토폴로지

네트워크 설계

  • VLAN 10 (Sales): 10.10.10.0/24
  • VLAN 20 (Engineering): 10.10.20.0/24
  • VLAN 30 (HR): 10.10.30.0/24
  • VLAN 99 (Management): 10.10.99.0/24
  • WAN Link: 203.0.113.0/30
  • Internet: 8.8.8.0/24 (시뮬레이션)

1단계 : 기본 인프라 구성

1. ISP-R (인터넷 시뮬레이션 라우터) 설정

작업 대상

ISP-R은 인터넷 서비스 제공자를 시뮬레이션하는 라우터다. 실제 인터넷 연결을 테스트하기 위한 목적지 역할을 수행한다.

interface FastEthernet0/0: 인터넷을 시뮬레이션하는 인터페이스다. 실제 환경에서는 ISP 백본으로 연결되는 부분이다.

ip route 0.0.0.0 0.0.0.0 FastEthernet0/0: 기본 라우트(Default Route)를 설정한다. 목적지를 모르는 모든 트래픽을 인터넷 방향으로 전달한다.

ip route 10.10.0.0 255.255.0.0 203.0.113.2: HQ-R1을 통해 내부 네트워크(10.10.0.0/16)로 돌아가는 라우트를 설정한다. 이것이 없으면 ISP-R이 응답 패킷을 내부로 전달할 수 없다.


2. HQ-R1 (NAT Gateway) 기본 설정

작업 대상

HQ-R1은 내부 네트워크와 외부 인터넷 사이의 경계 라우터(Edge Router)다. NAT 기능을 통해 내부 사설 IP를 공인 IP로 변환하는 핵심 역할을 수행한다.

interface FastEthernet0/0: Outside 인터페이스로, 인터넷(ISP) 방향을 향한다. 이 인터페이스의 IP 주소가 NAT 변환의 공인 IP로 사용될 것이다.

interface FastEthernet2/0: Inside 인터페이스로, 내부 네트워크를 향한다. 사설 IP 대역(10.10.0.0/16)의 트래픽이 들어오는 곳이다.

ip route 0.0.0.0 0.0.0.0 203.0.113.1: 인터넷으로 향하는 모든 트래픽을 ISP-R로 전달하는 기본 라우트다.


3. Core-SW (Layer 3 스위치, DHCP 서버) 설정

작업 대상

Core-SW는 L3 스위치로 Inter-VLAN 라우팅과 DHCP 서버 기능을 동시에 수행한다. 각 VLAN의 게이트웨이 역할도 담당한다.

ip routing: L3 스위치에서 라우팅 기능을 활성화한다. 이 명령어가 없으면 VLAN 간 통신이 불가능하다.

 

모든 인터페이스에서 switchport mode trunk로 변경 후 진행한다.

interface Vlan10: SVI(Switched Virtual Interface)를 생성한다. 이것이 VLAN 10의 기본 게이트웨이가 되며, DHCP 서버가 직접 응답할 수 있는 인터페이스다.

 

ip route 0.0.0.0 0.0.0.0 10.10.1.1: 인터넷으로 향하는 트래픽을 HQ-R1로 전달한다. Core-SW는 내부 네트워크(10.10.0.0/16)에 대해서는 직접 연결된 경로를 알고 있지만, 외부 네트워크는 HQ-R1을 통해야 한다.

 

왜 Core-SW에 DHCP 서버를 구성했을까? DHCP 서버는 각 VLAN의 게이트웨이와 같은 장비에 위치하는 것이 효율적이다. DHCP 요청은 브로드캐스트이므로 같은 서브넷 내에서만 전달되기 때문에, 각 VLAN의 SVI를 가진 Core-SW가 가장 적합하다.


4. Dist-SW (Distribution Layer) 설정

작업 대상

Dist-SW는 Core와 Access 계층 사이에서 트래픽을 집약하는 역할을 한다. 현재 토폴로지에서는 L2 스위치로 동작하며, 모든 VLAN 트래픽을 투명하게 전달한다.

ip default-gateway 10.10.1.2: L2 스위치에서 관리 트래픽(SSH, Telnet 등)이 다른 서브넷으로 나가기 위한 게이트웨이를 설정한다. ip route 명령어는 L3 기능이 활성화되어 있어야 사용할 수 있으므로, L2 스위치에서는 ip default-gateway를 사용한다.


5. Access 스위치 설정

작업 대상

Access 스위치는 엔드 디바이스(PC, 프린터 등)가 직접 연결되는 계층이다. 각 스위치는 담당하는 VLAN의 트래픽만 처리한다.

5-1. Acc-SW1 (VLAN 10)

Access-SW2, Access-SW3도 위와 같은 방법으로 진행하되, 각각 Vlan20, Vlan30으로 설정한다.


2단계 : DHCP 서버 구성

1. Core-SW DHCP 서버 설정

작업 대상

Core-SW에서 각 VLAN별로 DHCP Pool을 구성한다. DHCP 서버는 클라이언트에게 IP 주소뿐만 아니라 게이트웨이, DNS 서버, 도메인 이름 등의 네트워크 파라미터를 함께 제공한다.

ip dhcp excluded-address 10.10.10.1 10.10.10.10: DHCP 서버가 할당하지 않을 IP 주소 범위를 지정한다. .1은 게이트웨이로 사용되고 있으며, .2~.10은 서버, 프린터 등 고정 IP가 필요한 장비를 위해 예약한다. 이렇게 하면 DHCP 서버와 수동 할당 IP 간의 충돌을 방지할 수 있다.

network 10.10.10.0 255.255.255.0: 이 Pool이 담당할 네트워크 범위를 정의한다. DHCP 요청이 이 서브넷에서 들어오면 이 Pool에서 IP를 할당한다.

default-router 10.10.10.1: 클라이언트가 사용할 기본 게이트웨이 주소다. DHCP Option 3에 해당하며, 클라이언트는 다른 서브넷으로 통신할 때 이 주소로 패킷을 전달한다.

dns-server 8.8.8.8 8.8.4.4: DNS 서버 주소를 제공한다. 8.8.8.8과 8.8.4.4는 Google Public DNS 서버로, 실제 환경에서는 내부 DNS 서버를 우선 지정하고 외부 DNS를 보조로 설정하는 것이 일반적이다.

domain-name sales.beom.local: 도메인 접미사를 제공한다. 클라이언트가 "server1"에 접속하려 할 때 자동으로 "server1.sales.beom.local"로 확장한다.

lease 7: IP 주소 임대 기간을 7일로 설정한다. 기본값은 24시간(1일)이다. 임대 기간이 끝나면 클라이언트는 자동으로 갱신을 시도하며, 갱신에 실패하면 새로운 IP를 요청한다.

service dhcp: DHCP 서비스를 전역적으로 활성화한다. Cisco 장비는 기본적으로 활성화되어 있지만, 명시적으로 확인하는 것이 좋다.


2. DHCP 동작 원리

DHCP는 4단계 프로세스(DORA)를 통해 IP 주소를 할당한다:

  1. Discover: 클라이언트가 브로드캐스트(255.255.255.255)로 DHCP 서버를 찾는다.
  2. Offer: DHCP 서버가 사용 가능한 IP 주소를 제안한다.
  3. Request: 클라이언트가 제안받은 IP 주소를 사용하겠다고 요청한다.
  4. Acknowledge: DHCP 서버가 IP 주소 할당을 확정하고 네트워크 파라미터를 전달한다.

현재 토폴로지에서는 Core-SW가 각 VLAN의 게이트웨이이므로, DHCP 요청이 직접 Core-SW에 도달한다. 만약 DHCP 서버가 다른 서브넷에 있다면 DHCP Relay Agent(ip helper-address)를 설정해야 한다.


3. PC에서 DHCP IP 주소 획득

작업 대상

각 PC에서 DHCP를 통해 IP 주소를 자동으로 받아온다.

3-1. PC1 (VLAN 10)

DDORA: DHCP의 4단계(Discover, Offer, Request, Acknowledge) 프로세스가 모두 성공했음을 의미한다.

DHCP SERVER : 10.10.10.1: DHCP 서버의 IP 주소가 게이트웨이와 동일하다. 이는 Core-SW의 VLAN 10 SVI가 DHCP 서버 역할을 하고 있음을 나타낸다.

DHCP LEASE : 604791, 604800/302400/529200: 첫 번째 숫자는 남은 임대 시간(초), 두 번째는 전체 임대 시간(7일 = 604800초), 세 번째는 갱신 시간(Renewal Time, 50% = 302400초), 네 번째는 재바인딩 시간(Rebinding Time, 87.5% = 529200초)이다.

나머지 PC2 ~ PC6도 각자의 VLAN 범위 안에서 IP주소를 할당 받는다.


4. DHCP 서버 검증

4-1. DHCP Binding 테이블 확인

Core-SW에서

Core-SW# show ip dhcp binding

Client-ID: 클라이언트의 MAC 주소를 나타낸다. DHCP 서버는 이를 통해 같은 클라이언트가 다시 요청할 때 동일한 IP를 할당하려고 시도한다.

Type: Automatic: 동적으로 할당된 주소다. Manual은 고정 예약(MAC 주소 기반), Static은 수동 설정을 의미한다.

4-2. DHCP 서버 통계 확인

Core-SW# show ip dhcp server statistics

DHCPDISCOVER 12: 12개의 PC가 DHCP Discover를 보냈다.

DHCPOFFER 12: DHCP 서버가 12번 Offer를 보냈다.

DHCPREQUEST 6: 클라이언트가 6번 Request를 보냈다.

DHCPACK 6: DHCP 서버가 6번 Acknowledge로 확정했다.

모든 수치가 일치하면 DHCP 프로세스가 정상적으로 완료된 것이다.

4-3. DHCP Pool 상세 정보 확인

Core-SW# show ip dhcp pool VLAN10_SALES

Total addresses: 254: /24 네트워크에서 네트워크 주소(.0)와 브로드캐스트 주소(.255)를 제외한 사용 가능한 주소 수다.

Leased addresses: 2: 현재 2개의 주소가 할당되어 있다(PC1, PC2).

Current index 10.10.10.13: 다음에 할당될 IP 주소다. Excluded address(.1~.10)를 건너뛰고 .11, .12를 할당(PC1, PC2) 했으므로 다음은 .13이 된다.


5. 연결성 테스트

5-1. 같은 VLAN 내 통신 테스트

PC1에서 PC2로

같은 VLAN 내 통신은 L2 스위칭으로 직접 전달되므로 매우 빠르다. TTL이 64인 것은 라우터를 거치지 않았음을 의미한다.

5-2. 다른 VLAN 간 통신 테스트

PC1에서 PC3로

TTL이 63인 것은 Core-SW(L3)를 거치면서 1이 감소했음을 의미한다. 다른 VLAN 간 통신은 게이트웨이(Core-SW)를 통한 Inter-VLAN 라우팅이 필요하다.

5-3. 게이트웨이 통신 테스트

PC1에서 게이트웨이로

게이트웨이 응답의 TTL이 255인 것은 Cisco 장비의 기본 TTL 값이다.


3단계 : NAT/PAT 구성

1. NAT와 PAT의 차이

NAT (Network Address Translation):

  • 1:1 매핑: 하나의 사설 IP를 하나의 공인 IP로 변환
  • Static NAT: 내부 서버를 외부에 공개할 때 사용
  • 여러 사용자를 지원하려면 공인 IP가 사용자 수만큼 필요

PAT (Port Address Translation, NAT Overload):

  • N:1 매핑: 여러 사설 IP를 하나의 공인 IP로 변환
  • 포트 번호를 이용하여 세션 구분
  • 가정과 중소기업에서 가장 많이 사용
  • 이론적으로 하나의 공인 IP로 65,000개 이상의 동시 연결 지원

2. HQ-R1 PAT 구성

작업 대상

[내부 네트워크] → [HQ-R1] → [ISP-R] → [Internet]

HQ-R1에서 PAT를 설정하여 모든 내부 트래픽이 하나의 공인 IP(203.0.113.2)로 변환되도록 한다.

access-list 1 permit 10.10.10.0 0.0.0.255: NAT 대상 네트워크를 정의한다. Wildcard mask 0.0.0.255는 마지막 옥텟(8비트)만 변할 수 있다는 의미로, 10.10.10.0/24와 동일하다.

remark NAT Inside Networks: Access List에 주석을 추가한다. 나중에 설정을 검토할 때 용도를 쉽게 파악할 수 있다.

ip nat inside source list 1 interface FastEthernet0/0 overload: 핵심 NAT 명령어다.

  • inside source: 내부에서 시작하는 트래픽의 출발지 주소를 변환
  • list 1: ACL 1에 정의된 네트워크만 변환 대상
  • interface FastEthernet0/0: 이 인터페이스의 IP 주소(203.0.113.2)를 공인 IP로 사용
  • overload: PAT 활성화, 포트 번호를 이용하여 여러 연결을 하나의 IP로 처리

ip nat outside/inside: 인터페이스의 역할을 지정한다. Outside는 공인 네트워크(인터넷) 방향, Inside는 사설 네트워크(내부) 방향이다. 이 설정이 없으면 NAT가 동작하지 않는다.

 

왜 ACL로 네트워크를 정의할까? 모든 내부 트래픽을 NAT하는 것이 아니라, 특정 네트워크만 선택적으로 NAT할 수 있다. 예를 들어 서버 VLAN은 NAT에서 제외하고 싶을 때 ACL에서 제거하면 된다.


3. NAT 동작 검증

3-1. PC에서 인터넷 연결 테스트

PC1에서 ISP-R로 ping

PC1> ping 203.0.113.1

84 bytes from 203.0.113.1 icmp_seq=1 ttl=254 time=1.845 ms
84 bytes from 203.0.113.1 icmp_seq=2 ttl=254 time=2.102 ms
84 bytes from 203.0.113.1 icmp_seq=3 ttl=254 time=2.089 ms

성공! PC1(10.10.10.100)이 공인 IP 대역(203.0.113.1)과 통신할 수 있다.

 

PC1에서 인터넷(8.8.8.1)로 ping

PC1> ping 8.8.8.1

84 bytes from 8.8.8.1 icmp_seq=1 ttl=253 time=2.347 ms
84 bytes from 8.8.8.1 icmp_seq=2 ttl=253 time=2.512 ms
84 bytes from 8.8.8.1 icmp_seq=3 ttl=253 time=2.489 ms

TTL이 253인 것은 2번의 홉(HQ-R1, ISP-R)을 거쳤음을 의미한다.


3-2. HQ-R1에서 NAT Translation 테이블 확인

HQ-R1# show ip nat translations

 

예상 출력

Pro Inside global      Inside local       Outside local      Outside global
icmp 203.0.113.2:1     10.10.10.100:1     8.8.8.1:1          8.8.8.1:1
icmp 203.0.113.2:2     10.10.10.100:2     203.0.113.1:2      203.0.113.1:2
icmp 203.0.113.2:3     10.10.20.100:3     8.8.8.1:3          8.8.8.1:3
icmp 203.0.113.2:4     10.10.30.100:4     203.0.113.1:4      203.0.113.1:4

Inside global: 변환된 주소(공인 IP + 포트)
Inside local: 원본 주소(사설 IP + 포트)
Outside local/global: 목적지 주소(일반적으로 동일)

주목할 점은 서로 다른 내부 IP(10.10.10.100, 10.10.20.100, 10.10.30.100)가 모두 같은 공인 IP(203.0.113.2)로 변환되지만, 포트 번호(1, 2, 3, 4)가 다르다는 것이다. 이것이 PAT의 핵심 메커니즘이다.


 

마무리

이번 실습을 통해 엔터프라이즈 네트워크의 필수 서비스인 DHCP와 NAT/PAT를 구성하고 검증했다.

 

배운 점

DHCP 서버를 Core-SW(L3 스위치)에 구성한 이유는 각 VLAN의 게이트웨이와 DHCP 서버가 같은 장비에 있으면 DHCP 요청이 직접 도달하기 때문이다. 만약 DHCP 서버가 다른 서브넷에 있다면 각 VLAN 인터페이스에 ip helper-address를 설정해야 한다.

 

NAT Translation Table은 세션이 종료되거나 타임아웃이 발생하면 자동으로 삭제된다. ICMP는 60초, TCP는 24시간, UDP는 5분이 기본 타임아웃이다. 이를 통해 포트 번호를 재사용할 수 있다.

 

실제 엔터프라이즈 환경에서는 내부 서버를 외부에 공개해야 하는 경우가 있다. 이때는 Static NAT를 사용하여 특정 공인 IP를 특정 내부 서버에 영구적으로 매핑한다. PAT는 동적 세션에만 적합하고, 서버는 Static NAT를 사용해야 외부에서 항상 동일한 공인 IP로 접속할 수 있다.

'Network Practice' 카테고리의 다른 글

[GNS3] ACL 보안 정책 구현 (Standard, Extended, Named ACL)  (0) 2025.12.25
[GNS3] Port Security 및 스위치 보안  (1) 2025.12.17
[GNS3] OSPF 동적 라우팅 구성 및 Multi-Area 설계  (0) 2025.12.03
[GNS3] HSRP 고가용성 (High Availability) 게이트웨이 구성  (0) 2025.12.01
[WireShark] Filtering - 다양한 복합 필터링 기법  (0) 2025.11.30
'Network Practice' 카테고리의 다른 글
  • [GNS3] ACL 보안 정책 구현 (Standard, Extended, Named ACL)
  • [GNS3] Port Security 및 스위치 보안
  • [GNS3] OSPF 동적 라우팅 구성 및 Multi-Area 설계
  • [GNS3] HSRP 고가용성 (High Availability) 게이트웨이 구성
김슭삵
김슭삵
Layer By Layer. 한 층씩 성장 해가는 네트워크와 서버의 학습 공간
  • 김슭삵
    Layer By Layer
    김슭삵
  • 전체
    오늘
    어제
    • 분류 전체보기 (49)
      • Network Concepts (36)
      • Network Practice (12)
      • Linux (0)
      • AWS & Cloud (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    wireshark
    WLAN
    ARP
    Network
    ROAS
    Etherchannel
    dhcp
    ACL
    dai
    Nat
    LACP
    HSRP
    RSPAN
    dns
    TCP/IP
    gns3
    ERSPAN
    Cisco
    Port Mirroring
    vlan
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
김슭삵
[GNS3] DHCP 서버구성 및 NAT/PAT 활용
상단으로

티스토리툴바