네트워크/IP Service

Static NAT (Inside static nat & outside static nat)

고미-고미 2022. 5. 7. 09:02
728x90

● NAT (Network Address Translation) Topology과 Static NAT 설정

 

  • Outside Network R1, R2, R3의 Default Gateway는 R4이고, R4의 Default Gateway는 R5
  • Inside Network R7, R8, R9의 Default Gateway는 R6이고, R6의 Default Gateway는 R5
  • NAT 장비 R5는 Insde & Outside Network 정보를 모두 알고 있음.

Static NAT를 수행하는 방법은 2개로 나뉘어집니다. Inside Network의 IP를 변경하면 Inside Static NAT이고 Outside Network IP를 변경하면 Outside Static NAT 입니다. 

 

  ○ Inside Static NAT

Inside Local (사설 IP)과 Inside Global (공인 IP)의 맵핑을 의미 합니다. Inside Static NAT를 사용하게 되면 사설 IP 주소가 외부 호스트에게 노출되지 않습니다. 

  1. outside 인터페이스에 ip nat outside 명령어 입력
  2. inside 인터페이스에 ip nat inside 명령어 입력
  3. Inside Static NAT 명령어 수행 "ip nat inside source static inside-local-ip inside-global-ip"

R7(Inside)에서 R1(Outside)로 Telnet 접근을 수행하면 NAT 장비를 거쳐 IP가 변경되는 것을 확인할 수 있습니다. R1의 TCP Table을 확인해 보면 외부 IP 주소가 Static NAT에 의해 변경 된 Inside Global IP가 보여집니다. 

또한, 외부에서 Inside Global IP를 사용하여 통신을 수행하면 외부에서 Local Inside Network로 직접 접근할 수 있습니다. R2 (Outside)에서 Local Global IP 주소 (10.45.1.7)을 사용하여 R7 (Inside)에 직접 접근이 가능합니다.

 

  ○ Inside Static NAT 수행 과정 [R7(10.78.9.7) → R1(10.123.4.1) Telnet 연결 과정]

  1. R5's Interface Gi0/1로 트래픽이 유입됩니다. R5는 목적지IP에 대해서 route lookup을 수행하고  Gi0/0이 egress interface라는 것을 확인합니다. R1은 Gi0/0이 outside nat이고 Gi0/1이 inside nat가 설정된 것을 확인하고 NAT 테이블을 확인 합니다.
  2. inside static nat 설정값이 있을 경우 1) NAT Router R5는 dynamic inside nat 개체를 생성하고 outside local & global 열에 패킷의 목적지 주소(10.123.4.1)를 입력 합니다.
  3. R5는 패킷의 출발지 주소를 10.78.9.7 → 10.45.1.7로 변경 합니다. 
  4. R1은 10.45.1.7에서 들어오는 정보를 확인하고 해당 IP로 응답 메시지를 전달 합니다. 
  5. R1이 전송한 응답 메시지는 R5's Gi0/0까지 도달하고 NAT 테이블을 확인 합니다. 
  6. NAT 테이블 확인 결과 해당 패킷이 NAT 테이블의 첫 번째 개체와 일치하는 것을 확인하고 패킷의 목적지 주소를 10.45.1.7 → 10.78.9.7로 변경 합니다. 
  7. R5는 해당 패킷을 Gi0/1을 통해 R6으로 전달 합니다.

 

 

○ Outside Static NAT

 

Outside global IP 주소를 Outside Local IP 주소와 맵핑하는 기술 입니다. outside static nat는 실제 외부 IP 주소를 Inside 호스트들에게 숨길 수 있습니다.

 

  1. outside 인터페이스에 ip nat outside 명령어 입력
  2. inside 인터페이스에 ip nat inside 명령어 입력
  3. outside Static NAT 명령어 수행 "ip nat outside source static outside-global-ip outside-local-ip [add-route]"

NAT을 수행하기 이전 라우터는 outside-local-ip에 대해서 route lookup을 수행하고, 해당 정보가 존재해야만 outisde interface로 패킷을 전달 합니다. "add-route" 옵션은 정적 경로를 자동으로 라우팅 테이블에 설정하는 옵션 입니다.

 

R6 ~ R9 (inside network)에서 R2 (outside network)의 실제 IP로 접근하게 되면 NAT가 동작하지 않고, R2에서 먼저 통신을 시도하거나 R6 ~ R9 (inside network)에서 R2의 Global IP로 접근을 시도하면 NAT가 동작합니다. 

 

R2에서 R9의 IP 10.78.9.9로 텔넷 접속 후 TCP 접속 기록을 확인해보면 10.123.4.222로 출발지 IP가 변경된 것을 확인 할 수 있습니다. 반대로 R8에서 Outside NAT IP 10.123.4.222로 텔넷을 접속하면 R2로 접근되는 것을 확인 할 수 있습니다.

 

R5의 NAT 테이블을 확인해보면 outside local IP와 outside global IP가 맵핑 되어있고 inside에서 outside로 통신을 수행할 때 outside global IP로 통신을 수행합니다. 결론적으로 inside에게서 outside local IP를 숨길 수 있습니다. 


1) NAT 변환 테이블은 정적과 동적 개체로 이루어져 있습니다. NAT 테이블을 확인하는 명령어는 show ip nat translations 입니다.

  • 첫 번째 라인은 동적으로 생성된 정보값이며 실제로 발생한 트래픽에 대한 정보를 기록하고 보여줍니다. inside local, global, outside local, global 모든 열의 정보를 가지고 있습니다.
  • 두 번째 라인은 해당 장비에 설정 된 inside static NAT 입니다. 
728x90