network 이론/basic network

NAT ( Network Address Translation )

byeong07 2016. 8. 31. 23:37

안녕하세요

오늘은 NAT에 대해 알아보겠습니다.

 

 

NAT ( Network Address Translation )

 

 

1.개요
  - 로컬 네트워크 내부에서만 사용할 수 있는 주소인 로컬 IP 주소(사설 IP 주소)를 할당받은 호스트가 인터넷을 경유해서 외부 호스트랑 통신을 하기 위해서는 로컬 IP 주소를 인터넷에서 사용할 수 있는 글로벌 IP 주소로 변환할 필요가 있다.
그래서 생각해 낸 구조가 바로 NAT다.
NAT는 로컬 IP 주소를 가진 호스트가 마치 글로벌 IP 줏를 가진 것처럼 행동하기 위한 라우터의 기능이다.


2. 사설IP 주소

CLASS          주소 영역
    A      10.0.0.0 ~ 10.255.255.255
    B      172.16.0.0 ~ 172.16.255.255
    C      192.168.0.0 ~ 192.168.255.255


3. NAT설정에 따른 분류

1) Dynamic NAT

  - 내부 네트워크에 있는 호스트가 외부로 통신을 시도하면,
먼저 address pool에서 사용 가능한 주소를 동적으로 연결(Mapping)하여 외부로 나간다.
address pool : 사용할 수 있는 글로벌 ip의 집합

2) Static NAT

  - 정적 NAT는 글로벌 주소로 들어온 요청을 내부 서버로 전달 될 수 있도록 목적지 주소를 변환하는 기능이다.
  - 로컬과 글로벌 주소들은 정적으로 1 : 1 로 매핑된다.
  - 고정IP를 할당하는 것처럼 항상 똑같은 주소로 할당하므로 외부에서 IP를 물고 들어 올 수 있다.


4. IP 마스커레이드(IP Masquerade)

  동적 NAT를 사용한다 하여도 글로벌 IP 주소가 여러 개 필요하게 된다. 하지만 포트 번호도 같이 변환해주게 되면 글로벌 IP 하나로도 내부 네트워크의 복수의 호스트가 동시에 인터넷에 접속하는 것이 가능해 진다. 이런 기술을 바로 IP 마스커레이드 혹은 NAPT(Network Address and Port Translation)라고 부른다. 하나의 글로벌 주소당 65535개의 구분된 동시 연결을 하는 것이 가능하다. 모든 NAT는 이 기술을 이용하기 때문에 NAT라고만 말해도 NAPT와 차이가 없다.

  그리고 라우터에 포트 포워딩이라는 기술을 내장시켜 놓은 것을 버츄얼 서버 혹은 정적 IP 마스커레이드 라고 부른다. 이 기능은 특정 포트 번호에 전송된 데이터를 미리 지정한 로컬 네트워크 내의 호스트에 전송하는 기능이다.




Network Address Translation(네트워크 주소 변환)


NAT는 IPv4의 주소 부족 문제를 해결하기 위한 방법으로서 고려되었으며, 주로 비공인(사설, local) 네트워크 주소를 사용하는 망에서 외부의 공인망(public, 예를 들면 인터넷)과의 통신을 위해서 네트워크 주소를 변환하는 것이다. 즉 내부 망에서는 사설 IP 주소를 사용하여 통신을 하고, 외부망과의 통신시에는 NAT를 거쳐 공인 IP 주소로 자동 변환한다. NAT를 사용하면,

장점: 
1. 공인 IP 주소 1개에, 여러 개의 비공인 주소를 매핑할 수 있어 비용절감 효과가 있다.
2. 사설 IP 주소를 사용함으로써 외부에서 볼 때 내부의 망 구조를 알 수 없어 보안 효과가 있다.

단점:
외부망과의 통신시 주소 변환을 거쳐야 하므로 느려지며, 사용자가 많을수록 속도 저하가 커진다.

이러한 NAT 기능은 보통 라우터나 방화벽 등에 설치하며, 라우팅 정책에 따라 사설 IP 주소와 변환될 IP 주소를 static하게 혹은 dynamic하게 매핑할 수 있으며 테이블로 관리된다. 시스코 라우터인 경우,

1. 사설 IP 주소를 정적인 하나의 공인 IP 주소로 매핑 
2. 사설 IP 주소를 임의의 공인 IP 주소들 중에서 어떤 하나와 매핑
3. 사설 IP 주소에 특정 TCP 포트를 더한 것을 하나의 공인 IP 주소로 매핑
4. 공인 IP 주소를 사설 IP 주소 중의 하나로 (순서는 라운드 로빈 방식을 사용) 매핑 할 수 있다.

 

 

 

NAT 종류.

1. static NAT(1:1) : 공인 IP 1개에 사설 IP 1 매칭
                        외부에서 내부로 유일하게 들어올수 있는 NAT
  •      (NAT table 항상 유지 되어 있기 때문에 가능

 

 


2. dynamic NAT(N:N) : 공인 IP 목록에 사설IP 목록을 사용.
      • 그룹 : 그룹내부에서 외부에 나갈때 남은 공인 IP 할당
      • 할당된 IP 일정 시간 경과후 연결이 끊어짐.      

 

 

3.PAT(1:N) : 공인 IP 1개에 사설 IP 목록을 매칭
  • PAT(Port Address Translation)
  • 공인 IP 1 혹은 소수일때 사용.
  • Source Port 사용하여 다른 IP들과 구분

 

 

 

 

 

 4. PAR(Port Address Redirection)(1:N) (별명=> Static PAT)

     - PAT 특징과 static 특징을 둘다 가짐!


    • NAT table
      • 사설 IP 공인 IP 분배한 테이블.
      • static NAT 유일하게 처음부터 계속 유지
      • dynamic, PAT 공인 IP 대한 사설 IP 할당하고  후에 생성됨.

    • NAT설정법.(static 경우)
      • config)#ip nat inside source static (매칭할 사설IP) (매칭할 공인 IP)

    • NAT설정법.(dynamic 경우)
      • 1단계 NAT 적용할 IP 그룹을 acl 만듬.
        • config)#access-list (acl번호) permit (ip범위) (wild-card mask)
      • 2단계 NAT 사용할 공인 IP그룹을 만듬.
        • config)#ip nat pool (그룹이름) (공인ip 시작번호) (공인ip 끝번호) netmask (subnet마스크)
      • 3단계 적용할 ip 그룹을 연결함.
        • config)#ip nat inside source list (acl번호) pool (그룹이름)
      • 4단계
        • 인터페이스에 대해 inside,outside 지정.
        • NAT설정법.(dynamic 경우)
      • 5단계 NAT으로 매칭시킨 정보를 routing 하기
        • 방법1. 하위 라우터들에게 static 통하여 route 입력
        • 방법2. R1 loopback 생성후 광고.
          • routing protocol에서 loopback 이용하여 광고
  • (OSPF사용시 주의사항하단 참조.)
    • 재분배를 이용하여 광고.

    • NAT 설정법.(PAT 경우)
  • PAT 경우 기존의 연결되어 있는 1개의 IP 사용하거나 별도의 공인 IP 사용하는 방법2가지 방법이 있다.
    1. 별도의 공인 IP사용 방법.
    • 1단계 NAT 적용할 IP 그룹을 acl 만듬.
      • config)#access-list (acl번호) permit (ip범위) (wild-card mask)
    • 2단계 (IP pool 생성)
      • ip nat pool (pool이름) (시작IP) (마지막IP) netmask (서브넷)
  • (PAT 경우 시작IP 마지막 IP 동일하게 사용)
    • <EX>
  • conft
  • ip nat pool G_IP 201.100.10.1 201.100.10.1 netmask 255.255.255.0
    • 3단계 적용할 ip 그룹을 연결함.
      • config)#ip nat inside source list (acl번호) pool (그룹이름overload
  • (끝에 overload 옵션을 줌으로써 PAT 사용됨.!)
    1. 연결되어 있는 인터페이스의 IP 사용.
    • 1단계 위와 동일
    • 2단계 적용할 interface 그룹을 연결함.
      • ip nat inside source list (acl번호) interface (interface지정) overload

    • NAT 설정법 (PAR 경우)
      • 공인 IP port번호와 사설 IP port번호를 매칭시켜 접근가능하게 등록.
  • ip nat inside source static (tcp | udp) (사설IP) (사설IP port) (공인IP) (공인IPPORT)
  • (공인 IP port 1:1 매칭하여 사용함으로 여러개의 동일 서버 telnet서버가 여러개일 경우엔 매칭시 공인ip port번호를 변경하여 사용해야 한다.)
  • (ICMP port번호를 사용하지 않기때문에 제어가 불가능하다.)

    • NAT 확인 명령어  기타 명령어.
      • #show ip nat statistics// 현재 NAT 동작확인 명령어
      • #show ip nat translations //현재 배포중인 NAT table확인 명령어.
      • #clear ip nat translation * //nat 테이블 클리어 명령어.
    • NAT 사용 이유
      • IPv4 고갈현상을 늦추기 위하여.
      • 경제성(공인IP 사용에 대한 비용의 절감효과)
      • 보안성(Statc외엔 외부에서 내부로 접근이 불가)
    • OSPF 특징 Loopback 광고하면 network ID 아닌 HOST(32bit) 광고한다.
      • (config-if)#ip ospf network point-to-point 하여 해결.
  • (packet tracer에선 적용안됨)

 

'network 이론 > basic network' 카테고리의 다른 글

TCP / UDP  (0) 2016.09.03
OSI 7 Layer  (0) 2016.09.01
DNS(Domain name System)  (0) 2016.08.31
ARP  (0) 2016.08.07
OSI 7 Layer  (0) 2016.08.07