Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- JavaScript
- 커스텀 헤더
- 1주일회고
- 빈 조회 2개 이상
- infcon 2024
- 항해99
- 파이썬
- 인프콘 2024
- 프로그래머스 이중우선순위큐
- 디자인 패턴
- 전략패턴 #StrategyPattern #디자인패턴
- DesignPattern
- 구글 OAuth login
- 코딩테스트 준비
- 디자인패턴
- 개발자 취업
- @FeignClient
- 취업리부트코스
- 빈 충돌
- Spring multimodule
- TiL
- KPT회고
- 99클럽
- jwt
- jwttoken
- 프로그래머스
- 단기개발자코스
- 개발자부트캠프추천
- Python
- spring batch 5.0
Archives
- Today
- Total
m1ndy5's coding blog
ABOUT ROUTING, NAT 본문
이전에 ip에 대해 포스팅을 보면 사설 ip는 외부로는 통신을 할 수 없고 특정 네트워크 내에서만 통신을 하게 해준다는 것을 알 수 있다.
그렇다면 it기기들은 어떻게 외부와 통신할 수 있게되는 것일까!?!?
바로바로 라우터 라우팅을 해줌으로써 통신을 할 수 있게된다. (게이트 웨이를 통해)
게이트웨이란?
- 같은 네트워크, 즉 내부에서는 통신을 할 수 있지만 다른 네트워크의 ip와는 통신이 되지 않는다.
- 이 때 라우터가 다른 네트워크로 보낼 수 있게 라우팅을 해주게 된다.
- 그럼 각 디바이스들을 어떻게 라우터로 데이터를 보내느냐?
- 바로 게이트웨이 ip에다가 데이터를 보낸다.
- 즉 외부와 통신해야한다? -> 게이트웨이에 데이터를 보낸다! -> 그러면 라우터가 보내준다 라고 보면된다.
라우팅이란?
- 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 기법
- 이런 경로 정보들은 라우팅 테이블에 저장이 되어있다.
라우팅 테이블이란?
- 패킷을 목적지로 전달하기 위해 참조하는 테이블
- 각 라우터의 라우팅 테이블은 목적지에 도달하기 위해서 거쳐야 할 다음 라우터의 정보를 가지고 있음
- 따라서 데이터가 어떤 목적지를 찾아갈 때 라우터는 이 라우팅 테이블을 보고 찾아가게 됨
라우팅 테이블에 경로 등록 방법
Static Route(정적 경로)
- 관리자가 수동으로 라우터가 모르는 경로정보를 라우팅 테이블에 등록하는 방식
- 보안상 안전하지만, 실질적으로 모든 경로를 입력한다는 건 불가능함, 또한 자동으로 경로 우회불가
- 모든 경로를 입력하는 것은 불가능하기 때문에 Default-Route(0.0.0.0/0)을 등록하는데 모든 IP주소가 포함되어있다고 보면 된다.
Dynamic Routing Protocol
- 각 라우터가 자신과 연결된 네트워크 정보를 붙어있는 상대방 라우터에게 알려주는 방식
- 데이터를 수신한 라우터는 해당 정보를 자신의 라우터에게 등록
- 확장성이 좋고 최적 경로를 알아서 찾아주지만 static route보다 보안상으로는 덜 안전하고 CPU와 Memory를 더 사용한다는 단점이 있다.
- 여기서 중요한점!!*
각 기기에는 사설 ip가 할당되어 있다.
사설 ip는 외부에서 접근이 되지 않기 때문에 외부에서 날라온 응답을 받을 때 문제가 생긴다.
이럴 때 사설 ip를 공인 ip로 변환시켜주는 NAT를 해주어야한다.Dynamic NAT(N:N)
- 다이나믹 나트는 공인 ip그룹과 사설 ip그룹을 생성하여 동적으로 매핑해주는 방식이다.
- NAT를 해주는 기기에는 NAT table이 있는데 어떤 사설 ip가 어떤 공인 ip로 변환되었는지에 관핸 매핑정보를 가지고 있다.
- 따라서 외부에서 응답이 왔을 때 NAT table 정보를 확인하여 출발지 기기에 전달할 수 있게된다.
- 하지만 NAT table은 통신이 할 때만 임시적으로 생성되는 정보이고 통신을 할 때마다 계속해서 바뀐다.
Static NAT(1:1)
- 특정 사설 ip와 특정 공인 ip를 1:1로 매핑하여 NAT table에 지속적으로 해당 정보를 유지시킨다.
- ip주소를 계속 해서 유지해야하는 서버같은 경우 Static NAT으로 해줘야 서버에 접근하는데 문제가 생기지 않는다.
PAT-Port Address Translation(1:N)
- 하지만 각 기기마다 Static nat처리 해주는 것은 그만큼 공인 ip를 사용해야하기 때문에 비효율적일 수 있다.
- PAT-port 주소 변환을 해주면 소수의 공인 ip를 사용하여 다수의 사설 ip장비와 외부 통신이 가능하게 할 수 있다.
- 바로 포트로 각 기기를 구분짓는 방법이다.
- 위 사진처럼 같은 공인 ip를 사용하지만 포트번호를 다르게 하여 각 기기들에게 온 응답을 알맞게 보낼 수 있다.
이 외 궁금했던 점
- ec2 인스턴스 ip가 계속 바뀌는 데 그럼 다이나믹 나트인가?
- 아니다. 다이나믹 나트는 켜져있는 상태에도 계속 바껴야되는데 ec2 인스턴스의 같은 경우는 켜져있는 동안은 static nat유지하다가 껏다 켜면 또 다른 static nat가 되는 것! 다이나믹 나트는 아니다!!
'클라우드 with AWS > Network' 카테고리의 다른 글
URL vs URI vs URN (0) | 2023.06.23 |
---|---|
네트워크 진단 도구 (0) | 2023.03.12 |
TCP VS UDP, 그 외의 다양한 네트워크 프로토콜 (1) | 2023.03.12 |
ABOUT IP, SUBNET (0) | 2023.03.05 |
네트워크 기초(정의 & OSI 7 계층) (0) | 2023.03.03 |