본문 바로가기

NAT (Network Address Translation)

액트 2019. 5. 27.
반응형

@ NAT (Network Address Translation) 

 

 

 @NAT(Network Address Translation) : 주소변환
- 주소 변환

- 주소 부족 문제 해결을 위해 사설 IP를 가진 Client를 외부(Internet)와 통신이 가능하게 한다.

- 보안 향상 ( 내부 사설망은 외부에서 접근이 불가능하다. )

 

 

- Dynamic NAT
사설 IP 그룹과 공인 IP 그룹을 그룹 대 그룹을 매핑

사설 IP 주소를 공인 IP 주소로 변환하는 방법


< 역할 >

내부 사설망으로 사용하는 사용자들에게 Internet Access가 가능하게 하다.
 
 => Overloading(PAT:Port Address Translation) : Dynamic NAT의 일종
     하나의 공인 IP와 여러 사설 IP를 일 대 다 기반으로 매핑
     주소가 부족한 경우 PAT를 사용하여 하나의 공인 IP를 여러 사설 IP가 Port만 다르게 설정하여 돌아가면서 사용할수 있기 때문에

     주소가 부족하더라도 여러사용자들이 하나의 공인 IP을 돌아가면서 사용하기 때문에 주소부족문제가 해결된다.

 

< 장점 >

1. 보안성 좋음

2. 주소 문제 해결

< 단점 >

1. 외부에서 접근 불가능

==> 그룹 대 그룹 매핑이기 때문에

 

 

- Static NAT
하나의 공인 IP와 하나의 사설 IP를 일 대 일 기반으로 매핑

Destination Address를 사설 IP주소로 변환하는 방법

 

< 역할 >
외부에서 내부 Network로 접근하고자 하는경우에 사용

 

< 장점 >

1. 외부에서 접근 가능

< 단점 >

1. 보안성 안좋음

2. 주소 문제 해결 못함.

 

 

< IP 공유기와 NAT 가 다른점 >

- IP 공유기 : 인터넷 연결이 하나인 공인 IP를 공유하는 개념

- NAT        : 일정 범위에 공인 IP주소를 할당 받고 이 주소를 사설 IP와 매핑해서 사용한다.

 

 

 

@Dynamic NAT-PAT 설정방법
- 공인 IP 그룹 생성
>Netmask설정
Router(config)#ip nat pool <name> <start-ip> <end-ip> netmask <Subnetmask>
>Prefix설정
Router(config)#ip nat pool <name> <start-ip> <end-ip> prefix-length <Bit>

 

- 사설 IP 그룹 생성
Router(config)#access-list <list-number> permit <inside-local> <wildcardmask>

 

- 공인 IP 그룹과 사설 IP 그룹 매핑
>Dynamic NAT
Router(config)#ip nat inside source list <list-number> pool <name>
>Dynamic NAT-PAT
Router(config)#ip nat inside source list <list-number> pool <name> overload

 

- Inside Interface Router에 알리기
Router(config-if)#ip nat inside

 

- Outside Interface Router에 알리기
Router(config-if)#ip nat outside

 

 

ex) Dynamic NAT-PAT Example

R1(config)# ip nat pool ABC 220.110.110.1 255.110.110.14 netmask 255.255.255.240

R1(config)# ip nat inside source list 10 pool ABC overload

 

R1(config)# access-list 10 permit 172.16.1.0 0.0.0.255

 

R1(config)# interface fastethernet 0/0

R1(config-if)# ip nat inside

R1(config-if)# exit

R1(config)# interface serial 1/0

R1(config)# ip nat outside

 

>> Dynamic NAT 확인

R1# debug ip nat

R1# show ip nat translations

 

 

@Static NAT 설정방법
- 하나의 사설 IP를 하나의 공인 IP로 매핑
Router(config)#ip nat inside source static <inside-local> <inside-global>

 

- Inside Interface Router에 알리기
Router(config-if)#ip nat inside

 

- Outside Interface Router에 알리기
Router(config-if)#ip nat outside

 

ex) Static NAT Example

R2(config)# ip nat inside source static 172.16.2.1 220.110.120.1

 

R2(config)# interface fastethernet 0/0

R2(config)# ip nat inside

 

R2(config)# interface serial 1/0

R2(config-if)# ip nat outside

 

 

 

>> Static NAT 확인

R2# debug ip nat

R2# show ip nat translations

 

 

 

 

< 문제 >

50명이었던 ITBANK직원이 200명으로 증가하면 주소가 부족해졌다. 그래서 주소부족 문제를 해결하기 위해 첫번째 자유롭게 사용할수 있는 사설 IP를 이용하여 모든 직원에 IP를 할당해주었다.

 

 

-> 변환 후

 

 

 

!-- ITBANK
conf t
int f0/0
ip add 192.168.1.254 255.255.255.0
end

 

!-- VMnet
IP Address : 192.168.1.1
Subnetmask : 255.255.255.0
Default Gateway : 192.168.1.254

 

ITBANK직원이 증가하면서 주소가 부족했기 때문에 사설 IP를 이용하여 모든 직원에 주소를 할당해줬다. 하지만 할당해준 주소가 사설 IP이기 때문에 내부에서의 통신은 가능하나 외부로 나갈수 없다는 문제가 발생하였다. 그래서 이 문제 해결하기 위해 NAT-PAT를 이용하겠다.

 

 

 

@Dynamic NAT-PAT 설정방법
- 공인 IP 그룹 생성
>Netmask설정
Router(config)# ip nat pool <name> <start-ip> <end-ip> netmask <Subnetmask>
>Prefix설정
Router(config)# ip nat pool <name> <start-ip> <end-ip> prefix-length <Bit>

=> 둘중 하나 선택해서 사용

 

 

- 사설 IP 그룹 생성
Router(config)# access-list <list-number> permit <inside-local> <wildcardmask>

 

- 공인 IP 그룹과 사설 IP 그룹 매핑
>Dynamic NAT
Router(config)# ip nat inside source list <list-number> pool <name>
>Dynamic NAT-PAT
Router(config)# ip nat inside source list <list-number> pool <name> overload

 

- Inside Interface Router에 알리기
Router(config-if)# ip nat inside

 

- Outside Interface Router에 알리기
Router(config-if)# ip nat outside

 

 


Dynamic NAT-PAT Config
*Global IP Group
210.110.20.0/26
210.110.20.0~63 
사용가능IP : 210.110.20.1~62


=>name : cisco
=>start-ip : 210.110.20.2
=>end-ip : 210.110.20.62
=>netmask/prefix : 255.255.255.192 / 26

 

*Private IP Group
192.168.1.0/24
192.168.1.0~255
사용가능IP : 192.168.1.1~254


=> list-number : 1
=> inside-local : 192.168.1.0
=> wildcardmask : 0.0.0.255

 

*Inside Interface : f0/0
*Outside Interface : s1/0

 

 

< 설정 >

>> Netmask
!-- ITBANK
conf t
ip nat pool cisco 210.110.20.2 210.110.20.62 netmask 255.255.255.192
access-list 1 permit 192.168.1.0 0.0.0.255
ip nat inside source list 1 pool cisco overload
int f0/0
ip nat inside
int s1/0
ip nat outside
end

 

>> Prefix
!-- ITBANK
conf t
ip nat pool cisco 210.110.20.2 210.110.20.62 prefix-length 26
access-list 1 permit 192.168.1.0 0.0.0.255
ip nat inside source list 1 pool cisco overload
int f0/0
ip nat inside
int s1/0
ip nat outside
end


< 확인 >
ITBANK #debug ip nat
C:\>ping 198.0.1.254

*Mar  1 01:13:16.855: NAT*: s=192.168.1.1->210.110.20.2, d=198.0.1.254 
*Mar  1 01:13:17.019: NAT*: s=198.0.1.254, d=210.110.20.2->192.168.1.1 
*Mar  1 01:13:17.907: NAT*: s=192.168.1.1->210.110.20.2, d=198.0.1.254 
*Mar  1 01:13:18.003: NAT*: s=198.0.1.254, d=210.110.20.2->192.168.1.1 
*Mar  1 01:13:18.923: NAT*: s=192.168.1.1->210.110.20.2, d=198.0.1.254 
*Mar  1 01:13:18.963: NAT*: s=198.0.1.254, d=210.110.20.2->192.168.1.1 
*Mar  1 01:13:19.939: NAT*: s=192.168.1.1->210.110.20.2, d=198.0.1.254 
*Mar  1 01:13:20.091: NAT*: s=198.0.1.254, d=210.110.20.2->192.168.1.1

 

ITBANK# show ip nat translation              
Pro Inside global      Inside local       Outside local      Outside global
icmp 210.110.20.2:512  192.168.1.1:512    198.0.1.254:512    198.0.1.254:512

 

 

사설 IP를 사용하는 사용자들이 Internet Access할수 있게 하기 위해 NAT-PAT 이용하여 Internet Access가 가능하게 됐다. 하지만 외부에서 내부로의 접근은 불가능하다.

 

 

내부에서 외부 Access => O
C:\>ping 198.0.1.254
Reply

외부에서 내부 Access => X
ISP#ping 210.110.20.2
.....


그래서 지금 현재 상태로는 외부에서의 접근이 불가능하다. 그런데 우리 ITBANK 분점과의 통신이 필요할때가 생기는데 이렇게 NAT-PAT를 사용하게 되면 본점에서밖에 요청을 못한다. 그래서 분점에서도 본점으로 요청을 할수 있게 하여라

 

 

@Static NAT 설정방법
- 하나의 사설 IP를 하나의 공인 IP로 매핑
Router(config)#ip nat inside source static <inside-local> <inside-global>

 

- Inside Interface Router에 알리기
Router(config-if)#ip nat inside

 

- Outside Interface Router에 알리기
Router(config-if)#ip nat outside

 

 

Static NAT Config


*inside-local : 192.168.1.1
*inside-global : 210.110.20.1
*inside-interface : f0/0
*outside-interface : s1/0

 

!-- ITBANK
conf t
ip nat inside source static 192.168.1.1 210.110.20.1
int f0/0
ip nat inside
int s1/0
ip nat outside
end

 

< 확인 >
ITBANK#debug ip nat
C:\>ping 198.0.1.254

*Mar  1 01:27:41.155: NAT*: s=192.168.1.1->210.110.20.1, d=198.0.1.254 
*Mar  1 01:27:41.451: NAT*: s=198.0.1.254, d=210.110.20.1->192.168.1.1 
*Mar  1 01:27:42.115: NAT*: s=192.168.1.1->210.110.20.1, d=198.0.1.254 
*Mar  1 01:27:42.223: NAT*: s=198.0.1.254, d=210.110.20.1->192.168.1.1 
*Mar  1 01:27:43.179: NAT*: s=192.168.1.1->210.110.20.1, d=198.0.1.254 
*Mar  1 01:27:43.223: NAT*: s=198.0.1.254, d=210.110.20.1->192.168.1.1 
*Mar  1 01:27:44.199: NAT*: s=192.168.1.1->210.110.20.1, d=198.0.1.254 
*Mar  1 01:27:44.223: NAT*: s=198.0.1.254, d=210.110.20.1->192.168.1.1

 

ITBANK#show ip nat translation
Pro Inside global      Inside local       Outside local      Outside global
--- 210.110.20.1       192.168.1.1        ---                ---

 

내부에서 외부 Access => O
C:\>ping 198.0.1.254
Reply

외부에서 내부 Access => O
ISP#ping 210.110.20.1
!!!!!

*Mar  1 01:29:41.663: NAT*: s=211.240.10.2, d=210.110.20.1->192.168.1.1 
*Mar  1 01:29:41.667: NAT*: s=192.168.1.1->210.110.20.1, d=211.240.10.2 
*Mar  1 01:29:41.843: NAT*: s=211.240.10.2, d=210.110.20.1->192.168.1.1 
*Mar  1 01:29:41.919: NAT*: s=192.168.1.1->210.110.20.1, d=211.240.10.2 
*Mar  1 01:29:42.091: NAT*: s=211.240.10.2, d=210.110.20.1->192.168.1.1 
*Mar  1 01:29:42.155: NAT*: s=192.168.1.1->210.110.20.1, d=211.240.10.2 
*Mar  1 01:29:42.187: NAT*: s=211.240.10.2, d=210.110.20.1->192.168.1.1 
*Mar  1 01:29:42.239: NAT*: s=192.168.1.1->210.110.20.1, d=211.240.10.2 
*Mar  1 01:29:42.347: NAT*: s=211.240.10.2, d=210.110.20.1->192.168.1.1 
*Mar  1 01:29:42.371: NAT*: s=192.168.1.1->210.110.20.1, d=211.240.10.2  

반응형

댓글