4.9. 커널
RHEL 8.6의 커널 버전
Red Hat Enterprise Linux 8.6은 커널 버전 4.18.0-372와 함께 배포됩니다.
외부 커널 매개변수 및 장치 드라이버 에 대한 중요 변경 사항 도 참조하십시오.
RHEL 8.6의 연장된 Berkeley Packet Filter
eBPF(Extended Berkeley Packet Filter) 는 제한된 기능 세트에 대한 액세스 권한이 있는 제한된 샌드박스 환경에서 커널 공간에서 코드를 실행할 수 있는 커널 내 가상 머신입니다. 가상 머신은 특수 어셈블리와 유사한 코드를 실행합니다.
eBPF 바이트코드는 먼저 커널에 로드한 후 확인, 코드 변환, just-in-time 컴파일을 사용하여 네이티브 머신 코드로 변환한 다음 가상 머신에서 코드를 실행합니다.
Red Hat은 eBPF 가상 시스템을 사용하는 다양한 구성 요소를 제공합니다. 각 구성 요소는 다른 개발 단계에 있으므로 현재 모든 구성 요소가 완전히 지원되는 것은 아닙니다. RHEL 8.6에서는 다음과 같은 eBPF 구성 요소가 지원됩니다.
- BCC(BPF Compiler Collection) 툴 패키지: eBPF 를 사용하여 Linux 운영 체제의 I/O 분석, 네트워킹 및 모니터링을 위한 툴을 제공합니다.
- BCC 툴 패키지에 제공된 툴과 유사한 툴을 개발할 수 있는 BCC 라이브러리입니다.
- 트래픽 제어(tc)를 위한 eBPF(eBPF) 기능은 커널 네트워크 데이터 경로 내에서 프로그래밍 가능한 패킷 처리를 가능하게 합니다.
-
bpftrace
추적 언어 - 커널 네트워킹 스택이 처리되기 전에 수신된 패킷에 대한 액세스를 제공하는 e XDP(데이터 경로) 기능은 특정 조건에서 지원됩니다. 자세한 내용은 XDP가 조건부로 지원되며 RHEL의 eBPF 기능에 대한 개요를 참조하십시오.
-
libbpf
패키지 -bpftrace
및bpf/xdp
개발과 같은 bpf 관련 애플리케이션에 중요합니다. -
XDP 기능에 대한 사용자 공간 지원 유틸리티가 포함된
xdp-tools
패키지는 이제 AMD 및 Intel 64비트 아키텍처에서 지원됩니다. 여기에는 XDP 프로그램을 로딩하기위한xdp-loader
유틸리티, 패킷 필터링을 위한xdp-filter
프로그램, XDP가 활성화된 네트워크 인터페이스에서 패킷을 캡처하는xdpdump
유틸리티가 포함됩니다.
다른 모든 eBPF 구성 요소는 특정 구성 요소가 지원되는 것으로 표시되지 않는 한 기술 프리뷰로 사용할 수 있습니다.
다음과 같은 주목할 만한 eBPF 구성 요소는 현재 기술 프리뷰로 제공됩니다.
-
eXpress Data Path(XDP) 경로를 사용자 공간에 연결하기 위한
AF_XDP
소켓
기술 프리뷰 구성 요소에 대한 자세한 내용은 eBPF를 기술 프리뷰로 이용 가능 을 참조하십시오.
Red Hat은 기본적으로 권한 있는 사용자에 대해서만 모든 RHEL 버전에서 eBPF 를 활성화합니다.
eBPF(extended Berkeley Packet Filter)는 복잡한 기술로, 사용자가 Linux 커널 내에서 사용자 지정 코드를 실행할 수 있습니다. 따라서 eBPF 코드는 검증기 및 기타 보안 메커니즘을 통과해야 합니다. CVE(Common Vulnerabilities and Exposures) 인스턴스가 있으며, 이 코드의 버그는 인증되지 않은 작업을 위해 오용될 수 있었습니다. 이 위험을 완화하기 위해 Red Hat은 권한 있는 사용자에 대해서만 모든 RHEL 버전에서 기본적으로 eBPF 를 활성화했습니다. kernel.command-line 매개변수 privileged _bpf_disabled=0을 사용하여 권한이 없는
사용자에 대해 eBPF 를 활성화할 수 있습니다.
그러나 다음 사항에 유의하십시오.
-
권한이 없는_bpf_disabled=0
을 적용하면 커널이 Red Hat 지원에서 평가되고 보안 위험으로 시스템이 열립니다. -
Red Hat은 기능이
CAP_SYS_ADMIN
과 같은 경우CAP_BPF
기능을 사용하여 프로세스를 처리할 것을 권장합니다. -
unauthorized
_bpf_disabled=0
을 설정하면 대부분의 BPF 프로그램 유형을 로드하려면 추가 기능(일반적으로CAP_SYS_ADMIN
또는CAP_PERFMON
)이 필요하므로 권한이 없는 사용자가 많은 BPF 프로그램을 실행할 수 없습니다.
커널 명령줄 매개변수를 적용하는 방법에 대한 자세한 내용은 커널 명령줄 매개변수 구성을 참조하십시오.
(BZ#2089409)
osnoise
및 timerlat
추적기가 RHEL 8에 추가되었습니다.
osnoise
추적기에서는 운영 체제의 잡음을 측정합니다. 즉, OS 및 하드웨어 인터럽트의 애플리케이션 중단입니다. 또한 OS 잡음의 원인을 찾는 데 도움이 되는 추적점 세트도 제공합니다. timerlat
추적기에서 레이커 대기 시간을 측정하고 실시간 (RT) 스레드의 이러한 대기 시간 원인을 식별하는 데 도움이됩니다. RT 컴퓨팅에서는 대기 시간이 매우 중요하며 최소한의 지연도 저하될 수 있습니다. osnoise
및 timerlat
추적기를 사용하면 애플리케이션과 OS 간섭의 원인을 조사 및 찾고 RT 스레드의 지연을 재개할 수 있습니다.
(BZ#1979382)
strace
유틸리티는 실제 SELinux 컨텍스트와 SELinux 컨텍스트 데이터베이스에서 추출된 정의 간의 불일치를 표시할 수 있습니다.
strace
의 기존 --secontext
옵션이 mismatch
매개변수를 사용하여 확장되었습니다. 이 매개변수를 사용하면 불일치 시 실제 컨텍스트와 함께 예상 컨텍스트를 출력할 수 있습니다. 출력은 이중 느낌표(!!
), 먼저 실제 컨텍스트, 다음 예상 컨텍스트로 구분됩니다. 아래 예제에서 전체,mismatch
매개변수는 컨텍스트의 사용자가 일치하지 않기 때문에 실제 컨텍스트와 함께 예상되는 전체 컨텍스트를 출력합니다. 그러나 독방 불일치
를 사용하는 경우 컨텍스트의 유형 부분만 확인합니다. 컨텍스트의 유형이 일치하므로 예상 컨텍스트가 인쇄되지 않습니다.
SELinux 컨텍스트 불일치로 인해 SELinux와 관련된 액세스 제어 문제가 발생하는 경우가 많습니다. 시스템 호출 추적에 출력되는 불일치는 SELinux 컨텍스트 정확성의 검사를 훨씬 신속하게 제공할 수 있습니다. 시스템 호출 추적은 액세스 제어 검사와 관련하여 특정 커널 동작을 설명할 수도 있습니다.
rteval
유틸리티에 --cyclictest-threshold
옵션이 추가되었습니다.
이번 개선된 기능을 통해 rteval
테스트 모음에 --cyclictest-threshold=USEC
옵션이 추가되었습니다. 이 옵션을 사용하면 임계값을 지정할 수 있습니다. 대기 시간 측정이 이 임계값을 초과하면 rteval
테스트 실행이 즉시 종료됩니다. 대기 시간 기대치가 충족되지 않으면 실행이 실패 상태로 중단됩니다.