서론
의문은 AWS의 RDS를 추가해주면서 생기게 되었습니다. 만들면서 연결에 대한 부분을 설정해줄 때 내가 이것들이 정확하게 뭔지 알고 설정을 하는 것인가 아니면 그냥 검색해서 나온 정보들로 그냥 따라서 만드는 것인가 확인했습니다. 아무래도 기본을 정확하게 이해하고 직접 설정을 해주는 편이 좋다고 생각해서 필요한 정보들을 공부하게 되었습니다.
라우팅이란?
라우팅은 네트워크 장치(예: 라우터)가 데이터를 최적의 경로로 목적지에 전달하는 과정입니다.
데이터를 보내려면 어느 경로로 보낼지 결정을 해야되는데 그 경로 정보를 라우팅 테이블이라는 것에 저장합니다.
데이터는 목적지로 가는 동안 여러 개의 라우터를 거치며 여러 번의 라우팅을 수행합니다.
라우팅 테이블이란?
패킷을 목적지로 보낼 때 어느 IP주소로 보낼지 저장합니다. 그 정보들에는 여러가지 구성요소들이 있습니다. 주 목적은 네트워크 대상과 서브넷 마스크를 사용해 패킷의 목적지 네트워크 범위를 식별합니다. 라우팅 테이블은 패킷을 전달하기 전에 어떤 네트워크 범위로 패킷을 보낼지를 정리한 사전 설정된 경로표입니다.
라우팅 테이블의 구성 요소
1. 네트워크 대상
- 목적지 네트워크의 IP주소를 나타냅니다.
2. 서브넷 마스크
- 목적지 네트워크의 범위를 정의합니다.
- 네트워크 주소와 호스트 주소를 구분하며, 범위 내의 IP주소를 설명합니다.
- 예: 255.255.255.0은 네트워크 범위가 101.25.67.0 ~ 101.25.67.255임을 나타냅니다.
- IPv4 주소는 32비트(4바이트)로 구성되며, 네트워크 부분과 호스트 부분으로 나뉩니다.
101.25.67.7 → 01100101.00011001.01000011.00000111
255.255.255.0 → 11111111.11111111.11111111.00000000
결과: 01100101.00011001.01000011.00000000
네트워크 주소: 101.25.67.0
서브넷 마스크에 대해서 위의 부분만 보고서는 정확하게 감이 오지 않아서 더 파고 들어봤습니다. 서브넷 마스크의 끝 번호는 0으로 사용하는데 어떻게 IP 주소를 특정해내는 것인지 궁금했습니다.
IP 주소 범위의 분리
- 네트워크 주소(0번): 네트워크 식별, 한 네트워크 범위를 식별하기 위한 대표 주소
- 호스트 주소(1~254): 네트워크 내에서 각각의 장치를 식별.
- 브로드캐스트 주소(255): 네트워크 내 모든 장치로 패킷을 전송.
서브넷 마스크의 255.255.255.0과 네트워크 대상의 IP주소를 비트 연산(AND)을 이용해서 IP주소의 끝 번호를 0으로 만들게 하여 네트워크 주소인 0번으로 처리해주기 위함입니다. 이렇게 생성된 네트워크 주소는 해당 네트워크 범위를 식별하고, 패킷 전달 경로를 결정하는 데 사용됩니다.
3. 게이트웨이
- 패킷이 현재 네트워크를 벗어나 다른 네트워크로 전달될 때 거치는 중간 장치의 IP주소를 의미합니다.
- 패킷이 직접 전달되지 못하는 경우, 다음으로 전달할 네트워크 장치를 나타냅니다.
- 주로 라우터 또는 네트워크 장치의 내부 IP로 설정되며, 외부 네트워크로 가는 출입구 역할을 합니다.
- 만약 목적지가 같은 네트워크에 있다면 게이트웨이는 필요 없습니다. (로컬 연결)
4. 인터페이스
- 패킷이 나가는 물리적인 네트워크 장치입니다.
5. 메트릭
- 경로의 우선순위를 나타내는 값입니다.
- 낮은 값일 수록 최적의 경로로 간주됩니다.
- 메트릭의 값은 경로의 비용을 나타내며, 이 값은 네트워크 대역폭, 거리, 지연 시간 등에 따라 결정 됩니다.
라우팅 테이블의 동작 원리
1. PC1의 패킷 생성
- PC1(10.0.0.4)에서 목적지 IP가 101.25.67.7인 패킷을 생성합니다.
- 패킷에 목적지가 따로 적혀있고 라우팅 테이블을 참고해서 목적지의 범위 내에 있는 IP인지 확인한다.
2. 라우팅 테이블 조회
- PC1은 자신의 라우팅 테이블을 확인합니다.
- 목적지 101.25.67.0/255.255.255.0과 일치하는 경로를 찾습니다.
3. 게이트웨이로 전달
- 라우팅 테이블에 따르면, 101.25.67.0/24 네트워크로 가는 패킷은 게이트웨이에 설정된 IP주소인 10.0.0.2로 보내야 합니다.
- 인터페이스 eth3를 통해 패킷을 게이트웨이로 전달합니다.
4. Router A의 라우팅 테이블 처리
- Router A는 패킷을 받습니다.
- 자신의 라우팅 테이블을 조회하여, 101.25.67.0 네트워크로 가는 경로를 확인합니다.
- 이 경우, 직접 연결된 네트워크(Connected)로 확인되므로, PC3(101.25.67.7)로 직접 전달합니다.
5. 패킷 전달 완료
- PC3(101.25.67.7)가 패킷을 수신합니다.
마치며
패킷을 보내는 과정인 라우팅과 라우팅 테이블을 통해 패킷이 어떻게 외부로 이동하게 되는지를 알아보았습니다. 위 내용을 바탕으로 EC2와 RDS간의 연결을 설정한다거나하는 네트워크 설정 등에서 많은 도움을 얻어가셨으면 좋겠습니다. 감사합니다.
'Backend Programming' 카테고리의 다른 글
EC2를 활용한 HTTPS 및 도메인 설정 (3) | 2024.12.12 |
---|---|
이메일 인증을 위한 Redis 설정과 문제 해결 과정 (0) | 2024.12.07 |
JPA 영속성 컨텍스트 (3) | 2024.11.01 |
빈은 어떻게 관리되어서 응답을 하는가? (1) | 2024.10.20 |
HTTP란? (0) | 2024.10.05 |