DSCP/ToS를 사용하여 특정 애플리케이션의 트래픽을 표시하는 방법이 있습니까?

DSCP/ToS를 사용하여 특정 애플리케이션의 트래픽을 표시하는 방법이 있습니까?

최근에 Windows에서 Linux(Manjaro)로 전환했습니다.

트래픽을 관리하기 위해 저는 네트워크 트래픽이 특정 코드(DSCP)로 태그 지정되도록 애플리케이션 이름을 지정할 수 있는 Windows 기능을 사용해 왔습니다. 그런 다음 내 라우터(pfsense)가 이를 검사하고 우선 순위를 지정합니다. 그에 따라 트래픽이 발생합니다.

다음과 같은 우선순위를 설정합니다.

  1. 온라인 게임
  2. 분류되지 않은 모든 트래픽(주로 네트워크 트래픽)
  3. 스팀/오리진/윈도우 업데이트
  4. 여울

이를 통해 내 형제와 나는 토렌트를 사용하여 온라인 게임을 할 수 있으며 부모님은 언제든지 YouTube 비디오를 열 수 있습니다. 토렌트/업데이트는 라우터에 의해 자동으로 제한되며 최악의 경우 5ms의 지연이 발생합니다. 전체 프로세스 중에 지터가 발생하고 추가로 10~20개의 핑이 발생합니다.

Linux로 전환하려고 생각했을 때 이 구성을 복사하는 것이 문제가 될 것이라고는 예상하지 못했습니다. iptables나 다른 Linux 방화벽의 기본 기능이라고 생각했지만 2002년경에도 해당 기능이 존재했다는 것이 밝혀졌습니다. /2003 1999년 손상으로 인해 버려졌고 수리가 너무 번거롭다고 판단되었습니다.

iptables를 사용하면 프로세스 pid를 기반으로 트래픽에 태그를 지정할 수 있지만 pfsense가 트래픽의 우선 순위를 지정하는 방식 때문에 애플리케이션에서 보낸 첫 번째 패킷에 태그를 지정해야 하기 때문에 이 방법은 나에게 적합하지 않습니다.

그래서 솔루션을 결정하기 전에 몇 주 동안 다양한 검색어를 시도하면서 다음 옵션을 통해 진전을 이루었습니다.

SElinux/Aparmor - 내가 원하는 것/필요한 것보다 훨씬 많은 기능을 수행합니다.

systemtap - (커널 디버깅 도구) 일종의 라이브 커널 패치에서 pid/프로세스 이름을 읽는 동안 iptables 규칙을 만드는 스크립트를 찾으려고 합니다(이상적이지 않음).

anfd/lpfw - 이 방화벽은 기본적으로 모든 것을 차단하며 애플리케이션 명령 이름을 기반으로 트래픽을 허용하는 규칙을 설정할 수 있습니다.

나는 누군가가 이것을 알아낼 수 있기를 바라면서 이것을 게시하고 있습니다. 왜냐하면 그렇지 않다면 내 필요에 맞게 lpfw 또는 andf를 수정해야 하기 때문입니다.

TL;DR 내 라우터가 적절하게 우선 순위를 지정할 수 있도록 특정 응용 프로그램의 트래픽이 명령 이름을 기반으로 표시(ToS/DSCP)되도록 하려고 합니다.

Linux에서 이 기능을 복제하는 방법에 대한 정보를 주시면 감사하겠습니다.

관련 정보