네트워크/라우터

라우터) NAT(Network Address Translation)

마리사라 2022. 12. 20. 16:59
반응형

이번 강의는 라우터의 기능 중 공인 IP와 사설 IP를 나누는 기술인 NAT에 대해서 알아보겠습니다.

네트워크는 위와 같이 구성하겠습니다. 이때 두 서버에는 HTTP 서버만 활성화 되어 있으면 됩니다.


1. NAT/PAT

NAT는 공인 IP 하나를 사설 IP 여러개로 나누는 기술로, 네트워크 기초 강의에서 자세히 알아볼 수 있습니다.

2022.12.20 - [네트워크/네트워크 기초] - 네트워크 기초) 5. NAT(Network Address Translation)

 

네트워크 기초) 5. NAT(Network Address Translation)

이번 강의는 공인 IP를 사설 IP로, 또는 사설 IP를 공인 IP로 변환하는 기술인 NAT에 대해서 알아보겠습니다. 1. 등장 배경 우리가 주로 사용하는 IP는 IPv4(IP Version 4)입니다. 이 IP는 (0~255).(0~255).(0~255).

marisara.tistory.com

 

여기서 PAT는 사설 IP 그룹 대 공인 IP 그룹을 매칭하는 기술로 NAT의 목적 중 공인 IP의 개수 제한을 해결하기 위한 방식입니다.


2. 실습

[PAT]

Router의 PAT를 활성화하기 위해서는 PAT를 위한 공용주소가 필요합니다. 이때 네트워크 구성에서 1.1.12.10을 NAT용 주소로 주었으니 1.1.12.10으로 NAT를 구성해 보겠습니다.

Router(config)#ip nat pool cisco 1.1.12.10 1.1.12.10 netmask 255.255.255.0

이것을 풀이하면 다음과 같습니다.

  • ip nat : NAT 기능을 사용하겠다.
  • pool cisco : NAT에 사용되는 IP 풀의 이름은 cisco이다.
  • 1.1.12.10 : 사용되는 공용 IP는 1.1.12.10부터
  • 1.1.12.10 : 1.1.12.10까지 포함된다. 이때 둘 다 1.1.12.10이므로 1.1.12.10만 사용한다.
  • netmask 255.255.255.0 : 이때 사용되는 공용 IP의 netmask는 255.255.255.0이다.

이제 어떤 사설 IP가 이 NAT에 포함될 지 ACL로 범위를 지정합니다. NAT에 포함된 IP 대역대는 192.168.10.0 대역이니 192.168.10.0 대역으로 ACL을 만들면 됩니다. ACL을 만드는 건 이전 강의인 ACL 강의에서 자세히 알아볼 수 있습니다.

2022.12.15 - [네트워크/라우터] - 라우터) 11. ACL(Access Control List) - Standard ACL

 

라우터) 11. ACL(Access Control List) - Standard ACL

이번 강의는 라우터에서 패킷을 필터링하는 기술인 ACL에서 가장 기본인 Standard ACL에 대해서 알아보겠습니다. 네트워크는 위와 같이 구성하겠습니다. 1. Standard ACL Standard ACL은 ACL의 가장 기초적인

marisara.tistory.com

 

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

 

이제 이 둘을 토대로 PAT를 적용합니다.

Router(config)#ip nat inside source list 10 pool cisco overload

이 역시 해석하면 다음과 같습니다.

  • ip nat : NAT 명령을 사용하겠다.
  • inside : 들어오는 패킷에 NAT를 적용한다.
  • source : 내용은 다음과 같다.
  • list 10 : ACL 10을 사용하며
  • pool cisco : IP Pool은 cisco 를 사용한다.
  • overload : PAT로 적용한다.

이제 인터페이스에 NAT를 적용합니다.

Router(config)#int f0/0
Router(config-if)#ip nat inside
Router(config-if)#exit

Router(config)#int s0/0
Router(config-if)#ip nat outside
Router(config-if)#exit

이때 f0/0가 inside이고 s0/0가 outside인 이유는 f0/0에서 오는 패킷을 NAT를 적용해 1.1.12.100으로 만들어 외부로 보내기 때문입니다.

 

이후 두 라우터에서 라우팅만 적용하면 끝입니다. 이 부분은 생략하겠습니다.

 

이제 PC0과 PC1에서 223.255.255.1(Server0)에 접속해보겠습니다.

이제 두 PC의 통신이 NAT가 적용되어서 왔는지 확인하겠습니다.

Server0에서 프롬프트를 열고 netstat을 입력합니다.

두 통신 모두 출발 IP가 1.1.12.10으로 온 것을 볼 수 있습니다. 이때 Port만 1026, 1031로 다른데, 이것을 통해 Router가 어디서 온 통신인지 알 수 있기 때문입니다.

 

그렇다면 이번에는 192.168.10.3(Server1)에 접속해보겠습니다.

Server1의 netstat에서는 192.168.10.1, 192.168.10.2로 나오는 데, 이를 통해 NAT는 외부에 통신할 때에만 적용되는 것을 볼 수 있습니다.

 

[Static NAT]

만약 Router0의 외부(Server0 등)에서 Server1로 접속하려고 한다면 어떻게 해야 할까요? 내부망의 모든 장비들은 1.1.12.100으로 접속할 수 있게되어 있기 때문에 외부에서 Server1로 정확하게 접속할 수는 없습니다. 따라서 Sever1에 따로 주소를 할당해 주어야 하는데, 이때 사용하는 방법이 Static NAT입니다.

 

만약 Static NAT로 Server1에 1.1.12.200이라는 주소를 할당하려고 한다면 다음과 같이 입력할 수 있습니다.

Router(config)#ip nat inside source static 192.168.10.3 1.1.12.200

이것을 해석하면 다음과 같습니다.

  • ip nat : NAT 명령을 사용하겠다.
  • inside : 들어오는 패킷에 NAT를 적용한다.
  • source : 내용은 다음과 같다.
  • static : 다음 IP에 대해서 고정적으로 사용한다
  • 192.168.10.3 : 192.168.10.3이라는 IP를
  • 1.1.12.200 : 1.1.12.200으로 NAT한다.

이미 inside, outside가 인터페이스에 적용되어 있으니 바로 확인해보겠습니다. Server0에서 Server1로 Web Browser를 통해 접속하고, Server1에서는 netstat을 통해 접속된 위치를 확인합니다.

잘 되는 것을 확인할 수 있습니다.


3. 마치며

이번 강의에서는 PAT를 알아보았습니다. 다음에는 라우팅 기술간에 테이블을 공유하는 재분배에 대해서 알아보겠습니다.

 

 

 

 

반응형