INFRA/NETWORK

NAT (Network Address Translation)

sshhhh 2024. 7. 30. 23:58

NAT (Network Address Translation)

  • 주소 변환 기술 (공유기 :사설 IP를 공인 IP로 변환)
  • 탄생이유 : 공인 IP 부족 현상 완화
  • 사설 IP는 기본적으로 인터넷 안됨
    • 시나리오 192.168.0.0 > 8.8.8.8 ping
    • 8.8.8.8은 라우터에 세팅되어 있어서 request는 되는데 사설 IP대역은 없으니까 response 실패
    • 라우터에 사설 IP대역 없음 → 공유기로 사설 IP를 자기가 가진 공인 IP로 변경해야 통신 가능함
    • 라우팅이 안되는 것이 아님, 대역에 사설 IP가 없기 때문임
  • 직접 공격 받지 않으니 보안에 용이
  • 랜카드 두개여야함 : 사설IP↔공인IP를 서로 변환해야 하기 때문
    • request : 사설 IP → 공인 IP response : 공인 IP → 사설 IP
  • Trade-off : 편의성은 안좋은데 보안은 좋다

 

NAT 설정

사설(내부) → 외부

  • 물리적 세팅 : NAT에 랜카드 두개 설정(사설 대역/ 공인 대역)

 

1. Port Forwording (외부 → 사설)

  • 포트(Port)를 전달(Forwarding)
  • 특정한 포트로 들어오는 데이터 패킷을 다른 포트로 바꿔서 다시 전송해주는 작업
    • ex) 외부 포트인 8000번으로 접속했을때, 이 요청을 내부 네트워크의 웹 서버인 사설 IP 주소인 192.168.0.1의 80번 포트로 전달하도록 설정
  • 공유기는 공인 IP가 하나이기 때문에 Port Forwording만 가능

 

  • 예시 1
    • 시나리오
      PC request : http://2.2.2.2
      S IP : 192.168.0.2 , D IP : 2.2.2.2, G/W : 192.168.0.255, DNS : 168.126.63.1

      1. S IP : 192.168.0.2 , D IP : 2.2.2.2 로 보내면 request만 가능 response 불가
        → 답장올때 사설 IP대역은 라우터에 없기 때문에 1.1.1.1 이라 적어야 정상 통신
      2. PC가 처음 요청했을때 3계층 헤더 건드려서 192.168.0.2 → 1.1.1.1 → 2.2.2.2 로 가는 과정을
        NAT 테이블에 적어두고 내보냄
      3. Web server에서 S IP : 2.2.2.2, D IP : 1.1.1.1 로 적어서 response
      4. Web server가 보낸 D IP : 1.1.1.1 → 192.168.0.2 로 바뀜 NAT 테이블에 적혀 있으니까

 

  • 예시 2

    1. PC: www.test.com request Dns는 10.100.11.11로 설정
      외부에서 사설 IP에 접근 못하기 때문 (=보안 굿 공인 IP 남아도 일부러 씀)
    2. 80번 포트로 들어오면 192.168.0.1 Web server로 들어오게 NAT에서 설정함
    3. 53번 포트로 들어오면 192.168.0.2 Dns server로 들어오게 NAT에서 설정함
      → 그래서 Web, Dns 서버에 G/W 설정값 없는것 NAT에서 뿌리니까
      —> + NAT 쓰겠다 해서 인터넷 되는거임 물리적 연결이 되어있는 거임

 

2. Static Nat ==주소풀 (외부 → 사설)

  • 공인 랜카드에 IP 하나 추가 해서, 공인 IP, 사설 IP 1대1 매핑
    → 공인 ip가 많아야함
  • 어떤 공인 IP를 찾아오면 어떤 사설 IP로 넘겨라
    ex) 1.1.1.1 → 192.168.0.1로
  • 일대일 매핑이니까 외부로 서비스해줘야 하는 것들만 해줌 (웹,dns, mail 등..불특정다수가 접근하는것들)
    일반 직원들은 안함 외부로 나가기만하면되니까
  • 내보낼떄 나간 경로들 세션 == NAT 테이블에 적어둠

 

  • 예시
  • static nat로 주소를 예약했기 때문에 공인 IP가 2개로 바뀜
  • NAT Table의 변환 정보를 관리자가 직접 지정하고 관리→ 정보가 고정됨
  • 사설 IP(1) : 공인 IP(1)
  • Server(사설 IP가 설정된곳→ Web, Dns 서버)에 Client가 접근할 수 있게 함
  • NAT 정책 설정 ~static

 

 

 

 

NAT와 라우팅의 차이점

통신 순서

  • NAT 기능에 의한 IP 주소 변환
    - 사설 네트워크에서 공인 네트워크로 데이터를 보낼 때 S IP를 공인 IP 로 변경
  • NAT 테이블 업데이트
    - 데이터 패킷의 D IP를 확인하고, NAT 테이블에 통신 경로 기록 (공인 네트워크에서 응답할 때 필요)
  • 라우팅 테이블 참조
    - 데이터 패킷을 외부로 보낼 때, 라우팅 테이블을 참조하여 경로를 결정
    - 라우팅 테이블에 g/w가 설정되어 있지 않으면, 외부로 데이터를 보낼 수 없음.
    - NAT 사설대역 랜카드에 g/w설정을 하면 기본경로(0.0.0.0 0.0.0.0)가 두개 생김 공인 대역으로 나갈 곳은
       하나만 되어야하므로 공인대역 랜카드에 g/w를 설정해야함.

결론

  • NAT, 라우팅은 별개이므로 둘다 설정해야함
  • NAT는 only 전달자, 라우팅은 라우팅 테이블을 보고 하는 것

 

 

 

 

NAT-PAT(Port Address Translation) == Nomal Nat 

  • 일반 Dynamic NAT의 한계 극복
  • 사설 IP(n) : 공인 IP(1) → 다수의 사설 IP를 하나의 공인 IP로변환 —>하나의 공인 IP로 다수의 사설 IP를 이용한 통신 지원
  • 사설 네트워크 내부의 호스트 통신을 위해 사용
    • 사설→외부 통신할때 설정 static NAT는 비효율적이니까 ex) 집에서 사용하는 핸드폰, pc등을 다 일대일 매핑할수 없음 (공유기가 가진 공인 IP는 1개)
  • NAT동작이 수행될 때 트래픽을 구별하기 위해 IP 주소와 함께 포트 번호도 변환