대규모 시스템 (약 2000 명의 사용자)에서 트래픽 제어를위한 최상의 솔루션은 무엇입니까? 사용자가 모든 포인트를

다음과 같은 상황 : 우리는 지역 주민 회관의 인터넷 연결을 관리하는 학생 그룹이며 총 약 2000 명의 최종 사용자가 있습니다.

우리는 트래픽 포인트 시스템을 가지고 있으며, MB 다운 또는 업로드 비용 포인트마다 새로운 포인트가 시간 단위로 추가됩니다. 현재 사용자가 모든 포인트를 사용했을 때 사용자의 인터넷 액세스를 차단합니다 (Debian 게이트웨이 라우터의 iptables에 거부 정책을 적용 함).

사용자의 대역폭 만 제한하고 싶습니다. 가장 좋은 방법은 무엇입니까?

간단한 대답은 사용자의 스위치 포트 (대부분 Cisco Catalyst 3550)에서 속도 제한을 설정하는 것입니다. 그러나 자체 네트워크 및 대학 네트워크 내부의 트래픽은 무제한으로 유지되어야하므로 바람직하지 않습니다. Cisco IOS에서 특정 대상 또는 소스 IP 범위 (따라서 송신 및 수신)가있는 패킷에 대해서만 대역폭을 제한하는 방법이 있습니까? 나는 아무것도 찾을 수 없었다.

다른 방법은 게이트웨이 라우터의 트래픽을 제어하는 ​​것입니다. 몇 가지 해결책이 떠 오릅니다.

  • tc 또는 tcng-둘 다 다소 간결한 구문을 가지고 있으며 IP 별 트래픽 제어를 수행하는 데 유용한 기능을 제공하지 않는 것 같습니다. 많은 사람들을위한 전용 QDisc는 아마도 라우터 속도를 상당히 느리게 할 것입니다. 또한, 둘 다에 대한 문서는 상당히 구식입니다.

  • shorewall-구성에 대해 다소 깔끔한 구문이있는 것 같지만이 트래픽과 사용자를 처리 할 수 ​​있는지 여부와 IP 별 트래픽 제한에 적합한 지 확실하지 않습니다.

  • pfSense-우리와 같은 목적을위한 OS처럼 보입니다. 그러나 게이트웨이 라우터를 강제로 다시 설치해야합니다. 우리는 다른 BSD 시스템을 가지고 있지 않으며 pfSense는 매우 우수한 트래픽 계정 기능이 필요합니다 (현재 우리는 fprobe-ulog 및 ulog-acctd를 사용하고 있습니다).

당신의 경험은 무엇입니까? 어떤 솔루션이 우리의 요구에 적합하고 가장 쉽게 유지 보수 될 수 있습니까? 다른 아이디어가 있습니까?

시스템에 대한 추가 정보가 필요하면 언제든지 문의하십시오.

미리 감사드립니다.


편집 : 나는 함께 시스템을 구현 iptables하고 tc.

모든 사용자는 / 28- 서브넷, VPN IP (모두 10.0.0.0/8) 및 외부 IP를 가지며 하나의 iptables 체인을 통해 조정됩니다. 이 체인에는 하나의 규칙 만 RETURN있습니다.

5 분마다 Python 스크립트는 이러한 규칙의 바이트 카운터를 읽습니다. PostgreSQL 데이터베이스에서 카운터를 재설정하고 사용자의 트래픽 지점 계정을 업데이트합니다.

사용자의 포인트 밸런스가 특정 임계 값 아래로 감소하면이 사용자에 대해 두 개의 tc 클래스 (하나는 수신, 하나는 게이트웨이 라우터의 발신 인터페이스에 대해)가 생성되고 IP는 이러한 클래스에 속하는 tc 필터에 입력됩니다. 수업은 HTB에 의해 속도가 제한됩니다.

와 이전 시스템에 비해 fprobe-ulogulog-acctd바이트 계산이 iptables에 의해 수행 될 때이 훨씬 빠릅니다.

사용자의 네트워크 속도가 크게 향상되었습니다.



답변

전체 설정을 재구성하는 데 얼마나 관심이 있는지 (데비안 대체), 게이트웨이 뒤에 이와 같은 것을 배치하는 것이 가능한지 확실하지 않지만 FreeBSD에는 ipfw에 dummynet 이라는 기능이 있습니다. 전용 하드웨어 트래픽 셰이퍼가 마음에 들지 않는 것처럼 들리므로이 옵션이 적합 할 수 있습니다. 현재이를 사용하여 프록시 게이트웨이 중 하나를 통해 SMTP 트래픽 인바운드 및 아웃 바운드를 막아 노화 된 NFS 백엔드 시스템이 압도되어 응답하지 않게됩니다.

규칙 세트를 스크립팅하고 지능적으로 구성하면 수천 개의 개별 IP 주소를 트래픽 제어 할 수 있습니다.


답변

무엇을 사용하고 있는지 물어봐야하지만 ResTek 직원은 인터넷 경계에 서비스 품질 기능을 수행하는 어플라이언스를 가지고 있습니다. 분류되지 않은 스트림의 기본 우선 순위를 가지며 규칙에 따라 다른 트래픽의 우선 순위를 지정합니다. 보더 어플라이언스에서 가장 높은 우선 순위로 나열된 오징어 기반 캐싱 클러스터를 운영하기 때문에 실제로 판매하는 우선 순위 기능입니다. 그런 다음 네트워크 사용자는 표준 (그리고 다소 짜증나는) 우선 순위로 웹 서핑을 선택하거나 프록시를 사용하여 매우 기민한 응답을 얻을 수 있습니다. 물론 대기 시간에 민감하지만 대역폭이 낮기 때문에 게임 서버 우선 순위 요청도받습니다.

게임 서버 요청을 처리하는 작업은 상당히 많지만 점점 더 많은 게임이 개인 서버에서 멀어짐에 따라 점점 느리게 진행되고 있습니다. 전반적으로 나는 그것이 그들에게 잘 작동한다고 들었습니다. 비트 토렌트와 같은 모든 다른 트래픽이 발생하지 않도록하고 사람들의 YouTube로드 시간을 빠르게 유지할 수 있습니다.


답변

많은 사용자들과 함께 대부분의 간단한 소프트웨어 기반의 것들이 무너지기 시작합니다.

패킷 화 장치 및 이와 유사한 장치를 살펴보십시오. 요즘은 거의 더 비싸기 때문에 더 많은 대역폭을 구매합니다 (미국과 유럽에서 호주의 가난한 사람들은 여전히 ​​매우 높은 비율입니다).


답변

dummynet은 제 의견으로는 매우 좋은 제안입니다. 그러나 iptables가 트래픽 쉐이핑을 수행 할 수 있다고 확신 하므로 데비안 상자에서 할 수 있습니다.


답변

tc는 잘 작동합니다.. 나는 당신이 원하는 것은 REJECT 트래픽 대신 표시하도록 현재 iptables 규칙을 변경하는 것입니다. 그런 다음 적은 수의 tc 규칙을 사용하여 표시된 흐름에 트래픽 쉐이핑을 적용 할 수 있습니다.

또한 조절 된 사용자 목록을 관리하는 ipset을 참조하십시오. http://ipset.netfilter.org/


답변

Trafficpanel 이 해결책 인 것 같습니다. 다른 기능들 :

  • 연결 당 최대 HTTP 속도 제한
  • 로컬 네트워크 호스트 당 웹 리소스의 총 트래픽 제한
  • 로컬 네트워크 호스트 당 인터넷 트래픽 기록
  • 로컬 네트워크 호스트 당 최대 트래픽 속도 제한
  • 로컬 네트워크 호스트 당 총 인터넷 트래픽 제한

실제로,이 일을 시도하지 않았지만 괜찮아 보입니다.