고재성, 이상훈님의 책을 보며 정리한 내용입니다.
문제가 될 시 해당글 삭제하겠습니다.
4계층 장비의 특징
- 4계층 장비는 TCP 와 같은 4계층 헤더에 있는 정보를 이해하고 이 정보를 기반으로 동작한다.
→ 4계층에 대한 이해 없이 2,3 계층처럼 관리하게 되면 문제가 발생한다. - 4계층 장비에서 우선적으로 고려해야 할 요소는 다음과 같다.
- 세션테이블
- 세션 장비는 세션 테이블 기반으로 운영된다.
- 세션 정보를 저장, 확인하는 작업 전반에 대한 이해가 필요하다.
- 세션 정보는 세션 테이블에 남아 있는 라이프타임이 존재한다. 이 부분에 이해가 필요.
→ 3계층 라우터의 TTL (홉에서 패킷 생존기간) 을 생각해보자!
- Symmetric(대칭) 경로 요구
- Inbound, Outbound 경로가 일치해야 한다.
- 정보 변경(로드 밸런서의 경우)
- IP 주소가 변경되며 확장된 L7 로드밸런서(ADC) 는 애플리케이션 프로토콜 정보도 변경된다.
- 세션테이블
로드 밸런서
- 서버나 장비의 부하를 분산하기 위해서 사용하는 장비를 로드 밸런서라고 부른다.
- 트래픽을 분산하는 장비로 4계층 이상에서 동작하면서 IP주소, 4계층 정보, 애플리케이션 정보를 확인 수정하는 기능이 있다.
- 로드 밸런서는 동작하는 계층에 따라서 보통 4계층과 7계층으로 나뉜다.
- L4 로드 밸런싱
- 일반적인 로드 밸런서가 동작하는 방식
- TCP/UDP 정보(특히 포트 번호)를 기반으로 로드 밸런싱을 수행한다.
- L7 로드 밸런싱
- HTTP, FTP, SMTP 와 같은 애플리케이션 프로토콜 정보를 기반으로 로드 밸런싱을 수행한다.
- HTTP 헤더 정보나 URI 와 같은 정보를 기반으로 프로토콜을 이해한 후 부하를 분산할 수 있다.
- 일반적으로 이런 장비를 ADC(Application Delivery Controller) 라고 부르며 프록시 역할을 수행한다.
- L4 로드 밸런싱
L4 스위치
- 4계층에서 동작하며 로드 밸런서의 역할을 하는 스위치이다.
- 내부 방식은 4계층 로드 밸런서이지만, 외형은 스위치처럼 여러 개의 포트를 가지고 있다.
- L4 스위치가 동작하려면 가상서버, 가상IP, 리얼서버, 리얼IP를 설정해야 한다.
- 가상 서버는 사용자가 바라보는 실제 서비스이고, 가상 IP는 사용자가 접근해야 하는 서비스 IP 주소이다.
- 여기서 L4 스위치는 가상 IP를 리얼 IP로 변경해주는 역할을 한다.
ADC(Application Delivery Controller)
- 7계층에서 동작하는 로드 밸런서이다. (대부분의 ADC 는 4계층의 동작도 포함하고 있다)
- L4 와 달리 애플리케이션 프로토콜의 헤더와 내용을 이해하고 동작하므로, 다양한 부하 분산 / 정보 수정 / 정보 필터링이 가능하다.
- ADC 는 이런 상세한 동작을 위해서 프록시로 동작한다.
→ 요청의 가장 앞 단에서 동작.
L4 스위치 vs ADC
- L4 스위치는 4계층에서 동작하며, TCP / UDP 정보(특히 포트 번호)를 기반으로 부하를 분산한다.
- 부하 분산 뿐 아니라 TCP 계층에서의 최적화와 보안 기능도 함께 제공할 수 있다.
- ADC 는 애플리케이션 프로토콜을 이해하고 애플리케이션 내용에 대한 분산, 리다이렉션, 최적화를 제공해 L4 스위치보다 다양한 기능을 제공.
→ 성능 최적화를 위해 서버의 작업 중 부하가 많이 걸리는 작업을 별도로 수행
ex) 이미지나 정적 콘텐츠 캐싱 - 최근 보안 강화를 위해 일부 페이지가 아닌 웹사이트 전체를 SSL로 처리하는 추세
→ SSL : TLS 의 전신으로 HTTPS 프로토콜은 TLS가 적용된 프로토콜이다.
→ 패킷을 까보면 TLS 1.2 등의 프로토콜이 표시되는 것을 확인할 수 있다. - ADC 에서는 SSL 의 엔드포인트로 동작해 클라이언트에서 ADC 까지의 구간을 SSL 로 처리해주고 ADC 와 웹서버 사이를 HTTP 를 이용해 통신한다.
→ 전기 신호가 1~7 계층을 통과하는 과정은 SSL를 사용하고(보안강화),
→ 실제 서버와 통신하는 구간은 HTTP 통신을 사용한다.
<스케일 업(다운) & 스케일 아웃(인)>
- 시스템 확장 방법으로 스케일 업은 질적 향상을 뜻하고, 스케일 아웃은 양적 향상을 뜻한다.
- 스케일 업의 문제
- 확장을 고려에 초기부터 스케일 업을 해 시스템을 구축하면 비용이 커지고, 낭비가 생긴다.
- 스케일 업은 어느 시점이 지나가면 필요한 용량만큼 시스템을 늘리는데 필요한 비용이 기하급수적으로 늘어난다.
- 스케일 아웃의 문제
- 스케일 업에 비해 비용이 적게 든다는 큰 장점이 있지만, 이를 위해 복잡한 아키텍처를 이해하고 운영해야만 할 수 있다.
⇒ 상황에 따라서 적절하게 선택해라;;
방화벽
- 네트워크 중간에 위치해 해당 장비를 통과하는 트래픽을 사전에 주어진 정책 조건에 맞추어 허용하거나 차단하는 장비를 방화벽이라고 한다.
- 일반적으로 3,4 계층에서 동작하고 세션을 인지 관리하는 SPI 엔진을 기반으로 동작하는 장비를 방화벽이라고 부른다.
- 방화벽은 NAT(공인 IP → 사설 IP) 동작 방식과 유사하게 세션 정보를 장비 내부에 저장한다.
→ 이를 통해서 사용자를 가려낼 수 있다.
4계층 장비를 통과할 때의 유의 점(세션관리)
세션 테이블 유지, 세션 정보 동기화
- 종단 장비에서 통신을 시작하면 중간에 있는 세션 장비는 해당 세션 상태를 테이블에 기록한다.
→ 통신이 없더라도 종단 장비 간 통신이 정상적으로 종료되지 않았다면 일정 시간 동안 세션 테이블을 유지한다.
→ 악의적으로 세션 테이블 정보를 변경할 수도 있기 때문에, 타임 아웃 값을 더 줄이기도 함.
→Servlet 에서 세션 유지 시간을 조정해주는 것을 생각하자.. - 세션 장비의 세션 타임아웃 값이 애플리케이션 세션 타임아웃 값보다 짧으면 통신에 문제가 생긴다.
(세션 타임아웃 설정 값은 장비와 애플리케이션 모두 같아야 한다.) - 동작 과정
- 3WAY HANDSHAKE 를 통해 정상적인 세션 설정 (방화벽에서 세션 설정 과정 확인 후 세션 테이블 기록)
- 세션 테이블을 참조해 방화벽에서 패킷 통과
- 일정시간 통신 없음
- 세션 타임 만료로 세션 테이블 만료
- 세션 테이블 만료 후 애플리케이션 통신 시작
- 세션 장비의 세션 타임아웃이 만료되어 방화벽에서 패킷 드롭
세션 장비 운영자 입장
- 세션 만료 시간 증가
- 세션 장비 운용자가 애플리케이션에 맞게 세션 만료 시간을 늘리는 방법이 있다.
- 대부분의 세션장비는 포트번호나 IP 주소마다 별도의 세션 만료 시간을 설정할 수 있다.
세션 시간을 둔 채로 중간 패킷을 수용할 수 있도록 방화벽 설정(세션 장비 중 방화벽 해당)- 해당 해결책은 보안이 약해지는 단점이 있기에 사용하지 않는 것이 좋다.
- 세션 장비에서 세션 타임아웃 시, 양 단말에 세션 종료 통보
개발자 입장
- 애플리케이션에서 주기적인 패킷 발생 기능 추가
- 중간에 통신이 없더라도 일정 시간마다 양 단말 애플리케이션의 세션 상태 정보를 체크하는 더미 패킷을 보내는 기능을 추가할 수 있다.
- 최근 대부분의 플랫폼에서는 이런 기능들을 내장하고 개발하도록 안내한다.
- 보안 문제는??
→아는 분 있으시면 답글 남겨주세요.. ㅠㅠ
비대칭 경로 문제
- 네트워크 안정성을 높이기 위해서 네트워크 회선과 장비를 이중화한다.
- 이때! 세션에 고려 없이 비대칭 경로를 사용하게 되면, 정상적인 서비스가 되지 않는다..
- 비대칭 경로를 방화벽에서 처리할 수 있는 방법
- 세션 테이블 동기화!
- 패킷 경로를 변경하지 않고 동작한다는 장점이 있다.
- 하지만, 세션을 동기화하는 시간보다 패킷 응답이 빠르면 정상적으로 동작하지 않을 수 있다.
- 이 기능은 응답 시간이 비교적 긴, 인터넷 게이트웨이로 방화벽이 사용될 때 유용하게 사용될 수 있다.
- 세션 장비에서 다양한 방법으로 이를 보정하는 것이다.
- 인바운드 패킷이 통과하지 않았는데, 아웃바운드 패킷이 들어올 경우, 인바운드 패킷이 통과한 다른 세션 장비 쪽으로 패킷을 보내 경로를 보정한다.
- 세션 테이블 동기화!
'CS > 네트워크' 카테고리의 다른 글
[IT 엔지니어를 위한 네트워크 입문] Chapter9. 보안 (1) | 2023.01.10 |
---|---|
[IT 엔지니어를 위한 네트워크 입문] Chapter7. 통신을 도와주는 네트워크 기술 (0) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter5. 라우터 / L3 스위치 : 3계층 장비 (0) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter4. 스위치 : 2계층 장비 (0) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter3. 네트워크 통신하기 (0) | 2023.01.10 |