CCNA - NAT

일상 코딩·2022년 5월 17일
0

CCNA

목록 보기
13/17

01.NAT 개요

  • 사설IP 주소공인IP 주소를 서로 변환 시켜주는 것을 의미한다.
  • 사설IP 주소 => 공인IP 주소
  • 공인IP 주소 => 사설IP 주소

사설 IP주소

  • 인터넷에 연결할 수 없는 주소
  • 내부 네트워크 안에서 통신하기 위한 주소 (내부 네트워크)
  • A 클래스: 10.0.0.0 ~ 10.255.255.255
  • B 클래스: 172.16.0.0 ~ 172.31.255.255
  • C 클래스: 192.168.0.0 ~ 192.168.255.255

공인 IP주소

  • 인터넷에 연결할 수 있는 공인된 주소
  • 내부 네트워크와 외부 네트워크 모두 통신할 수 있는 고유한 주소 (외부 네트워크)

  • 사설IP 주소를 사용하는 B,C 회사는 IP주소가 중복되도 상관 없지만 만약 공용 네트워크(Internet)을 사용하면 사설IP 주소는 중복될 수 있기 때문에 유일한 공인IP 주소로 변환 해야 합니다.
  • NAT사설IP 주소공인IP 주소로, 공인IP 주소사설IP 주소로 변환 시켜 줍니다.
  • NAT 기능의 예시로는 공유기가 있으며 공유기는 외부 네트워크와 연결되는 통신 사업자로부터 공인IP 주소를 할당 받고 공유기 내부에 연결되는 PC에는 사설IP 주소를 할당하여 PC가 사용하는 사설IP 주소공인IP 주소로 변환해 줍니다.

  • 라우터에 NAT 기능을 설정하여 사설IP 주소공인IP 주소간에 자동으로 변환 되도록 해줍니다.
  • 사설 네트워크에 있는 PC에서 라우터로 프레임을 보낼 때 출발지 IP 주소사설IP 주소(192.168.10.100)를 보냅니다.
  • 라우터는 들어온 프레임의 출발지 IP 주소사설IP 주소(192.168.10.100)에서 공인 IP 주소(211.255.10.100)로 변환하여 NAT 테이블에 저장하고 프레임의 출발지 IP 주소공인IP 주소로 바꾸어 외부 네트워크의 목적지에 전달합니다.
  • 외부 네트워크에서는 공인IP 주소만 알수 있으므로 목적지 IP출발지 IP 주소 였던 211.255.10.100으로 설정 합니다.
  • NAT가 동작하는 라우터는 다시 NAT 테이블을 확인하여 주소 변환 내역이 있는 경우 목적지 IP 주소공인IP 주소(211.255.10.100)에서 해당되는 사설IP 주소(192.168.10.100)로 변환하여 해당 프레임을 보냅니다.
  • NAT table: 사설IP 주소공인IP 주소를 기록하고 변환의 기준이 된다.

NAT 장점

  • 공인 IP 주소 공유로 인한 IP 부족의 해결
  • 로컬 네트워크에 새로운 장비를 추가하기가 쉽다.
  • 사설 네트워크이기 때문에 관리자가 통제하기 쉽다.
  • 기관에서 ISP를 변경하는 것이 용이하다. 공인 주소만 바꾸면 되기 때문이다.
  • 외부의 악성 공격자가 클라이언트 장비에 직접 접근하는 것이 어려워 일종의 방화벽처럼 동작한다.

NAT 단점

  • NAT는 네트워크를 구성하고 관리하는 데 있어 관리가 좀 더 복잡하다.
  • 특정 어플리케이션과의 호환성 문제가 있다.
  • IPSec과 같은 프로토콜은 헤더의 변조를 탐지하도록 설계됐기 때문에 NAT에 의한 변경과 악성 데이터그램 해킹을 잘 구분하지 못한다.
  • 클라이언트 접근 지원이 어렵다.
  • 데이터그램이 사설 네트워크와 인터넷을 오갈 때마다 주소 변환과 헤더 체크섬을 다시 계산해야 한다.

02.NAT 종류

정적 NAT

  • 사설IP 주소 하나와 공인IP 주소 하나를 1:1 맵핑

동적 NAT

  • 사설IP 주소 범위와 공인IP 주소 범위를 맵핑

정적 NAT과 동적 NAT의 차이점

  • 동적 NAT은 맵핑한 사설 & 공인 IP 주소의 범위안의 모든 IP주소를 변환할 수 있지만 정적 NAT은 설정한 오직 하나의 사설 & 공인 IP 주소만 변환 가능합니다.

NAT Overload(PAT)

  • 사설IP 주소 범위와 공인IP 주소 하나를 맵핑
  • 하나의 공인IP 주소만을 사용하기 때문에 해당하는 사설 IP 주소 구별이 불가능 하기 때문에 4계층Port Number(PAT)를 함께 사용합니다.

03.NAT 특징

IP 주소 절약

  • PAT를 이용하면 여러 개의 사설IP 주소를 하나의 외부 주소(공인IP 주소)로 변환 가능
  • 사설IP주소200개가 있더라도 공인IP 주소 1개만 있으면 외부 네트워크와 통신할 수 있으므로 IP주소를 절약할 수 있다.

보안 향상

  • 주소나 내부 토폴로지를 광고하지 않기 때문에 외부 접근을 통제해 보안을 향상 시킵니다.
  • 변환된 공인IP 주소로 통신하기 때문에 외부 인터넷에서는 내부 네트워크의 주소나 토폴로지를 알 수 없어 외부에서 내부 네트워크의 접근을 통제하여 보안을 향상 시킬 수 있는 방법을 사용합니다.
  • 동적 NAT를 사용하면 변환되는 공인IP 주소가 매번 바뀌기 때문에 내부 네트워크에서는 공인 IP주소 예측이 어려워 집니다.
  • PAT를 사용하게되면 변환된 포트 번호를 함께 사용하게 되는데 출발지 포트번호는 프로그램이 실행될 때 마다 변경 되므로 예측이 어려워 외부네트워크에서 내부네트워크로의 접근을 통제할 수 있습니다.

04.NAT 설정

정젹 NAT 설정
1.사설IP 주소와 공인IP 주소 맵핑

Router(config)#ip nat inside source static 사설IP 주소 공인IP 주소

2.적용

Router(config)#int 사설 네트워크와 연결되는 인터페이스 번호 
Router(config-if)#ip nat inside 
Router(config-if)#int 공용 네트워크와 연결되는 인터페이스 번호
Router(config-if)#ip nat outside 

3.확인

Router#show ip nat translations 

정적 NAT 실습

R1>

Router(config)#int g0/1
Router(config-if)#ip add 192.168.10.1 255.255.255.0
Router(config-if)#no sh

Router(config-if)#int s0/1/0
Router(config-if)#ip add 211.255.10.1 255.255.255.0
Router(config-if)#no sh

// 라우팅
Router(config)#router ospf 10
Router(config-router)#network 211.255.10.0 0.0.0.255 area 0

// 사설IP 주소와 공인IP 주소 맵핑
Router(config)#ip nat inside source static 192.168.10.100 211.255.10.100

// 적용
Router(config)#int g0/1
Router(config-if)#ip nat inside 
Router(config-if)#int s0/1/0
Router(config-if)#ip nat outside 

// 확인
PC> ping 211.255.20.100 // 반드시 ping test 후에 nat table 확인 해야됨 
Router#show ip nat translations 
Pro  Inside global     Inside local       Outside local      Outside global
---  211.255.10.100    192.168.10.100     ---                ---

R2>

Router(config)#int g0/0
Router(config-if)#ip add 211.255.20.1 255.255.255.0
Router(config-if)#no sh

Router(config-if)#int g0/1
Router(config-if)#ip add 211.255.30.1 255.255.255.0
Router(config-if)#no sh

Router(config)#int s0/1/0
Router(config-if)#ip add 211.255.10.2 255.255.255.0
Router(config-if)#no sh

// 라우팅
Router(config)#router ospf 10
Router(config-router)#network 211.255.20.0 0.0.0.255 area 0
Router(config-router)#network 211.255.30.0 0.0.0.255 area 0
Router(config-router)#network 211.255.10.0 0.0.0.255 area 0

동적 NAT 설정
1.사설IP 주소 범위 설정

Router(config)#access-list 식별자 번호(1~99) permit 출발지IP 와일드마스크

2.공인IP 주소 범위 지정

Router(config)#ip nat pool 풀이름 시작IP주소 끝IP주소 netmask 서브넷마스크
  • 시작IP 주소 ~ 끝IP 주소: 네트워크 주소와 브로드 캐스트 주소는 생략한다.

3.사설IP 주소와 공인IP 주소 맵핑

Router(config)#ip nat inside source 식별자번호(1~99) pool 풀이름

4.적용

Router(config)#int 인터페이스 번호
Router(config-if)#ip nat inside
Router(config-if)#int 인터페이스 번호
Router(config-if)#ip nat outside 

5.확인

Router#show ip nat translations 

동적 NAT 실습

R1>

Router(config)#int g0/1
Router(config-if)#ip add 192.168.10.1 255.255.255.0
Router(config-if)#no sh

Router(config-if)#int s0/1/0
Router(config-if)#ip add 211.255.10.1 255.255.255.0
Router(config-if)#no sh

// 라우팅
Router(config)#router ospf 10
Router(config-router)#network 211.255.10.0 0.0.0.255 area 0

// 사설IP 주소 범위 설정
Router(config)#access-list 1 permit 192.168.10.0 0.0.0.255

// 공인IP 주소 범위 지정
Router(config)#ip nat pool TEST 211.255.10.1 211.255.10.254 netmask 255.255.255.0
  • 맵핑 방법 1(주소 풀을 사용)

// 사설IP 주소와 공인IP 주소 맵핑
Router(config)#ip nat inside source list 1 pool TEST
  • 맵핑 방법 2(단일 IPv4 주소 사용)
// 사설IP 주소와 공인IP 주소 맵핑 (Interface Number 이용)
Router(config)#no ip nat inside source list 1 pool TEST
Router(config)#no ip nat pool TEST 211.255.10.1 211.255.10.254 netmask 255.255.255.0
Router(config)#ip nat inside source list 1 int s0/0/0
  • 이전에 설정헸던 pool name을 삭제 합니다.
  • 사설 IP주소와 공인 IP 주소를 pool name 대신 interface number로 새로 매핑 해줍니다.
  • 다시 각각의 interfaceinsideoutside를 설정 해줍니다.
  • 이처럼 사설 IP 주소와 공인 IP주소룰 맵핑할 때 pool name을 사용하지 않고 Interface Number를 이용해도 사설 IP 주소와 공인 IP 주소간에 맵핑 가능 합니다.

// 적용
Router(config)#int g0/1
Router(config-if)#ip nat inside
Router(config-if)#int s0/1/0
Router(config-if)#ip nat outside 

// 확인
PC> ping 211.255.20.100 // 반드시 ping test 후에 nat table 확인 해야됨 
Router#show ip nat translations 
icmp 211.255.10.1:21   192.168.10.100:21  211.255.20.100:21  211.255.20.100:21
icmp 211.255.10.1:22   192.168.10.100:22  211.255.20.100:22  211.255.20.100:22
icmp 211.255.10.1:23   192.168.10.100:23  211.255.20.100:23  211.255.20.100:23
icmp 211.255.10.1:24   192.168.10.100:24  211.255.20.100:24  211.255.20.100:24
icmp 211.255.10.2:5    192.168.10.200:5   211.255.20.100:5   211.255.20.100:5
icmp 211.255.10.2:6    192.168.10.200:6   211.255.20.100:6   211.255.20.100:6
icmp 211.255.10.2:7    192.168.10.200:7   211.255.20.100:7   211.255.20.100:7
icmp 211.255.10.2:8    192.168.10.200:8   211.255.20.100:8   211.255.20.100:8

R2>

Router(config)#int g0/0
Router(config-if)#ip add 211.255.20.1 255.255.255.0
Router(config-if)#no sh

Router(config-if)#int g0/1
Router(config-if)#ip add 211.255.30.1 255.255.255.0
Router(config-if)#no sh

Router(config)#int s0/1/0
Router(config-if)#ip add 211.255.10.2 255.255.255.0
Router(config-if)#no sh

// 라우팅
Router(config)#router ospf 10
Router(config-router)#network 211.255.10.0 0.0.0.255 area 0
Router(config-router)#network 211.255.20.0 0.0.0.255 area 0
Router(config-router)#network 211.255.30.0 0.0.0.255 area 0

NAT Overload(PAT) 실습

R1>

Router(config)#int g0/1
Router(config-if)#ip add 192.168.10.1 255.255.255.0
Router(config-if)#no sh

Router(config-if)#int s0/1/0
Router(config-if)#ip add 211.255.10.1 255.255.255.0
Router(config-if)#no sh

// 라우팅
Router(config)#router ospf 10
Router(config-router)#network 211.255.10.0 0.0.0.255 area 0

// 사설IP 주소 범위 설정
Router(config)#access-list 1 permit 192.168.10.0 0.0.0.255

// 공인IP 주소 범위 지정
Router(config)#ip nat pool TEST 211.255.10.1 211.255.10.254 netmask 255.255.255.0
  • 맵핑 방법 1(주소 풀을 사용)
// 사설IP 주소와 공인IP 주소 맵핑 (pool name 이용)
Router(config)#ip nat inside source list 1 pool TEST overload 
  • 맵핑 방법 2(단일 IPv4 주소 사용)
// 사설IP 주소와 공인IP 주소 맵핑 (Interface Number 이용)
Router(config)#no ip nat inside source list 1 pool TEST overload 
Router(config)#no ip nat pool TEST 211.255.10.1 211.255.10.254 netmask 255.255.255.0
Router(config)#ip nat inside source list 1 int s0/0/0 overload 
  • 이전에 설정헸던 pool name을 삭제 합니다.
  • 사설 IP주소와 공인 IP 주소를 pool name 대신 interface number로 새로 매핑 해줍니다.
  • 다시 각각의 interfaceinsideoutside를 설정 해줍니다.
  • 이처럼 사설 IP 주소와 공인 IP주소룰 맵핑할 때 pool name을 사용하지 않고 Interface Number를 이용해도 사설 IP 주소와 공인 IP 주소간에 맵핑 가능 합니다.
  • PAT동적 NAT 설정 부분에서 마지막에 overload 키워드를 추가 해줘야 합니다.

// 적용
Router(config)#int g0/1
Router(config-if)#ip nat inside
Router(config-if)#int s0/1/0
Router(config-if)#ip nat outside 

// 확인
PC> ping 211.255.20.100 // 반드시 ping test 후에 nat table 확인 해야됨 
Router#show ip nat translations 
Pro  Inside global     Inside local       Outside local      Outside global
icmp 211.255.10.5:33   192.168.10.200:33  211.255.20.100:33  211.255.20.100:33
icmp 211.255.10.5:34   192.168.10.200:34  211.255.20.100:34  211.255.20.100:34
icmp 211.255.10.5:35   192.168.10.200:35  211.255.20.100:35  211.255.20.100:35
icmp 211.255.10.5:36   192.168.10.200:36  211.255.20.100:36  211.255.20.100:36
icmp 211.255.10.5:41   192.168.10.100:41  211.255.20.100:41  211.255.20.100:41
icmp 211.255.10.5:42   192.168.10.100:42  211.255.20.100:42  211.255.20.100:42
icmp 211.255.10.5:43   192.168.10.100:43  211.255.20.100:43  211.255.20.100:43
icmp 211.255.10.5:44   192.168.10.100:44  211.255.20.100:44  211.255.20.100:44
  • 동적 NAT와 다르게 여러개의 사설IP 주소들이 하나의 공용IP로 변환되고 있다.
  • 공인IP 주소 뒤에 콜론(:)다음에 오는 숫자는 포트 번호를 의미한다.
  • NAT Overload는 하나의 공인IP 주소로 변환되기 때문에 공인IP가 다시 사설IP 주소로 변환되는 경우 식별을 하기 위해서 포트번호를 사용한다.

R2>

Router(config)#int g0/0
Router(config-if)#ip add 211.255.20.1 255.255.255.0
Router(config-if)#no sh

Router(config-if)#int g0/1
Router(config-if)#ip add 211.255.30.1 255.255.255.0
Router(config-if)#no sh

Router(config)#int s0/1/0
Router(config-if)#ip add 211.255.10.2 255.255.255.0
Router(config-if)#no sh

// 라우팅
Router(config)#router ospf 10
Router(config-router)#network 211.255.10.0 0.0.0.255 area 0
Router(config-router)#network 211.255.20.0 0.0.0.255 area 0
Router(config-router)#network 211.255.30.0 0.0.0.255 area 0

05.NAT 테이블 확인 및 초기화 명령어

NAT 변환 테이블 확인 명령어

Router#show ip nat translation

NAT 테이블 초기화 명령어

outer#clear ip nat translation *
Router#clear ip nat translation inside 172.18.3.2
Router#clear ip nat translation outside 192.168.1.10

NAT 테이블 통계 정보 확인 명령어

Router#show ip nat statistics
Total translations: 8 (0 static, 8 dynamic, 8 extended)
Outside Interfaces: Serial0/0/0
Inside Interfaces: GigabitEthernet0/0
Hits: 54  Misses: 64
Expired translations: 44
Dynamic mappings:
  • 총 활성 변환 수, NAT 구성 매개 변수, 풀의 주소 수 및 할당된 주소 수에 대한 정보를 표시합니다.

NAT 테이블 통계 정보 확인 명령어

Router#clear ip nat statistics
profile
일취월장(日就月將) - 「날마다 달마다 성장하고 발전한다.」

0개의 댓글