PC/서버 하드웨어를 사용하여 처리량이 높은 라우터를 생성해 달라는 요청을 받았습니다. 저는 pf, iptables, tc에 비교적 익숙하지만 이렇게 높은 이탈률과 그렇게 많은 규칙을 본 적이 없습니다. 작동하지 않는 어리석은 해결책을 피할 수 있도록 도와주셨으면 좋겠습니다.
내 목표는 초당 최소 100개의 클라이언트를 추가하고 제거하여 최소 10,000개의 동시 클라이언트를 지원하는 것입니다. 각 클라이언트에는 다음 기능을 갖춘 간단한 양방향 라우팅 규칙이 있습니다.
- IPv6 전용
- 패킷 전달(소스 및 대상 주소 교체)
- 수신된 바이트 수를 기록합니다.
- 일정량의 데이터 수신 후 전달 중지
제가 우려하는 점은 초당 100개의 규칙 세트를 생성하고 파기하면 일부 숨겨진 뮤텍스로 인해 성능이 저하된다는 것입니다.
내 후보 솔루션은 다음과 같습니다.
- 이것이 제가 선호하는 솔루션입니다.
- iptables + tc를 갖춘 데비안.
- 사용자 정의 커널 모듈. 하고 싶지는 않지만 필요하다면 할 것입니다.
다음 중 확장성이 가장 좋은 솔루션은 무엇인가요? 최고의 성능을 얻으려면 어떤 팁을 사용해야 합니까?
답변1
나는 당신이 하고 있는 일을 시도해 본 적이 없지만 아마도 OpenBSD를 사용하여 이를 수행하는 가장 좋은 방법은 테이블을 사용하는 것입니다. 테이블에서 IP를 쉽게 추가/제거할 수 있기 때문입니다.