Linux 에서 네트워크 큐 규율 설정 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 네트워크 큐 규율 (queue discipline) 이 설정되었는지 확인하는 방법을 배우게 됩니다. tc qdisc show 명령을 사용하여 네트워크 인터페이스에 구성된 큐 규율을 나열하고 출력을 이해할 것입니다.

또한 ip link 명령을 사용하여 네트워크 인터페이스를 확인하고 /etc/network의 네트워크 구성 파일을 검사하여 네트워크 설정과 큐 규율이 어떻게 적용되는지에 대한 포괄적인 이해를 얻을 것입니다.

tc qdisc 로 큐 규율 목록 확인

이 단계에서는 tc 명령을 사용하여 네트워크 인터페이스에 구성된 큐 규율을 나열하는 방법을 배우게 됩니다.

tc 명령은 트래픽 제어에 사용되는 Linux 의 강력한 도구입니다. 셰이핑 (shaping), 스케줄링 (scheduling), 폴리싱 (policing) 을 포함한 네트워크 트래픽을 관리할 수 있습니다. 큐 규율 (qdiscs) 은 트래픽 제어의 핵심입니다. 큐 규율은 패킷이 네트워크 인터페이스에서 어떻게 큐에 들어가고 전송되는지를 결정합니다.

현재 구성된 큐 규율을 나열하려면 tc qdisc show 명령을 사용합니다.

아직 열려 있지 않다면 터미널을 엽니다. 데스크탑 왼쪽의 Xfce 터미널 아이콘을 클릭하여 터미널을 열 수 있습니다.

이제 다음 명령을 입력하고 Enter 키를 누릅니다.

tc qdisc show

다음과 유사한 출력을 볼 수 있습니다.

qdisc noqueue 0: dev lo root refcnt 2
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn

출력을 자세히 살펴보겠습니다.

  • qdisc: 이 줄이 큐 규율을 설명함을 나타냅니다.
  • noqueue: 이것은 큐 규율의 이름입니다. noqueue는 어떤 큐잉도 수행하지 않는 간단한 qdisc 입니다. 인터페이스가 사용 중이면 패킷이 삭제됩니다. 일반적으로 루프백 인터페이스 (lo) 에 사용됩니다.
  • 0:: 이것은 qdisc 의 핸들입니다.
  • dev lo: qdisc 가 연결된 네트워크 인터페이스를 지정합니다. lo는 루프백 인터페이스입니다.
  • root: 이것이 인터페이스의 루트 qdisc 임을 나타냅니다.
  • refcnt 2: qdisc 의 참조 횟수입니다.

두 번째 줄은 eth0 인터페이스에서 fq_codel qdisc 를 보여줍니다. fq_codel은 공정 큐잉 (Fair Queuing, FQ) 과 CoDel(Controlled Delay) 을 결합하여 공정한 대역폭 할당을 제공하고 버퍼블로트 (bufferbloat) 를 최소화하는 보다 진보된 qdisc 입니다.

큐 규율을 이해하는 것은 네트워크 성능을 최적화하고 네트워크 혼잡 문제를 해결하는 데 매우 중요합니다.

다음 단계로 진행하려면 **계속 (Continue)**을 클릭하십시오.

이 단계에서는 ip link 명령을 사용하여 시스템의 네트워크 인터페이스를 검사합니다. ip 명령은 Linux 에서 네트워크 구성을 위한 현대적이고 다재다능한 유틸리티로, ifconfig와 같은 이전 도구를 대체합니다.

ip link 명령은 특히 네트워크 인터페이스 자체를 처리하여 상태, MAC 주소 및 기타 세부 정보를 표시합니다.

아직 열려 있지 않다면 터미널을 엽니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

ip link show

다음과 유사한 출력을 볼 수 있으며, 네트워크 인터페이스가 나열됩니다.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff

각 인터페이스에 제공된 주요 정보를 살펴보겠습니다.

  • 1: lo:2: eth0:: 인터페이스 인덱스 및 이름입니다. lo는 루프백 인터페이스이고, eth0는 일반적으로 기본 네트워크 인터페이스입니다.
  • <LOOPBACK,UP,LOWER_UP><BROADCAST,MULTICAST,UP,LOWER_UP>: 인터페이스의 기능과 현재 상태를 나타내는 플래그입니다. UP은 인터페이스가 활성 상태임을 의미하고, LOWER_UP은 물리적 링크가 활성 상태임을 의미합니다.
  • mtu 65536mtu 1500: 최대 전송 단위 (Maximum Transmission Unit, MTU) 로, 단편화 없이 전송할 수 있는 최대 패킷 크기입니다.
  • qdisc noqueueqdisc fq_codel: 이전 단계에서 보았듯이 인터페이스에 연결된 큐 규율입니다.
  • state UNKNOWNstate UP: 인터페이스의 작동 상태입니다.
  • mode DEFAULT: 인터페이스의 모드입니다.
  • group default: 인터페이스가 속한 그룹입니다.
  • qlen 1000: 전송 큐 길이입니다.
  • link/loopbacklink/ether: 링크 계층 유형입니다.
  • 00:00:00:00:00:00aa:bb:cc:dd:ee:ff: 인터페이스의 MAC 주소입니다.
  • brd 00:00:00:00:00:00brd ff:ff:ff:ff:ff:ff: 브로드캐스트 MAC 주소입니다.

ip link show 명령은 네트워크 인터페이스의 상태 및 구성을 빠르게 확인하는 데 필수적입니다.

계속 진행하려면 **계속 (Continue)**을 클릭하십시오.

/etc/network 에서 네트워크 설정 검토

이 단계에서는 /etc/network 디렉토리에 있는 기존 네트워크 구성 파일을 살펴봅니다. 최신 Linux 배포판은 Netplan 또는 NetworkManager 와 같은 도구를 자주 사용하지만, 이러한 이전 구성 파일을 이해하는 것은 여전히 유용합니다. 특히 해당 파일을 사용하거나 문제 해결을 위해 사용하는 시스템에서 그렇습니다.

이 스타일의 네트워크 인터페이스에 대한 기본 구성 파일은 /etc/network/interfaces입니다.

아직 열려 있지 않다면 터미널을 엽니다.

cat 명령을 사용하여 /etc/network/interfaces 파일의 내용을 표시합니다. cat은 파일 내용을 연결하고 표시하는 데 사용되는 간단한 명령입니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

cat /etc/network/interfaces

다음과 유사한 출력을 볼 수 있습니다.

## interfaces(5) file used by ifup(8) and ifdown(8)
## Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

내용을 살펴보겠습니다.

  • #: #로 시작하는 줄은 주석이며 무시됩니다.
  • source-directory /etc/network/interfaces.d: 이 줄은 시스템에 /etc/network/interfaces.d 디렉토리에서 찾은 구성 파일을 포함하도록 지시합니다. 이를 통해 모듈식 네트워크 구성을 사용할 수 있습니다.
  • auto lo: 이 줄은 시스템이 시작될 때 lo(루프백) 인터페이스가 자동으로 시작되어야 함을 나타냅니다.
  • iface lo inet loopback: 이 줄은 lo 인터페이스를 구성합니다. inet은 주소 패밀리 (IPv4) 를 지정하고, loopback은 루프백 인터페이스임을 나타냅니다.
  • auto eth0: 이 줄은 시스템이 시작될 때 eth0 인터페이스가 자동으로 시작되어야 함을 나타냅니다.
  • iface eth0 inet dhcp: 이 줄은 eth0 인터페이스가 DHCP(Dynamic Host Configuration Protocol, 동적 호스트 구성 프로토콜) 를 사용하여 IP 주소 및 기타 네트워크 설정을 자동으로 가져오도록 구성합니다.

이 파일은 네트워크 인터페이스를 구성하는 정적 방식을 제공합니다. DHCP 를 사용하는 대신 여기에서 IP 주소, 넷마스크, 게이트웨이 및 기타 설정을 수동으로 정의할 수 있습니다.

이 랩에서는 이 파일을 수정하지 않지만, 해당 위치와 기본 구조를 아는 것은 Linux 시스템에서 네트워크 인터페이스를 구성하는 방법을 이해하는 데 중요합니다.

이 랩을 완료하려면 **계속 (Continue)**을 클릭하십시오.

요약

이 랩에서는 Linux 에서 네트워크 큐 규율 (queue discipline) 이 설정되었는지 확인하는 방법을 배웠습니다. 먼저 tc qdisc show 명령을 사용하여 네트워크 인터페이스에서 구성된 큐 규율을 나열하고, qdisc 이름, 인터페이스 및 유형을 포함한 출력을 이해했습니다. 이 명령은 트래픽 제어 설정을 검사하기 위한 기본적인 도구입니다.

또한 noqueuefq_codel과 같은 다양한 큐 규율과 네트워크 트래픽 및 성능을 관리하는 역할에 대한 이해의 중요성을 배웠습니다. 이 초기 단계는 시스템에서 어떤 qdisc 가 활성 상태인지 확인하는 실용적인 방법을 제공했습니다.