위로 아래

Session Table

세션테이블 (Session Table)

  1. 네트워크 4계층(전송) 장비부터는 2,3계층과 달리 세션 정보를 관리한다. (방화벽, 로드밸런서 등)
  2. 세션테이블은 메모리에 저장. 메모리 사용률을 유지하기 위해 세션 정보에는 타임아웃 값(시간 지나면 만료)이 있다.
  3. 세션 테이블 정보를 이용하면
    1. 패킷을 Forward 혹은 Drop 가능
    2. 애플리케이션 성능 최적화 가능
    3. 보안 강화 가능

 

동작 순서

  1. 3방향 핸드셰이크를 통해 세션 설정 (4계층 장비에서 세션 테이블 기록)
  2. 패킷이 들어오면 세션 테이블을 참조해 패킷 통과
  3. 일정 시간동안 해당 패킷이 들어오지 않으면 세션 테이블에서 해당 데이터 만료
  4. 세션 만료된 후에 해당 패킷이 접속 요청 시, 4계층 장비에서 해당 패킷을 드롭.

 

 


세션 만료에 따른 에러 방지 방법

주기적으로 더미패킷 전송

  1. 애플리케이션 개발 시, 중간에 통신이 없더라도 일정 시간마다 양 단말의 세션 상태 정보를 체크하는 Dummy Packet을 보낸다.
  2. 방화벽에서 세션 타임아웃이 발생하기 전에 세션 정보를 추가해 세션을 유지할  수있다.
  3. 많이 사용하는 방법

 

세션 만료 시간 증가

  1. 애플리케이션 세션 유지 시간보다 방화벽 세션 유지 시간을 길게 설정
  2. 대부분의 세션 장비는 포트 번호나 IP 주소마다 별도의 세션 유지 시간 설정 가능

 

세션 만료 시 종료 통보 (RST)

  1. 양 종단 장비의 세션 정보와 중간 세션 장비의 세션 정보가 일치하지 않아 발생하는 문제 방지
  2. 세션이 만료되어 세션테이블에서 기록을 제거할 때, 세션 정보 만료 RST 패킷을 만들어 양 종단 단말에 전송.
  3. RST 패킷을 받은 단말은 해당 프로세스를 종료

 

방화벽 설정 (방화벽 장비에서만 가능)

  1. 해당 세션만 방화벽에 세션 정보를 등록해둔다
  2. 세션 테이블에 없는 ACK 패킷 이들어오면 세션을 새로 만들어 통과
  3. 보안이 취약해지기 때문에 잘 사용하진 않음

 

 

 

 

 


비대칭 경로

  1. 인바운드 패킷 (Inbound Packet) : 서버 내부로 들어오는 패킷
  2. 아웃바운드 패킷 (Outbound Packet) : 서버 외부로 나가는 패킷
  3. 대칭 경로 (Symmetric Path) : 인바운드 패킷과 아웃바운드 패킷이 같은 장비를 통과하는 것
  4. 비대칭 경로 (Asymmetric Path) : 인바운드 패킷과 아웃바운드 패킷이 다른 장비를 통과하는 것

 

비대칭 경로의 문제 발생 과정

  1. 안정성을 높이기 위해, 네트워크에서는 보통 네트워크 회선과 장비를 이중화한다.
  2. 이때 패킷이 지나가는 경로가 2개 이상이 된다.
  3. 세션 장비는 세션 테이블을 만들어서 관리해야하는데, 패킷이 동일한 장비를 통과하지 않으면 정상적으로 서비스가 불가능하다.

 

해결 방법

  1. 이중화되어 있는 여러 세션 장비들의 세션테이블을 동기화
    1. 패킷의 경로를 변경하지 않고 동작할 수 있다 (장점)
    2. 애플리케이션의 응답 시간이 빨라서, 세션 테이블 동기화보다 패킷의 응답이 더 빠르면 동작하지 않을 수 있다 (단점)
    3. 단점 때문에 추천하지 않는 방식
  2. 세션 장비들이 패킷의 경로를 대칭 경로 세션 장비로 수정
    1. 강제로 다른 세션 장비로 패킷을 전송.
    2. 어떤 세션 장비에 인바운드 패킷이 통과하지 않았는데 아웃바운드 패킷이 들어왔다면, 인바운드 패킷이 통과한 세션 장비로 패킷을 보내서 비대칭 경로를 대칭 경로로 수정한다
    3. 세션 장비 간의 통신용 링크가 필요하다
    4. MAC Rewriting(MAC 리라이팅) : 패킷의 MAC 주소를 변경
    5. Tunneling(터널링) : 기존 패킷에 MAC 주소를 한 번 더 인캡슐레이션해서 경로를 보정