효습
2.3 네트워크 기기 본문
2.3.1 네트워크 기기의 처리 범위
상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가
- 애플리케이션 계층 : L7 스위치
- 인터넷 계층 : 라우터 : L3 스위치
- 데이터 링크 계층 : L2 스위치 브리지
- 물리 계층 : NIC , 리피터 , AP
2.3.2 애플리케이션 계층을 처리하는 기기
L7 스위치
- 스위치 : 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장치
- L7 스위치는 = 로드밸런서
- 서버의 부하를 분산하는 기기
- 클라이언트로부터 오는 요청들은 뒤쪽의 여러 서버로 나누는 역할을 하며 시스템이 처리할 수 있는 트래픽 증가를 목표로 한다
- URL , 서버 , 캐시 , 쿠키들을 기반으로 트래픽을 분산한다
- 바이러스 , 불필요한 외부 데이터 등을 걸러내는 필터링 기능 또한 가지고 있으며 응용 프로그램 수준의 트래픽 모니터링도 가능
- 만약 장애가 발생한 서버가 있다면 이를 트래픽 분산 대상에서 제외해야 함
- → 정기적으로 헬스 체크(health check)를 이용하여 감시하면서 이루어짐
L4 스위치와 L7 스위치 차이
- 로드밸런서는 L4에도 있음
- L4 스위치는 전송 계층을 처리하는 기기
- 스트리밍 관련 서비스에서는 사용할 수 없음
- 메세지를 기반으로 인식하지 못하고 IP와 포트를 기반으로(특히 포트를 기반으로) 트래픽을 분산함
- 로드밸런슷 4계층의 포트 주소를 확인하는 동시에 IP 주소를 변경할 수 있다
- L7 로드밸런스(스위치)는
- IP , 포트 외에도 URL , HTTP 헤더 , 쿠키 등을 기반으로 트래픽을 분산함
- 클라우드 서비스에서
- L7 스위치를 이용한 로드밸런싱은 ALB(Application Load Balancer) 이라고 함
- L4 스위치를 이용한 로드밸런싱은 NLB(Network Load Balancer)이라고 함
헬스 체크
- 전송 주기와 재전송 횟수 등을 설정한 이후 반복적으로 서버에 요청을 보내는 것
- L4 스위치 , L7 스위치 모두 헬스체크를 통해 정상적인 서버 or 비정상적 서버를 판별
- 이때 서버에 부하가 되지 않을 만큼 요청 횟수가 적절해야 한다
- ICMP(ping) - 단순히 서버가 살아있는지만 확인하는 방식 , 잘 사용하지 않음
- TCP 서비스 포트 :가장 기본적인 방식은 로드밸런서에 설정된 서버의 서비스 포트를 확인하는 것
- 웹 서비스를 할 때 , 서비스 포트까지는 TCP로 정상적으로 열리지만 웹 서비스에 대한 응답을 정상적으로 해주지 못하는 경우가 있음
-> HTTP 상태 코드를 확인하는 방식으로 헬스체크 수행 - 응답 콘텐츠 확인으로 헬스체크를 수행할 수 있다
로드 밸런서를 이용한 서버 이중화
- 로드 밸런서의 대표적인 기능
- 안정적인 서비스를 위해 2대 이상의 서버는 필수
- 2대 이상의 서버를 기반으로 가상 IP를 제공하고 이를 기반으로 안정적 서비스를 제공한다
- http 서비스는 서버 #1과 서버 #2 로 , https 서비스는 서버 #2와 서버 #3으로 부하분산 그룹을 나눔
- 로드 밸런서에서 부하 분산 그룹을 만들 때에는 OSI 3계층 정보인 IP와 4계층 정보인 서비스 포트까지 지정함
부하 분산 알고리즘
라운드 로빈 (Round Robin)
현재 구성된 장비에 부하를 순차적으로 분산함. 총 누적 세션 수는 동일하지만 활성화된 세션 수는 달라질 수 있음
가중치 기반 라운드 로빈 (Weighted Round Robin)
라운드 로빈 방식과 동일하지만 각 장비에 가중치를 두어 가중치가 높은 장비에 부하를 더 많이 분산함.
처리 용량이 다른 서버에 부하를 분산하기 위한 분산 알고리즘
최소 접속 방식 (Least Connection)
- 현재 구성된 장비 중 가장 활성화된 세션 수가 적은 장비로 부하를 분산함
- 로드 밸런서에서는 서비스 요청을 각 장비로 보내줄 때마다 세션 테이블이 생성되므로 각 장비에 연결된 현재 세션 수를 알 수 있음 → 각 장비의 세션 수를 확인해 현재 세션이 가장 적게 연결된 장비로 서비스 요청을 보냄
- 활성화 세션 수가 비슷하게 분산됨
가중치 기반 최소 접속 방식 (Weighted Least Connection)
최소 접속 방식과 동일하지만 각 장비에 가중치를 부여해 가중치가 높은 장비에 부하를 더 많이 분산함. 처리 용량이 다른 서버에 부하를 분산하기 위한 분산 알고리즘
해시 (Hash)
- 해시 알고리즘을 이용한 부하 분산
- 서버의 부하를 고려하지 않고 클라이언트가 같은 서버에 지속적으로 접속하도록 하기 위해 사용하는 부하 분산 방식 ( 알고리즘을 사용하기 때문에 항상 동일한 결괏값을 가지니까 )
- 알고리즘에 사용되는 값들을 지정할 수 있음 . (출발지 IP 주소 , 목적지 IP 주소 , 출발지 서비스 포트 , 목적지 서비스 포트)
- 세션을 유지해야하는 서비스에 적합한 분산 방식
로드 밸런서 동작 모드
트랜스패런트 모드 (Transparent)
- 로드 밸런서가 OSI 2계층 스위치처럼 동작하는 구성
- 로드 밸런서에서 서비스하기 위해 사용하는 VIP 주소와 실제 서버가 동일한 네트워크를 사용하는 구성
- 원암과 인라인 구성 모두 가능
- 기존에 사용하던 네트워크 대역을 그대로 사용하므로 로드 밸런서 도입으로 인한 IP 네트워크 재설계를 고려하지 않아도 된다
- 트래픽이 로드 밸런서를 지나더라도 부하 분산 서비스를 받는 경우에만 4계층 이상의 기능을 수행한다
- 부하 분산 서비스가 아닌 경우에는 기존 L2 스위치와 동일한 스위칭 기능만 수행 → L2 구조라 함
- 출발지의 MAC 주소는 변경하지 않음
라우티드 모드
- 로드 밸런서가 라우터 역할을 수행한다
- 로드 밸런서를 기준으로 사용자 방향과 서버 방향이 서로 다른 네트워크로 분리된 구성
- 원암과 인라인 구성 모두 가능
- 보안 강화 목적으로 서버쪽 네트워크를 사설로 구성해 서버에 직접 접속하는 것을 막는 용도로 사용되기도 함
- 출발지의 MAC 주소를 변경함
DSR 모드(District Server Return)
- 사용자의 요청이 로드 밸런서를 통해 서버로 유입된 후에 다시 로드 밸런서를 통하지 않고 서버가 사용자에게 직접 응답하는 모드
- 로드 밸런서에서는 응답 트래픽이 유입되지 않으므로 사용자가 요청하는 패킷에 대해서만 관여
- 원암으로만 구성됨
- 요청 트래픽만 로드 밸런서를 통해 흐르므로 로드 밸런서 전체 트래픽이 감소함 → 부하도 감소
- 일반적인 서비스 트래픽인 경우 , 요청 패킷보다 응답 패킷의 크기가 더 크므로 로드 밸런서의 트래픽 부하 감소에 효과적
- 서비스 응답이 로드 밸런서를 경유하지 않으므로 문제가 발생했을 때 , 문제 확인이 어려움
- 사용자는 요청했던 IP 주소와 응답을 해주는 IP 주소가 다르므로 비정상적인 응답으로 간주하고 패킷을 처리하지 않을 수 있음
- 이를 막기 위해 로드 밸런서는 서비스를 요청할 때 목적지 IP는 실제 서버 IP로 변경하지 않고 VIP 유지하고 MAC 주소만 변경함
- 하지만 서버에서는 목적지 IP 주소와 일치하지 않으면 폐기되므로 루프백 인터페이스를 생성해 VIP 주소를 할당함
- 서버에는 루프백에 설정된 IP 주소더라도 패킷을 수신할 수 있도록 함
2.3.3 인터넷 계층을 처리하는 기기
인터넷 계층을 처리하는 기기로는 라우터 , L3 스위치가 있다
라우터(router)
여러 개의 네트워크를 연결 , 분할 , 구분시켜주는 역할을 하며 , 다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화하고 경로를 최적화하여 최소 경로로 패킷을 포워딩 하는 라우팅 장비
- 원격지로 쓸데없는 패킷이 전송되지 않도록 브로드캐스트와 멀티캐스트를 조절함
- 불분명한 주소와 통신을 하는 경우 , 이를 버림
L3 스위치
- L2 스위치의 기능과 라우팅 기능을 갖춘 장비
- 라우터라고 봐도 무방
- 하드웨어 기반의 라우팅 담당
구분 | L2 스위치 | L3 스위치 |
---|---|---|
참조 테이블 | MAC 주소 테이블 | 라우팅 테이블 |
참조 PDU | 이더넷 프레임 | IP 패킷 |
참조 주소 | MAC 주소 | IP 주소 |
2.3.4 데이터 링크 계층을 처리하는 기기
L2 스위치
- 장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리
- IP 주소를 이해하지 못해 IP 주소를 기반으로 하는 라우팅은 불가능
- 단순하게 MAC 주소를 읽어 스위칭하는 역할
브리지
- 두 개의 근거리 통신망(LAN)을 상호 접속할 수 있도록 하는 통신망 연결 장치
- 포트와 포트 사이의 다리 역할을 하며 장치에서 받아온 MAC 주소를 MAC 주소 테이블로 관리
- 통신망 범위를 확장하고 서로 다른 LAN 등으로 이루어진 하나의 통신망을 구축할 때 쓰임
2.3.5 물리 계층을 처리하는 기기
NIC (Network Interface Card) = LAN 카드
- 2대 이상의 컴퓨터 네트워크를 구성하는데 사용
- 네트워크와 빠른 속도로 데이터를 송수신할 수 있도록 컴퓨터 내에 설치하는 확장 카드
- 각 NIC는 고유의 식별번호인 MAC 주소를 가짐
리피터(repeater)
- 약해진 신호 정도를 증촉하여 다른 쪽으로 전달하는 장치
AP(Access Point)
- 패킷을 복사하는 기기
- 예 - 와이파이
'CS' 카테고리의 다른 글
4.1 데이터베이스의 기본 (0) | 2024.09.26 |
---|---|
3.4 CPU 스케쥴링 알고리즘 (1) | 2024.09.26 |
2.2 TCP/IP 4계층 모델 (0) | 2024.08.27 |
2.1 네트워크 기초 (0) | 2024.08.27 |
1-2. 프로그래밍 패러다임 (0) | 2024.08.27 |