위로
아래
Session Table
세션테이블 (Session Table)
- 네트워크 4계층(전송) 장비부터는 2,3계층과 달리 세션 정보를 관리한다. (방화벽, 로드밸런서 등)
- 세션테이블은 메모리에 저장. 메모리 사용률을 유지하기 위해 세션 정보에는 타임아웃 값(시간 지나면 만료)이 있다.
- 세션 테이블 정보를 이용하면
- 패킷을 Forward 혹은 Drop 가능
- 애플리케이션 성능 최적화 가능
- 보안 강화 가능
동작 순서
- 3방향 핸드셰이크를 통해 세션 설정 (4계층 장비에서 세션 테이블 기록)
- 패킷이 들어오면 세션 테이블을 참조해 패킷 통과
- 일정 시간동안 해당 패킷이 들어오지 않으면 세션 테이블에서 해당 데이터 만료
- 세션 만료된 후에 해당 패킷이 접속 요청 시, 4계층 장비에서 해당 패킷을 드롭.
세션 만료에 따른 에러 방지 방법
주기적으로 더미패킷 전송
- 애플리케이션 개발 시, 중간에 통신이 없더라도 일정 시간마다 양 단말의 세션 상태 정보를 체크하는 Dummy Packet을 보낸다.
- 방화벽에서 세션 타임아웃이 발생하기 전에 세션 정보를 추가해 세션을 유지할 수있다.
- 많이 사용하는 방법
세션 만료 시간 증가
- 애플리케이션 세션 유지 시간보다 방화벽 세션 유지 시간을 길게 설정
- 대부분의 세션 장비는 포트 번호나 IP 주소마다 별도의 세션 유지 시간 설정 가능
세션 만료 시 종료 통보 (RST)
- 양 종단 장비의 세션 정보와 중간 세션 장비의 세션 정보가 일치하지 않아 발생하는 문제 방지
- 세션이 만료되어 세션테이블에서 기록을 제거할 때, 세션 정보 만료 RST 패킷을 만들어 양 종단 단말에 전송.
- RST 패킷을 받은 단말은 해당 프로세스를 종료
방화벽 설정 (방화벽 장비에서만 가능)
- 해당 세션만 방화벽에 세션 정보를 등록해둔다
- 세션 테이블에 없는 ACK 패킷 이들어오면 세션을 새로 만들어 통과
- 보안이 취약해지기 때문에 잘 사용하진 않음
비대칭 경로
- 인바운드 패킷 (Inbound Packet) : 서버 내부로 들어오는 패킷
- 아웃바운드 패킷 (Outbound Packet) : 서버 외부로 나가는 패킷
- 대칭 경로 (Symmetric Path) : 인바운드 패킷과 아웃바운드 패킷이 같은 장비를 통과하는 것
- 비대칭 경로 (Asymmetric Path) : 인바운드 패킷과 아웃바운드 패킷이 다른 장비를 통과하는 것
비대칭 경로의 문제 발생 과정
- 안정성을 높이기 위해, 네트워크에서는 보통 네트워크 회선과 장비를 이중화한다.
- 이때 패킷이 지나가는 경로가 2개 이상이 된다.
- 세션 장비는 세션 테이블을 만들어서 관리해야하는데, 패킷이 동일한 장비를 통과하지 않으면 정상적으로 서비스가 불가능하다.
해결 방법
- 이중화되어 있는 여러 세션 장비들의 세션테이블을 동기화
- 패킷의 경로를 변경하지 않고 동작할 수 있다 (장점)
- 애플리케이션의 응답 시간이 빨라서, 세션 테이블 동기화보다 패킷의 응답이 더 빠르면 동작하지 않을 수 있다 (단점)
- 단점 때문에 추천하지 않는 방식
- 세션 장비들이 패킷의 경로를 대칭 경로 세션 장비로 수정
- 강제로 다른 세션 장비로 패킷을 전송.
- 어떤 세션 장비에 인바운드 패킷이 통과하지 않았는데 아웃바운드 패킷이 들어왔다면, 인바운드 패킷이 통과한 세션 장비로 패킷을 보내서 비대칭 경로를 대칭 경로로 수정한다
- 세션 장비 간의 통신용 링크가 필요하다
- MAC Rewriting(MAC 리라이팅) : 패킷의 MAC 주소를 변경
- Tunneling(터널링) : 기존 패킷에 MAC 주소를 한 번 더 인캡슐레이션해서 경로를 보정