본문 바로가기

카테고리 없음

NAT /PAT

NAT

Network Address Translation

[ NAT (Network Address Translation) ]

  • 네트워크 주소 변환 기술
  • 네트워크의 사설 IP Address를 공인IP Address로 변환하거나 그 반대로 변환하는 기술
  • 한정된 공인 IP Address를 효율적으로 사용하고 내부 네트워크를 보호하기 위한 기술
  • 인터넷에 연결된 장치들이 제한된 공인 IP Address를 공유할 수 있도록 해줌
  • 사설 IP를 공인망에서 사용 불가
  • NAT는 기본적으로 방화벽 역할을 함 (내부에서 외부로 접근은 가능 // 외부에서 내부 접근은 불가)

[ NAT 사용하는 이유 ]

1) 공인 IP Address의 부족 문제 해결

공인 IP Address는 한정된 자원, NAT는 하나의 공인 IP Address를 사용해 여러 내부 장치가 인터넷에 접속하도록 함

2) 내부 네트워크의 보안성 강화

내부 IP Address를 외부 네트워크에 노출하지 않기 때문에 보안이 강화됨, 외부에서 내부 네트워크를 직접적으로 공격(접근) 할 수 X

3) 효율적인 네트워크 관리

회사나 가정에서 여러 기기가 하나의 공인 IP를 통해 인터넷에 접속할 수 있어 네트워크 관리가 편리

NAT는 주로 Router에 설정되며, 두 가지 역할을 함

  • 출발 패킷의 변환

내부 장치가 인터넷으로 데이터를 보낼 때, Router는 내부 IP Address를 자신의 공인 IP Address로 변경

  • 도착 패킷의 변환

외부에서 오는 응답 패킷은 공인 IP Address로 도착 Router는 이를 내부 IP Address로 다시 변환하여 올바른 장치에 전달

< do wr 저장하고 저장한 상태로 되돌아가고 싶을 때 >

Router#erase startup-config

Router#reload

System configuration has been modified. Save? [yes/no]:no


STATIC NAT

Static Network Address Translation

[ Static NAT ]

  • 내부 IP Address와 공인 IP Address를 1:1로 매핑, 고정된 IP Address를 필요로 하는 경우에 사용됨
  • PC에서 외부 Router로 통신은 가능하지만, 외부 Router에서 PC로 통신은 불가

Router(config)#ip nat [inside] source static [192.168.10.2] [1.1.12.2]

사설 ~10.2 PC와 공인 ~12.2 네트워크 mapping

Router(config)#ip nat [inside] source static [192.168.10.3] [1.1.12.3]

사설 ~10.3 PC와 공인 ~12.3 네트워크 mapping

Router(config)#int fa0/0

Router(config-if)#ip nat inside

내부 네트워크 인터페이스 적용

Router(config-if)#int s0/0/0

Router(config-if)#ip nat outside

외부 네트워크 인터페이스 적용

<NAT table 확인>

Router(config)#do sh ip nat trans

<NAT table 삭제>

Router(config)#do clear ip nat trans *


DYNAMIC NAT

Dynamic Network Address Translation

[ Dynamic NAT ]

  • 내부 IP Address를 변환할 때 사용할 공인 IP Address를 복수 설정해두고, 동적 mapping
    • 결국 1:1로 mapping되는 건 동일
  • PC에서 외부 Router로 통신은 가능하지만, 외부 Router에서 PC로 통신은 불가

Router(config)#ip nat pool [cisco] [1.1.12.3] [1.1.12.254] [netmask 255.255.255.0]

[Start Address] [End Address]

이름이 [cisco[인 공인 IP Address 범위 설정

내부 네트워크가 인터넷과 통신할 수 있도록 변환해 줄 외부용 공인 IP 주소 범위 지정

 

Router(config)#access-list 1 permit 192.168.10.0 0.0.0.255

사설 IP Address Pool (ACL를 만들어 NAT 변환 대상이 되는 사설 네트워크 범위 지정 리스트 허용 설정) 

Router(config)#ip nat [inside] source [list 1] pool [cisco]

공인 IP Address Pool과 사설 IP Address Pool mapping

(ACL 1에서 지정한 192.168.10.x 범위의 IP를 cisco 공인 IP Pool(1.1.12.3 ~ 1.1.12.254)과 mapping)

Router(config)#int fa0/0

Router(config-if)#ip nat inside 내부 네트워크 인터페이스 적용

Router(config-if)#int s0/0/0

Router(config-if)#ip nat outside 외부 네트워크 인터페이스 적용

(1) 내부 장치의 요청

(2) NAT 변환

(3) 외부 네트워크로 전달

(4) 응답 패킷 변환

(5) 응답 전달

<결과>

내부 네트워크(192.168.10.0/24)가 공인 IP(1.1.12.3 ~ 1.1.12.254)로 변환되어 외부 인터넷에 접속 가능

외부에서는 내부 네트워크의 사설 IP를 볼 수 없기 때문에 보안 강화


PAT

Port Address Translation

[ PAT (Port Address Translation, 포트 주소 변환) ]

  • Static/Dynamic NAT : 보안성은 향상되지만 IP 절약은 X (PC:IP 1:1 mapping ->  PAT )
  • PAT : 여러 내부 IP Address가 하나의 공인 IP Address를 공유
  • 이를 위해 장치별로 포트를 다르게 설정하여 구분
  • 공인 IP 하나만 있으면 여러 대의 PC mapping 가능 (→ IP 절약 가능)

Router(config)#ip nat pool cisco [1.1.12.3] [1.1.12.3] [net 255.255.255.0]

내부 네트워크가 NAT 변환 시 사용할 공인 IP를 지정

Router(config)#access-list 1 permit 192.168.10.0 0.0.0.255

ACL을 만들어 NAT 변환 대상이 될 사설 IP 범위를 지정

Router(config)#ip nat inside source list 1 pool cisco [overload]

(overload 미입력시 Dynamic NAT 설정됨으로 유의 필요)

Router(config)#int fa0/0

Router(config-if)#ip nat inside 내부 네트워크 인터페이스 적용

Router(config-if)#int s0/0/0

Router(config-if)#ip nat outside 외부 네트워크 인터페이스 적용

<결과>

단일 공인 IP Address(1.1.12.3)를 여러 사설 IP Address와 공유하여,

내부 네트워크의 모든 장치가 인터넷에 접속할 수 있도록 만드는 NAT/PAT 구성

공인 IP Address가 부족할 때, 하나의 공인 IP를 여러 장치가 공유하도록 하기 위해 사용

(예를 들어, 집에서 Wi-Fi에 연결된 모든 장치(스마트폰, 노트북 등)가 동일한 공인 IP를 사용해 인터넷에 접속하는 경우)


DHCP 동작 : 4-WAY-HANDSHAKE

[ DHCP 동작 : 4-way-handshake ]

4단계 과정을 거쳐서 Client에게 IP Address를 할당

1) DHCP Discover - Client → Server에게 'Discover' message 전송 (IP 임대 요청 시작)

2) DHCP Offer - Server → Client에게 'Offer' message 전송 (IP 임대 응답)

3) DHCP Request - Client → Server에게 'Request' message 전송 (IP 임대 최종 요청)

4) DHCP Ack - Server → Client에게 'Ack' message 전송 (IP 임대)


★ 암기

사설 IP Address

- Class A : 10.0.0.0 ~ 10.255.255.255 (10.0.0.0 /8)

- Class B : 172.16.0.0 ~ 172.31.255.255 (172.16.0.0 /12)

- Class C : 192.168.0.0 ~ 192.168.255.255 (192.168.0.0 /16)

[ 포트 포워딩(Port Forwarding) ]

  • Router가 특정 포트를 기반으로 트래픽을 내부 네트워크의 특정 장치로 전달하도록 설정
  • 외부 네트워크(인터넷)에서 특정 장치나 서비스를 내부 네트워크의 특정 장치로 연결하도록 해주는 기술
  • 일반적으로 내부 네트워크(사설 IP)는 인터넷(공인 IP)에서 직접 접근할 수 없음

하지만 내부 장치에서 실행 중인 서비스(예: 게임 서버, 웹 서버 등)에 외부에서 접근할 필요가 있을 때 포트 포워딩을 사용

[ Routing Protocol ]

<Best Path (최적의 경로)>

네트워크 라우팅에서 여러 경로 중 가장 적합한(가장 효율적이고 최적화된) 경로를 선택하는 과정 또는 그 결과

(Best Path만 Routing table에 올라감)

<Routing Table>

어떤 목적지로 가기 위해서 어떤 경로로 가야 하는지 알 수 있는 네트워크 지도

<Routing Protocol>

목적지 네트워크로 가는 경로를 알아내기 위해, 최적의 경로를 산정하기 위해 사용하는 Protocol

Routing Protocol이 설정되지 않으면 자신과 직접 연결된 주소만 Routing Table에 보임

각 Router는 서로의 주소를 알아야 통신 가능 (한쪽의 Router만 상대방 Router의 주소를 알고 있을 경우 통신 불가능)


SWITCH와 ROUTER 비교

Switch는 목적지 MAC Address가 테이블에 없을 때 Flooding을 하고

Router는 목적지 IP Address가 라우팅 테이블에 없을 때 Drop 시킨다.

* Flooding : Flooding은 네트워크에 있는 장치의 MAC Address를 학습하기 위한 과정

(=프레임을 받은 포트를 제외하고 모든 포트로 프레임을 Broadcast 하는 동작)


ROUTING PROTOCOL

[ Routing Protocol ]

Router(config)#do sh ip route

S 192.168.10.0/24 [1/0] via 1.1.12.1

                               [1/0] via 2.2.12.1

=> 기본 Routiung 하면 Routing 같은 대역에 두 개가 올라옴

Best Path 만들기 위해 한 포트 metric 값을 3으로 지정 (3이 되면 Routing Table에서 사라짐, Default=1)

Router(config)#ip route 192.168.10.0 255.255.255.0 2.2.12.1 [3]

 

Router(config)#do sh ip ro

S 192.168.10.0/24 [1/0] via 1.1.12.1

=> 하나의 Best Path만 남음

올라온 포트를 shutdown 시키면?

Router(config)#do sh ip ro

 

S 192.168.10.0/24 [3/0] via 2.2.12.1

=> 사라졌던 Routing Table이 올라옴


< CHECK POINT! >

✔ metric 값 = Routing Protocol에서 최적의 경로를 선택하기 위한 기준값 (값이 낮을수록 우선순위)

✔ metric 값이 동일하면 Router는 Load Balencing을 통해 트래픽 분산

✔ Routing Protocol 별 metric 특징

  1. RIP : hop count
  2. OSPF : cost, 대역폭
  3. EIGRP : 복합 요소 (K5값)

K1 : 대역폭(BW) K2 : 부하 (Load) K3 : 지연(Delay) K4 : 신뢰성(Reliability) K5 : 확장된 신뢰성(Reliability + K4 보정값)


RIP - DYNAMIC ROUTING

Routing Information Protocol

[ Dynamic Routing - RIP ]

  • 자신의 Router에 연결된 네트워크 대역만 RIP로 등록 / 서브넷마스크 미설정
  • 최대 홉수 0-15까지 / 라우터 15대 이하의 네트워크 사용 가능

Router1(config)#router rip

Router1(config-router)#version 2

Router1(config-router)#network 192.168.10.0

Router1(config-router)#network 1.1.12.0

Router1(config-router)#no auto-summary

Router2(config)#router rip

Router2(config-router)#version 2

Router2(config-router)#network 192.168.20.0

Router2(config-router)#network 1.1.12.0

Router2(config-router)#no auto-summary

Router는 Next Hop 카운트로만 Best Path를 결정함

Next Hop 수가 같으면 이중 경로를 잡게 됨


DEBUG

[ Debug ]

Router#debug ip rip

 

실시간 동작을 모니터링하는 명령어

RIP 패킷의 송수신 상황과 Routing Table 업데이트 과정을 실시간으로 확인 가능

<Routing table 삭제 명령어>

Router#clear ip ro *

 

동적 할당을 한 경우 Routing Table이 다시 올라와서 삭제 안 될 수 있음, 정작 할당 시에만 사용