높은 이탈률 규칙 세트를 사용한 고성능 라우팅. C10K 이상으로 확장할 가능성이 가장 높은 접근 방식은 무엇입니까?

높은 이탈률 규칙 세트를 사용한 고성능 라우팅. C10K 이상으로 확장할 가능성이 가장 높은 접근 방식은 무엇입니까?

PC/서버 하드웨어를 사용하여 처리량이 높은 라우터를 생성해 달라는 요청을 받았습니다. 저는 pf, iptables, tc에 비교적 익숙하지만 이렇게 높은 이탈률과 그렇게 많은 규칙을 본 적이 없습니다. 작동하지 않는 어리석은 해결책을 피할 수 있도록 도와주셨으면 좋겠습니다.

내 목표는 초당 최소 100개의 클라이언트를 추가하고 제거하여 최소 10,000개의 동시 클라이언트를 지원하는 것입니다. 각 클라이언트에는 다음 기능을 갖춘 간단한 양방향 라우팅 규칙이 있습니다.

  • IPv6 전용
  • 패킷 전달(소스 및 대상 주소 교체)
  • 수신된 바이트 수를 기록합니다.
  • 일정량의 데이터 수신 후 전달 중지

제가 우려하는 점은 초당 100개의 규칙 세트를 생성하고 파기하면 일부 숨겨진 뮤텍스로 인해 성능이 저하된다는 것입니다.

내 후보 솔루션은 다음과 같습니다.

  • 이것이 제가 선호하는 솔루션입니다.
  • iptables + tc를 갖춘 데비안.
  • 사용자 정의 커널 모듈. 하고 싶지는 않지만 필요하다면 할 것입니다.

다음 중 확장성이 가장 좋은 솔루션은 무엇인가요? 최고의 성능을 얻으려면 어떤 팁을 사용해야 합니까?

답변1

나는 당신이 하고 있는 일을 시도해 본 적이 없지만 아마도 OpenBSD를 사용하여 이를 수행하는 가장 좋은 방법은 테이블을 사용하는 것입니다. 테이블에서 IP를 쉽게 추가/제거할 수 있기 때문입니다.

관련 정보