사설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
에 의한 변경과 악성 데이터그램 해킹을 잘 구분하지 못한다.- 클라이언트 접근 지원이 어렵다.
- 데이터그램이 사설 네트워크와 인터넷을 오갈 때마다 주소 변환과 헤더 체크섬을 다시 계산해야 한다.
정적 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
)를 함께 사용합니다.
IP 주소 절약
PAT
를 이용하면 여러 개의사설IP 주소
를 하나의 외부 주소(공인IP 주소
)로 변환 가능사설IP주소
가200개
가 있더라도공인IP 주소
1개
만 있으면 외부 네트워크와 통신할 수 있으므로IP주소를 절약
할 수 있다.
보안 향상
- 주소나 내부 토폴로지를 광고하지 않기 때문에 외부 접근을 통제해 보안을 향상 시킵니다.
- 변환된
공인IP 주소
로 통신하기 때문에 외부 인터넷에서는 내부 네트워크의 주소나 토폴로지를 알 수 없어 외부에서 내부 네트워크의 접근을 통제하여 보안을 향상 시킬 수 있는 방법을 사용합니다.동적 NAT
를 사용하면 변환되는공인IP 주소
가 매번 바뀌기 때문에 내부 네트워크에서는공인 IP주소
예측이 어려워 집니다.PAT
를 사용하게되면 변환된 포트 번호를 함께 사용하게 되는데 출발지 포트번호는 프로그램이 실행될 때 마다 변경 되므로 예측이 어려워 외부네트워크에서 내부네트워크로의 접근을 통제할 수 있습니다.
정젹 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
로 새로 매핑 해줍니다.- 다시 각각의
interface
에inside
와outside
를 설정 해줍니다.- 이처럼
사설 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
로 새로 매핑 해줍니다.- 다시 각각의
interface
에inside
와outside
를 설정 해줍니다.- 이처럼
사설 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
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