Profile picture

[네트워크] eve-ng로 NAT 구축 실습하기

JaehyoJJAng2023년 06월 20일

◾️ 개요

프라이빗한 네트워크에서 동작 중인 서버들을 퍼블릭 네트워크(인터넷)로 트래픽을 전송하기 위해서 NAT를 실습해볼 것이다.

즉, 이번 실습에서는 내부망에 있는 서버들이 외부 인터넷망과 통신을 하고
또한 인터넷 망에서는 내부 서버의 특정 포트로 접속할 수 있도록 설정할 것이다.

본래라면 내부망에서는 인터넷을 사용할 수 없고,
인터넷 망에서는 내부망 서버에 접근할 수 없지만 NAT를 적용한다면 가능해진다.


▪️ 네트워크 구성도

  • CIDR : 172.16.0.0/24

image


▪️ 실습 환경

  • EVE-NG 가상화 솔루션
  • VMware Workstation Pro 17

▪️ 사전 준비

  • NAT 적용 전 라우터에 기본적인 인터페이스 설정이 되어있어야 한다.

A. 내/외부망 인터페이스 IP 할당
image


▪️ inside NAT 적용

A. 먼저 내부 네트워크(172.16.0.0/29, 172.16.0.32/27)가 외부로 나가는 NAT를 설정해보자

# 라우터의 config 터미널로 이동
configure terminal

A-a. 내부 네트워크 인터페이스에 NAT 설정

interface <내부 네트워크를 가리키는 인터페이스>
ip nat insde

A-b. 외부 네트워크 인터페이스에 NAT 설정

interface <외부 네트워크를 가리키는 인터페이스>
ip nat outside

위 구성도대로 바꿔본다면 아래처럼 설정해주면 된다.

int range g0/0, g0/2
ip nat inside

int g1/0
ip nat outside

A-c. NAT를 적용할 내부 네트워크 대역 지정

ip access-list standard 1
permit 172.16.0.0 0.0.0.7 # bastion 대역 지정
permit 172.16.0.32 0.0.0.15 # 내부 서버 대역 지정

A-d. 위에서 생성한 ACL을 기준으로 NAT를 적용하면 끝이다.

ip nat inside source list <ACL 번호> interface <외부로 나가는 인터페이스> overload
ip nat inside source list 1 interface Gi1/0 overload

▪️ outside NAT 적용

이번에는 외부 인터페이스 IP 주소와 특정 포트를 내부 서버로 매핑하는 NAT를 적용해보도록 하자.

NAT 적용 시 매핑할 내부 서버의 포트 번호를 기재해주기만 하면 끝이다.


A. 192.168.219.5의 특정 포트(22번 포트)로 접근했을 때 내부 서버(172.16.0.2/29)의 22번 포트로 요청을 전달하도록 설정

A-a. 외부로 나가는 인터페이스에 NAT 설정

interface <외부로 나가는 인터페이스>
ip nat outside
interface Gi1/0
ip nat outside

A-b. NAT 설정

ip nat inside source static tcp <내부 서버 IP> <내부 포트> <외부 인터페이스 IP> <외부 포트> 
ip nat inside source static tcp 172.16.0.2 22 192.168.219.5 22

B. 192.168.219.5의 특정 포트(80번 포트)로 접근했을 때 내부 서버(172.16.0.40/27)의 80번 포트로 요청을 전달하도록 설정

b-a. NAT 설정

ip nat inside source static tcp <내부 서버 IP> <내부 포트> <외부 인터페이스 IP> <외부 포트> 
ip nat inside source static tcp 172.16.0.40 80 192.168.219.5 80

◾️ 트러블슈팅

A. 라우터에서 NAT 설정 확인 방법

show ip nat translations
show ip nat statistics
show ip nat translations verbose

B. 잘못 설정된 NAT 제거하기

# 아래 처럼 실수로 잘못된 IP로 설정한 경우
ip nat inside source static tcp 172.16.0.99 80 192.168.219.5 8080

# no 커맨드를 붙여 삭제
no ip nat inside source static tcp 172.16.0.99 80 192.168.219.5 8080

◾️ 와일드카드 마스크

와일드카드 마스크는 **ACLs(Access Control Lists)**나 라우터 설정에서 서브넷을 지정할 때 사용되며, 서브넷을 역으로 나타내는 역할을 합니다. 이것은 비트를 반대로 표현하는 것으로, 0은 일치해야 하는 비트, 1은 일치하지 않아야 하는 비트를 나타냅니다.

따라서 /29 서브넷에서의 와일드카드 마스크는 0.0.0.7이 됩니다. 각각의 비트를 역으로 나타내기 때문에 255.255.255.255(모든 비트가 1) - 255.255.255.248(네트워크 부분이 1인 비트) = 0.0.0.7이 됩니다.

이를 ACL이나 라우터 설정에서 사용할 때, 예를 들어 특정 IP 범위를 허용 또는 거부하고 싶을 때와 같은 목적으로 활용됩니다.


Loading script...