2022이전/네트워크

[GNS3] NAT 구성하기_실습

바로퇴장 2020. 5. 26. 17:55

NAT 란 무엇인가요?

  • NAT는 네트워크 주소 변환(Network Address Translation)의 약자로, 비공인 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하는 방법입니다.
  • NAT를 처리해 주는 장치를 NAT Gateway라고 부릅니다.

NAT의 종류

1. Static NAT

Types of NAT Translation 3

각 내부 IP 주소에 대해 외부 IP주소가 1:1로 각각 대응된다.

  • 주로 서버와 같은 정적인 주소에서 사용된다.
  • 지정된 서설 주소는 항상 지정된 공인 주소로 변경된다.

2. Dynamic NAT

Types of NAT Translation 4

여러 개의 내부 IP 주소에 대해 여러 개의 외부 IP주소를 동적으로 할당시킨다.외부 IP주소가 모두 사용 중이라 할당 받을 IP가 없을 경우 외부에서의 연결은 제한된다.

  • 내부 IP가 인터넷을 사용하고자 할 때 외부 IP주소 풀에서 동적으로 선택해서 할당 받는다.
  • 고정된 공인 주소와 매핑 되지 않으므로 서버에는 적용하지 않는 방법

3. Port Address Translation : PAT

Types of NAT Translation 5

하나의 외부 IP주소를 다수의 내부 IP 주소가 port번호로 구분하여 사용한다. well-kown port를 제외하고 랜덤으로 사용한다.

  • 한개의 공인 주소를 여러개의 사설 주소가 공유하는 방법
  • Static : 정적으로 port를 할당해주는 방식(외부에서 내부로 접속해야하는 경우에 주로 사용)
  • Dynamic : 동적으로 port를 할당해주는 방식(내부에서 외부로 접속해야하는 경우에 주로 사용)

--------------------서버는 정적 NAT------------------

웹서버 -> 211.183.3.11

웹서버 -> 211.183.3.12

웹서버 -> 211.183.3.13

FTP서버 1 -> 211.183.3.14

------------ 부서별로 1개의 공인 IP주소 부여 --------

영업팁 : 192.168.1.0/24 --> 211.183.3.10 : Dynamic PAT

기술팀 : 192.168.2.0/24 --> 211.183.3.9 : Dynamic PAT

NAT를 구성하는데 필요한 명령어(HQ라우터)

access-list 1 permit any                            //모든 내부 주소를 허용한다.
ip nat inside source list 1 int fa0/0 overload        //
int fa0/0
ip nat outside
int range fa0/1 , fa1/0 , fa2/0
ip nat inside

access-list 1 permit any : 모든 내부 주소를 허용한다.

ip nat : 지금부터 주소를 변경하겠다.

ip nat inside source list 1 int fa0/0 overload

  • inside source list 1 : 내부에 있는 출발지의 ip(내부 ip)는 access-list 1 과 같다. 즉 주소를 변경해야 하는 사설 주소는 모든 주소를 허용한다.

  • int fa0/0 : 모든 사설 주소는 fa0/0에 있는 공인 아이피 주소로 변경된다.

  • overload : 여러 사설 주소가 한개의 공인 주소를 공유하는 것을 허락한다. // PAT활성화

int fa0/0 > ip nat outside :공인 주소로 변경하여 내보낼 인터페이스에 할당

int range fa0/1 , fa1/0 , fa2/0 > ip nat inside : 사설 주소가 있는 곳에 설정

위 그림과 같은 네트워크 환경을 만들어준다.(앞선 실습들을 참고)

정적 NAT 설정하기

ip nat inside source static tcp 192.168.101.111 80 int fa0/0 80

2222포트 접속하면 내부에 있는 22번 포트로

ip nat inside source static tcp 192.168.101.111 22 int fa0/0 2222

리눅스 설정

cd /etc/ssh
vi ssh_config

실습2

시작하기 전에 TIP : 명령어 치다가 다음 명령어가 생각이 안날때는 ?를 입력하면 다음에 올 명령어를 알수 있다.

실습 내용 :

​ Static PAT

Linux : 192.168.101.111(사설) < ==== > 192.168.108.111(공인)

​ Dynamic PAT

​ 192.168.101.(일반) < ==== > 192.168.108.99

  1. access-list 1 permit any
  2. 공인 ip pool 만들기

R1(config)#ip nat pool TEST 192.168.108.99 192.168.108.99 prefix-length 24

ip nat pool 이름 범위 크기

  1. 권한 설정
R1(config)#ip nat inside so list 1 pool TEST overload
  1. inside outside설정
  int fa0/1
  ip nat inside
  exit
  int f0/0
  ip nat outside
  1. 정적으로 접속하고 싶은 리눅스 컴퓨터를 공인 ip에 연결해 준다.

    R1(config)#ip nat inside source static 192.168.101.111 192.168.108.111
  1. 제한 설정하기

    access-list 111 deny ip any any        /제한 그룹 만들기('111'그룹제한 출발지ip 도착지ip)
    ip access-group 111 in                /설정하기
    no ip access-group 111 in            /해지하기

ACL(Access-Control List)

  • 이름이나 번호를 이용하여 정책을 설정하고 설정된 정책에 의해 트래픽을 분류하거나 필터링 할 수 있는 기술

  • 패킷의 어느부분을 확인하여 필터링/분류하느냐에 따라 Standard/Extended 로 구분한다.

    • Standard

      • 패킷의 출발지 IP주소만을 확인하고 그 외의 부분은 확인하지 않는다.

      • 일반적으로 1~99를 사용한다.

        ​ 출발지 주소 wild card bit

      • access-list 1 permit 192.168.10.0 0.0.0.255

      • access-list 1 deny 5.5.5.5 0.0.0.0

  • Extended

    • 패킷의 L3/L4 모든 부분을 확인하여 필터링/분류 할 수 있다.

    • 일반적으로 100~199를 일반적으로 사용한다.

  • 추가 원리

    • ip 제한 명령어
    ex> access-list 1 permit 1.1.1.0 0.0.255
    
    0000001.0000001.0000001.0000000
    0000000.0000000.0000000.1111111
    -------------------------------
    0000001.0000001.0000001.xxxxxxx  => 1.1.1.0~1.1.1.255
    0: Look at this bit
    1: Don't care bit
    
    ex> access-list 1 deny 5.5.5.5 0.0.0.0
    5.5.5.5만 제한
    ( = access-list 1 deny host 5.5.5.5)
    
    ex> access-list 1 deny 0.0.0.0 255.255.255.255
    ( = access-list 1 deny any any)
    • top-down 방식
    ex> 외부에서 유입되는 모든 트래픽을 차단하라. 단, 2.2.2.2는 허용한다.
    access-list 1 per host 2.2.2.2
    access-list 1 deny any
    • ACL의 가장 아래에는 "나머지는 모두 차단된다" 가 생략되어 있다.
    ex> 외부에서 유입되는 모든 트래픽을 허용하고 2.2.2.2는 차단된다.
    access-list 1 deny host 2.2.2.2
    access-list 1 per any 
    (access-list 1 deny any) <-- 생략되어 있다.
    • 작성된 ACL은 인터페이스, NAT 등에 적용해 주어야 활성화 된다.
    예1) int fa0/0
            ip access-group 1 in
    예2) int nat inside source list 1 int fa0/0 overload

실습 3

실습 내용 : access-list 적용시켜보기

R1(config)#line vty 0 4
R1(config-line)#login local
R1(config-line)#exit
R1(config)#username hgd password test123
R1(config)#access-list 1 permit host 1.1.1.1
R1(config)#line vty 0 4
R1(config-line)#access-class 1 in

https://gmldbd94.tistory.com/102