OpenBSD: PF 큐가 4 Gbps 장벽을 돌파

발행: (2026년 3월 19일 PM 10:43 GMT+9)
3 분 소요

Source: Hacker News

소개

OpenBSD의 PF 패킷 필터는 오래전부터 pf.conf(5)queue 규칙을 통해 HFSC 트래픽 셰이핑을 지원해 왔습니다. 그러나 HFSC 서비스‑곡선 구조(struct hfsc_sc)에 내장된 32‑비트 제한 때문에 대역폭 값이 약 4.29 Gbps( u_int의 최대값)로 제한되었습니다.

10 G, 25 G, 100 G 네트워크 인터페이스가 보편화되고 SMP 및 고속 드라이버를 위한 커널 작업이 진행됨에 따라, 이 제한은 실질적인 장애물이 되었습니다. 큐에 bandwidth 10G를 설정하면 값이 조용히 래핑되어 잘못되고 예측할 수 없는 스케줄링 동작을 초래했습니다.

패치

새로운 패치는 커널의 HFSC 스케줄러에서 대역폭 필드를 32‑비트에서 64‑비트 정수로 확장하여 병목 현상을 완전히 제거합니다. 동일한 변경으로 pftop(1)에서 4 Gbps를 초과하는 대역폭 값이 잘못 표시되던 버그도 수정되었습니다.

주요 변경 사항

  • HFSC 스케줄러의 대역폭 필드가 이제 64‑비트.
  • pftop이 고속 대역폭 값을 올바르게 표시.
  • 4 Gbps 이하 값을 사용하는 기존 설정에는 영향 없음.

실용적인 영향

PF 큐 대역폭 설정이 현대 고속 인터페이스에서도 올바르게 동작합니다. 익숙한 구문은 그대로 유지됩니다:

queue rootq on em0 bandwidth 10G
queue defq parent rootq bandwidth 8G default

최대 999 G까지 지원되며, 오늘날 및 미래의 인터페이스에 충분합니다. 4 G 이하 값을 사용하는 기존 설정은 수정 없이 그대로 작동합니다.

사용 예시

# 인터페이스 em0에 10 Gbps 대역폭을 가진 루트 큐 정의
queue rootq on em0 bandwidth 10G

# 8 Gbps 대역폭을 가진 기본 자식 큐 정의
queue defq parent rootq bandwidth 8G default

참고 자료

0 조회
Back to Blog

관련 글

더 보기 »

코네티컷과 1킬로미터 효과

2015년에, 두 명의 지리학자는 미국 코네티컷 주의 작은 지역에서 집들에 solar panels가 늘어나는 것을 눈치챘다. 호기심이 생긴 그들은 이것을 알아낼 수 있는지 확인하려고 나섰다.

세금을 내지 않는 방법

TL;DR 미국 세금을 연기하려면 과세 소득을 사업 비용으로 경제에 재투자하고, 자산을 감가상각하며, 레버리지 투자를 활용하십시오. 투자할 때...