9.3 릴리스 노트
Red Hat Enterprise Linux 9.3 릴리스 정보
초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
Red Hat 문서에 관한 피드백 제공
문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Jira를 통해 피드백 제출 (등록 필요)
- Jira 웹 사이트에 로그인합니다.
- 상단 탐색 모음에서 생성 을 클릭합니다.
- 요약 필드에 설명 제목을 입력합니다.
- 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
- 대화 상자 하단에서 생성 을 클릭합니다.
1장. 개요
1.1. RHEL 9.3의 주요 변경 사항
설치 프로그램 및 이미지 생성
이미지 빌더의 주요 강조 표시:
- 기존 BIOS 부팅 외에도 UEFI 부팅을 지원하기 위해 AWS EC2 AMD 또는 Intel 64비트 아키텍처 AMI 이미지 개선
자세한 내용은 새로운 기능 - 설치 프로그램 및 이미지 생성 을 참조하십시오.
RHEL for Edge
RHEL for Edge의 주요 주요 사항:
다음 이미지 유형에 대한 지원이 추가되었습니다.
-
minimal-raw
-
edge-vsphere
-
edge-ami
-
새로운 FIDO 장치 온보딩 서버 컨테이너 이미지 사용 가능
- rhel9/fdo-manufacturing-server
- rhel9/fdo-owner-onboarding-server
- rhel9/fdo-rendezvous-server
- rhel9/fdo-serviceinfo-api-server
자세한 내용은 새로운 기능 - RHEL for Edge를 참조하십시오.
보안
주요 보안 관련 강조 사항:
- Keylime 은 버전 7.3.0에 따라 변경되었습니다.
-
keylime
RHEL 시스템 역할을 사용할 수 있습니다. 이 역할을 사용하면 Keylime 검증기 및 Keylime 등록 기관을 보다 쉽게 구성할 수 있습니다. - OpenSSH 는 암호화 목적으로 덜 안전한 SHA-1 메시지 다이제스트에서 추가로 마이그레이션되었으며 대신 추가 시나리오에서 더 안전한 SHA-2를 적용합니다.
- pcsc-lite-ccid USB Chip/Smart Card Interface Device(CCID) 및 ICD(Integrated Circuit Card Device) 드라이버가 버전 1.5.2로 변경되었습니다.
- RHEL 9.3에서는 모든 TLS 1.2 연결에 FIPS-140-3 표준에 필요한 Extended Master Secret( Cryostat 7627) 확장(RFC 7627)을 추가로 지원합니다.
- setools 는 SELinux 정책 분석을 위한 그래픽 툴, 명령줄 툴 및 라이브러리 컬렉션인 setools는 4.4.3 버전을 기반으로 했습니다.
- OpenSCAP 은 1.3.8 버전으로 업데이트되었습니다.
SCAP 보안 가이드는 버전 0.1.69에 따라 수정되었으며, 특히 다음과 같습니다.
- ANSSI 프로필이 버전 2.0으로 업데이트되었습니다.
- CCN-STIC-610A22 가이드와 일치하는 RHEL 9용 새로운 SCAP 프로파일 3개가 추가되었습니다.
자세한 내용은 새 기능 - 보안 을 참조하십시오.
동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버
다음 Application Streams의 최신 버전을 사용할 수 있습니다.
- Redis 7
- Node.js 20
또한 Apache HTTP Server 가 2.4.57 버전으로 업데이트되었습니다.
자세한 내용은 새로운 기능 - 동적 프로그래밍 언어, 웹 및 데이터베이스 서버를 참조하십시오.
컴파일러 및 개발 도구
업데이트된 시스템 툴체인
RHEL 9.3에서 다음 시스템 툴체인 구성 요소가 업데이트되었습니다.
- GCC 11.4.1
업데이트된 성능 도구 및 디버거
RHEL 9.3에서 다음 성능 툴 및 디버거가 업데이트되었습니다.
- Valgrind 3.21
- SystemTap 4.9
- elfutils 0.189
업데이트된 성능 모니터링 툴
RHEL 9.3에서 다음과 같은 성능 모니터링 도구가 업데이트되었습니다.
- PCP 6.0.5
- Grafana 9.2.10
업데이트된 컴파일러 툴셋
RHEL 9.3에서 다음 컴파일러 툴셋이 업데이트되었습니다.
- GCC Toolset 13 (new)
- LLVM Toolset 16.0.6
- rust Toolset 1.71.1
- Go Toolset 1.20.10
자세한 변경 사항은 새로운 기능 - 컴파일러 및 개발 도구를 참조하십시오.
RHEL 9에서 Java 구현
RHEL 9 AppStream 리포지토리에는 다음이 포함됩니다.
-
OpenJDK 21 Java 런타임 환경과 OpenJDK 21 Java 소프트웨어 개발 키트를 제공하는
java-21-openjdk
패키지 OpenJDK 21.0.1 보안 릴리스도 설치할 수 있습니다. 최신 보안 수정 사항을 얻으려면 OpenJDK 21.0.1 업데이트를 설치하는 것이 좋습니다. -
OpenJDK 17 Java Runtime Environment 및 OpenJDK 17 Java Software Development Kit를 제공하는
java-17-openjdk
패키지입니다. -
OpenJDK 11 Java 런타임 환경과 OpenJDK 11 Java 소프트웨어 개발 키트를 제공하는
java-11-openjdk
패키지. -
OpenJDK 8 Java 런타임 환경과 OpenJDK 8 Java 소프트웨어 개발 키트를 제공하는
java-1.8.0-openjdk
패키지
Red Hat build of OpenJDK 패키지는 이식 가능한 Linux 릴리스와 RHEL 9.3 이상 릴리스 간에 단일 바이너리 세트를 공유합니다. 이번 업데이트를 통해 소스 RPM에서 RHEL에서 OpenJDK 패키지를 다시 빌드하는 프로세스가 변경되었습니다. 새로운 재구축 프로세스에 대한 자세한 내용은 OpenJDK의 Red Hat 빌드의 SRPM 패키지에서 사용할 수 있으며 /usr/share/doc
트리의 java-*-openjdk-headless
패키지로도 제공되는 README.md 파일을 참조하십시오.
자세한 내용은 OpenJDK 설명서를 참조하십시오.
1.2. 인플레이스 업그레이드
RHEL 8에서 RHEL 9로 인플레이스 업그레이드
지원되는 인플레이스 업그레이드 경로는 현재 다음과 같습니다.
다음 아키텍처에서 RHEL 8.6에서 RHEL 9.0, RHEL 8.8에서 RHEL 9.2로, RHEL 8.9에서 RHEL 9.3까지 다음을 수행합니다.
- 64비트 Intel
- 64비트 AMD
- 64비트 ARM
- IBM POWER 9 (little endian)
- IBM Z 아키텍처, z13 제외
- SAP HANA가 있는 시스템에서 RHEL 8.6에서 RHEL 9.0 및 RHEL 8.8로 RHEL 9.2로
자세한 내용은 Red Hat Enterprise Linux의 지원되는 인플레이스 업그레이드 경로를 참조하십시오.
인플레이스 업그레이드를 수행하는 방법은 RHEL 8에서 RHEL 9로 업그레이드 를 참조하십시오.
SAP HANA로 RHEL 9.2로 업그레이드하는 경우 업그레이드하기 전에 시스템이 SAP에 대해 인증되었는지 확인하십시오. SAP 환경에서 시스템에서 인플레이스 업그레이드를 수행하는 방법은 RHEL 8에서 RHEL 9로 SAP 환경을 인플레이스 업그레이드하는 방법을 참조하십시오.
주요 개선 사항은 다음과 같습니다.
-
XFS 파일 시스템이
ftype=0
으로 포맷된 시스템에서 디스크 공간의 요구 사항이 크게 감소되었습니다. -
업그레이드 목적으로 업그레이드 프로세스 중에 생성된 디스크 이미지에는 이제 동적 크기가 있습니다.
LEAPP_OVL_SIZE
환경 변수는 더 이상 필요하지 않습니다. - 기존 디스크 파티션에 필요한 여유 공간 계산 문제가 수정되었습니다. 이제 시스템을 재부팅하기 전에 누락된 여유 디스크 공간이 올바르게 감지되고 보고서는 업그레이드 RPM 트랜잭션을 진행하기에 충분한 여유 공간이 없는 파일 시스템을 올바르게 표시합니다.
- 이제 사용자 정의 leapp 행위자를 사용하여 인플레이스 업그레이드 프로세스 중에 타사 드라이버를 관리할 수 있습니다.
- 이제 사전 업그레이드 및 업그레이드 보고서의 개요가 터미널에 출력됩니다.
- Red Hat OpenStack Platform에서 RHEL Real Time 및 RHEL Real Time for Network Functions Virtualization(NFV) 업그레이드가 지원됩니다.
RHEL 7에서 RHEL 9로 인플레이스 업그레이드
RHEL 7에서 RHEL 9로 직접 인플레이스 업그레이드를 수행할 수 없습니다. 그러나 RHEL 7에서 RHEL 8로 인플레이스 업그레이드를 수행한 다음 RHEL 9로 두 번째 인플레이스 업그레이드를 수행할 수 있습니다. 자세한 내용은 RHEL 7에서 RHEL 8로 업그레이드 를 참조하십시오.
1.3. Red Hat Customer Portal 랩
Red Hat Customer Portal 랩 은 https://access.redhat.com/labs/ 에서 제공되는 고객 포털 섹션에 있는 툴 세트입니다. Red Hat 고객 포털 랩의 애플리케이션은 성능을 개선하고, 문제를 신속하게 해결하고, 보안 문제를 식별하고, 복잡한 애플리케이션을 신속하게 배포 및 구성할 수 있도록 지원합니다. 가장 널리 사용되는 애플리케이션 중 일부는 다음과 같습니다.
- registration Assistant
- Kickstart 생성기
- Red Hat 제품 인증서
- Red Hat CVE Checker
- 커널 Oops Analyzer
- Red Hat Code Browser
- VNC 구성기
- Red Hat OpenShift Container Platform 업데이트 그래프
- Red Hat Satellite Upgrade Helper
- JVM 옵션 구성 도구
- 로드 밸런서 구성 도구
- Red Hat OpenShift Data Foundation 지원 및 상호 운용성 검사기
- Ansible Automation Platform Upgrade Assistant
- 풀 계산기당 Ceph PG(배치 그룹)
1.4. 추가 리소스
Red Hat Enterprise Linux 9의 기능 및 제한사항 은 지식 베이스 문서 Red Hat Enterprise Linux 기술 기능 및 제한 에서 확인할 수 있습니다.
Red Hat Enterprise Linux 라이프 사이클 정보는 Red Hat Enterprise Linux 라이프 사이클 문서에서 확인할 수 있습니다.
패키지 매니페스트 문서에서는 라이센스 및 애플리케이션 호환성 수준을 포함하여 RHEL 9용 패키지 목록을 제공합니다.
애플리케이션 호환성 수준은 Red Hat Enterprise Linux 9: 애플리케이션 호환성 가이드 문서에서 설명합니다.
RHEL 8과 RHEL 9의 주요 차이점은 RHEL 9 채택에 대한 고려 사항에 설명되어 있습니다.
RHEL 8 에서 RHEL 9로의 인플레이스 업그레이드를 수행하는 방법에 대한 지침은 RHEL 8 에서 RHEL 9 로의 업그레이드 문서를 통해 제공됩니다.
알려진 기술 문제를 사전에 확인, 검사 및 해결할 수 있는 Red Hat Insights 서비스는 모든 RHEL 서브스크립션을 통해 사용할 수 있습니다. Red Hat Insights 클라이언트를 설치하고 시스템을 서비스에 등록하는 방법에 대한 자세한 내용은 Red Hat Insights 가져오기 시작 페이지를 참조하십시오.
공개 릴리스 노트에는 원래 추적 티켓에 액세스할 수 있는 링크가 포함되어 있지만 프라이빗 릴리스 노트는 볼 수 없으므로 링크가 포함되지 않습니다.[1]
2장. 아키텍처
Red Hat Enterprise Linux 9.3은 커널 버전 5.14.0-362.8.1과 함께 배포됩니다. 이 버전은 최소 필수 버전에서 다음 아키텍처에 대한 지원을 제공합니다.
- AMD 및 Intel 64비트 아키텍처(x86-64-v2)
- 64비트 ARM 아키텍처(ARMv8.0-A)
- IBM Power Systems, Little Endian (POWER9)
- 64비트 IBM Z(z14)
각 아키텍처에 적합한 서브스크립션을 구매해야 합니다. 자세한 내용은 추가 아키텍처인 Red Hat Enterprise Linux 시작하기를 참조하십시오.
3장. RHEL 9의 콘텐츠 배포
3.1. 설치
Red Hat Enterprise Linux 9는 ISO 이미지를 사용하여 설치됩니다. AMD64, Intel 64비트, 64비트 ARM, IBM Power Systems, IBM Z 아키텍처에서는 두 가지 유형의 ISO 이미지를 사용할 수 있습니다.
설치 ISO: BaseOS 및 AppStream 리포지토리가 포함된 전체 설치 이미지이며 추가 리포지토리 없이 설치를 완료할 수 있습니다. 제품 다운로드 페이지에서
설치 ISO
를바이너리 DVD
라고 합니다.참고설치 ISO 이미지는 여러 GB 크기이므로 광 미디어 형식에 적합하지 않을 수 있습니다. 설치 ISO 이미지를 사용하여 부팅 가능한 설치 미디어를 생성할 때 USB 키 또는 USB 하드 드라이브를 사용하는 것이 좋습니다. 이미지 빌더 툴을 사용하여 사용자 지정 RHEL 이미지를 생성할 수도 있습니다. 이미지 빌더에 대한 자세한 내용은 사용자 지정 RHEL 시스템 이미지 구성 문서를 참조하십시오.
- 부트 ISO: 설치 프로그램으로 부팅하는 데 사용하는 최소 부트 ISO 이미지입니다. 리포지토리는 설치 ISO 이미지의 일부입니다. 설치 중에 Red Hat CDN 또는 Satellite의 최신 BaseOS 및 AppStream 콘텐츠를 사용하기 위해 Red Hat CDN 또는 Satellite에 등록할 수도 있습니다.
ISO 이미지 다운로드, 설치 미디어 생성 및 RHEL 설치 완료에 대한 지침은 표준 RHEL 9 설치 문서를 참조하십시오. 자동화된 Kickstart 설치 및 기타 고급 주제는 고급 RHEL 9 설치 문서를 참조하십시오.
3.2. 리포지토리
Red Hat Enterprise Linux 9는 다음 두 가지 주요 리포지토리를 통해 배포됩니다.
- BaseOS
- AppStream
두 리포지토리 모두 기본 RHEL 설치에 필요하며 모든 RHEL 서브스크립션을 통해 사용할 수 있습니다.
BaseOS 리포지토리의 콘텐츠는 모든 설치의 기반을 제공하는 기본 운영 체제 기능의 코어 세트를 제공하기 위한 것입니다. 이 콘텐츠는 RPM 형식으로 사용 가능하며 이전 RHEL 릴리스와 비슷한 지원 조건이 적용됩니다. 자세한 내용은 적용 범위 세부 정보 문서를 참조하십시오.
AppStream 리포지토리의 콘텐츠에는 다양한 워크로드 및 사용 사례를 지원하는 추가 사용자 공간 애플리케이션, 런타임 언어 및 데이터베이스가 포함되어 있습니다.
또한 CodeReady Linux Builder 리포지토리는 모든 RHEL 서브스크립션을 통해 사용할 수 있습니다. 이는 개발자가 사용할 수 있는 추가 패키지를 제공합니다. CodeReady Linux Builder 리포지토리에 포함된 패키지는 지원되지 않습니다.
RHEL 9 리포지토리 및 제공하는 패키지에 대한 자세한 내용은 패키지 매니페스트 를 참조하십시오.
3.3. Application Streams
여러 버전의 사용자 공간 구성 요소는 Application Streams로 제공되며 핵심 운영 체제 패키지보다 더 자주 업데이트됩니다. 따라서 플랫폼 또는 특정 배포의 기본 안정성에 영향을 주지 않고 RHEL을 사용자 지정할 수 있는 유연성이 향상됩니다.
Application Streams는 친숙한 RPM 형식으로, 모듈이라는 RPM 형식의 확장, Software Collections 또는 Flatpaks로 사용할 수 있습니다.
각 Application Stream 구성 요소에는 RHEL 9과 동일하거나 더 짧은 라이프 사이클이 있습니다. RHEL 라이프 사이클 정보는 Red Hat Enterprise Linux 라이프 사이클 을 참조하십시오.
RHEL 9는 기존 dnf install
명령을 사용하여 RPM 패키지로 설치할 수 있는 초기 Application Stream 버전을 제공하여 Application Streams 환경을 향상시킵니다.
RPM 형식의 특정 초기 Application Streams는 Red Hat Enterprise Linux 9보다 라이프 사이클이 짧습니다.
일부 추가 Application Stream 버전은 향후 마이너 RHEL 9 릴리스에서 라이프 사이클이 짧은 모듈로 배포됩니다. 모듈은 논리 단위, 애플리케이션, 언어 스택, 데이터베이스 또는 툴 세트를 나타내는 패키지 컬렉션입니다. 이러한 패키지는 함께 빌드, 테스트, 릴리스됩니다.
항상 설치하려는 애플리케이션 스트림 버전을 결정하고 Red Hat Enterprise Linux Application Stream 라이프사이클을 먼저 검토하십시오.
대체 컴파일러 및 컨테이너 툴과 같은 빠른 업데이트가 필요한 콘텐츠는 대체 버전을 병렬로 제공하지 않는 롤링 스트림에서 사용할 수 있습니다. 롤링 스트림은 RPM 또는 모듈로 패키징될 수 있습니다.
RHEL 9에서 사용할 수 있는 Application Streams 및 애플리케이션 호환성 수준에 대한 자세한 내용은 패키지 매니페스트 를 참조하십시오. 애플리케이션 호환성 수준은 Red Hat Enterprise Linux 9: 애플리케이션 호환성 가이드 문서에서 설명합니다.
3.4. YUM/DNF를 사용한 패키지 관리
Red Hat Enterprise Linux 9에서 소프트웨어 설치는 DNF 에 의해 보장됩니다. Red Hat은 이전 주요 RHEL 버전과의 일관성을 위해 yum
용어 사용을 계속 지원합니다. yum
대신 dnf
를 입력하면 둘 다 호환성을 위한 별칭이므로 명령이 예상대로 작동합니다.
RHEL 8 및 RHEL 9는 DNF 를 기반으로 하지만 RHEL 7에서 사용되는 YUM 과 호환됩니다.
자세한 내용은 DNF 툴을 사용하여 소프트웨어 관리를 참조하십시오.
4장. 새로운 기능
이 부분에서는 Red Hat Enterprise Linux 9.3에 도입된 새로운 기능 및 주요 개선 사항에 대해 설명합니다.
4.1. 설치 프로그램 및 이미지 생성
AWS EC2 이미지의 레거시 부팅 및 UEFI 부팅 지원
이전에는 RHEL 이미지 빌더에서 레거시 부팅 유형만 지원하는 EC2 AMD 또는 Intel 64비트 아키텍처 AMI 이미지를 생성했습니다. 결과적으로 보안 부팅과 같이 UEFI 부팅이 필요한 특정 AWS 기능을 활용할 수 없었습니다. 이번 개선된 기능을 통해 AWS EC2 AMD 또는 Intel 64비트 아키텍처 AMI 이미지가 확장되어 기존 BIOS 부팅 외에도 UEFI 부팅을 지원합니다. 결과적으로 UEFI로 이미지를 부팅해야하는 AWS 기능을 활용할 수 있습니다.
Jira:RHELDOCS-16339[1]
Kickstart 파일 또는 커널 드라이버를 로드하는 대기 시간을 추가하기 위해 새로운 부팅 옵션 inst.wait_for_disks=
부팅 프로세스 중 OEMDRV
레이블이 있는 장치에서 Kickstart 파일 또는 커널 드라이버를 로드하는 데 몇 초가 걸릴 수 있습니다. 대기 시간을 조정하려면 이제 새 부팅 옵션 inst.wait_for_disks=
를 사용할 수 있습니다. 이 옵션을 사용하면 설치 전 대기 시간(초)을 지정할 수 있습니다. 기본 시간은 5
초로 설정되지만 0
초를 사용하여 지연을 최소화할 수 있습니다. 이 옵션에 대한 자세한 내용은 스토리지 부팅 옵션을 참조하십시오.
GUI 및 TUI를 사용하여 ARM에 RHEL을 설치하는 동안 필요한 커널을 선택하는 기능
이전에는 Kickstart 방법을 사용하여 커널-64k 페이지 크기를 사용하는 ARM에 RHEL을 설치할 수 있었습니다. 이번 업데이트를 통해 GUI 또는 TUI를 사용하여 ARM에 RHEL을 설치하고 필요한 커널 버전을 선택할 수 있습니다. 필요한 커널을 선택하는 옵션은 커널 옵션의 소프트웨어 선택 화면에서 사용할 수 있습니다.
Bugzilla:2164819[1]
VMware VSphere (OVA) 지원
이번 업데이트에서는 RHEL 이미지 빌더를 사용하여 VMware VSphere OVA 파일을 빌드할 수 있는 지원이 추가되었습니다. OVA(Open Virtual VolumeSnapshot) 파일은 VMware VSphere 가상화 애플리케이션에서 사용하는 가상 어플라이언스입니다. OVA 파일에는 OVF 설명자 파일, 하나 이상의 VMI(가상 머신 디스크 이미지 파일), 선택적 매니페스트(MF) 및 인증서 파일과 같은 가상 머신을 설명하는 데 사용되는 파일이 포함되어 있습니다. VMware VSphere(.ova)를 사용하면 vSphere GUI 클라이언트를 사용하여 VMware vSphere에 이미지를 더 쉽게 배포할 수 있습니다. 이미지를 부팅하기 전에 결과 VM을 추가로 사용자 지정할 수 있습니다.
Jira:RHELDOCS-16877[1]
DNS 처리를 제어하는 새로운 네트워크
Kickstart 옵션
이제 다음과 같은 새 옵션과 함께 네트워크
Kickstart 명령을 사용하여 DNS 처리를 제어할 수 있습니다. 이러한 새 옵션을 --device
옵션과 함께 사용합니다.
--ipv4-dns-search
및--ipv6-dns-search
옵션을 사용하면 DNS 검색 도메인을 수동으로 설정할 수 있습니다. 이러한 옵션은 NetworkManager 속성을 미러링합니다. 예를 들면 다음과 같습니다.network --device ens3 --ipv4-dns-search domain1.example.com,domain2.example.com
-
--ipv4-ignore-auto-dns
및--ipv6-ignore-auto-dns
옵션을 사용하면 DHCP의 DNS 설정을 무시할 수 있습니다. 인수가 필요하지 않습니다.
Bugzilla:2065754[1]
최소 RHEL 설치에서는 s390utils-core
패키지만 설치합니다.
RHEL 8.4 이상에서 s390utils-base
패키지는 s390utils-core
패키지와 보조 s390utils-base
패키지로 나뉩니다. 결과적으로 RHEL 설치를 최소 환경
설정으로 설정하면 보조 s390utils-base
패키지가 아닌 필요한 s390utils-core
패키지만 설치됩니다. 최소 RHEL 설치와 함께 s390utils-base
패키지를 사용하려면 RHEL 설치를 완료한 후 수동으로 패키지를 설치하거나 Kickstart 파일을 사용하여 s390utils-base
를 명시적으로 설치해야 합니다.
Bugzilla:1932480[1]
4.2. 보안
버전 7.3.0에 따라 키릴 수 있음
Keylime 패키지가 업스트림 버전 7.3.0으로 업데이트되었습니다. 이 버전은 다양한 개선 사항 및 버그 수정을 제공합니다. 특히 allow 및 exclude 목록이 Keylime 런타임 정책에 결합됩니다. convert_runtime_policy.py
스크립트를 사용하여 두 목록을 결합할 수 있습니다.
또한 이 업데이트는 보통 영향을 미치는 두 가지 취약점 ( CVE-2023-38200 및 CVE-2023-38201 )을 수정합니다.
Jira:RHEL-476[1]
Keylime 포트의 SELinux 정책에서 더 엄격한 규칙이 있습니다.
Keylime에서 사용하는 포트는 Keylime SELinux 정책에서 keylime_port_t
로 레이블이 지정됩니다. 이제 이 정책이 이 레이블이 있는 포트에 대해 TCP 연결을 허용합니다. 이전 Keylime SELinux 정책에서 모든 정의되지 않은 포트에 연결할 수 있고 Keylime에서 사용하는 대부분의 포트도 정의되지 않은 그룹에 있었기 때문입니다. 결과적으로 이 업데이트로 Keylime SELinux 정책의 세분화가 증가하고 포트 보안은 보다 엄격한 대상 지정이 될 수 있습니다.
Jira:RHEL-595[1]
감사에서 FANOTIFY
레코드 필드 지원
이번 감사
패키지를 업데이트하면 FANOTIFY
감사 레코드 필드를 지원합니다. 감사 하위 시스템은 AUDIT_FANOTIFY
레코드에 추가 정보를 기록합니다.
-
FANOTIFY
이벤트 유형을 지정하는 FANOTIFY -
추가 컨텍스트 정보를 지정하는
fan_info
-
sub_trust
및obj_trust
는 주체 및 이벤트와 관련된 개체의 신뢰 수준을 나타냅니다.
따라서 특정 경우 감사 시스템이 액세스를 거부한 이유를 더 잘 이해할 수 있습니다. 이를 통해 fapolicyd
프레임워크와 같은 툴에 대한 정책을 작성하는 데 도움이 될 수 있습니다.
Jira:RHELPLAN-161087[1]
fapolicyd
는 문제 해결을 위한 규칙 번호를 제공합니다.
이번 개선된 기능을 통해 새로운 커널 및 감사 구성 요소를 통해 fapolicyd
서비스에서 fanotify
API로 거부를 유발하는 규칙 수를 보낼 수 있습니다. 결과적으로 fapolicyd
와 관련된 문제를 보다 정확하게 해결할 수 있습니다.
암호화 정책에서
는 FIPS 모드에서 TLS 1.2 연결에 대한 NO-ENFORCE-
ECDSA 하위 정책을 제공합니다.
이제 시스템 전체 암호화 정책에 NO-ENFORCE-ECDSA 하위
정책이 포함됩니다. 새 하위 정책을 적용한 후 시스템은 더 이상 FIPS 모드에서 협상된 모든 TLS 1.2 연결에 대해 Extended Master Secret(ECDSA) 확장(RFC 7627)이 필요하지 않습니다. 이를 통해 시스템은 ECDSA 또는 TLS 1.3을 지원하지 않고 레거시 시스템에 연결할 수 있습니다. 이는 FIPS-140-3 표준의 요구 사항을 위반합니다. update-crypto-policies --set FIPS:NO-ENFORCE-
Cryostat 명령을 입력하여 하위 정책을 적용할 수 있습니다.
Bugzilla:2216257[1]
GnuTLS에는 FIPS 모드에서 TLS 1.2가 있는 ECDSA가 필요합니다.
FIPS-140-3 표준을 준수하기 위해 GnuTLS 서버 및 클라이언트에는 FIPS 모드에서 협상된 모든 TLS 1.2 연결에 대해 Extended Master Secret(ECDSA) 확장(RFC 7627)이 필요합니다. 시나리오에 ECDSA를 지원하지 않는 이전 서버 및 클라이언트와의 호환성을 유지해야 하며 TLS 1.3을 사용할 수 없는 경우 시스템 전체 암호화 하위 정책을 적용할 수 있습니다.
# update-crypto-policies --set FIPS:NO-ENFORCE-EMS
ECDSA 없이 TLS 1.2 연결을 허용하면 시스템이 더 이상 FIPS-140-3 요구 사항을 충족하지 않습니다.
NSS가 FIPS 모드에서 ECDSA 적용
NSS(Network Security Services) 라이브러리에는 FIPS 140-3 표준에서 요구하는 모든 TLS 1.2 연결에 대해 확장 마스터 보안(ECDSA) 확장(RFC 7627)이 필요한 TLS-REQUIRE-
ECDSA 정책이 포함됩니다. 시스템 전체 암호화 정책이 FIPS
로 설정된 경우 NSS는 새 정책을 사용합니다.
시나리오에 ECDSA 또는 TLS 1.3을 지원하지 않고 기존 시스템과 상호 작용해야 하는 경우 NO-ENFORCE-
ECDSA 시스템 전체 암호화 하위 정책을 적용할 수 있습니다. 이러한 변경으로 인해 FIPS-140-3 요구 사항이 위반됩니다.
OpenSSL이 FIPS 모드에서 ECDSA 비활성화 지원
/etc/pki/tls/fips_local.cnf
파일을 편집하여 FIPS 모드에서 Extended Master Secret( Cryostat 7627) 없이 TLS 1.2 연결을 허용하도록 OpenSSL 암호화 라이브러리를 구성할 수 있습니다. 선택한 텍스트 편집기에서 구성 파일에 다음 섹션을 추가합니다.
[fips_sect] tls1-prf-ems-check = 0 activate = 1
그런 다음 /etc/pki/tls/openssl.cnf
파일에서 SSL 구성 섹션을 찾습니다. 기본 SSL 구성 섹션은 crypto_policy
입니다. SSL 구성 섹션 끝에 다음 행을 추가합니다.
Options=RHNoEnforceEMSinFIPS
이전 구성 변경 사항을 통해 FIPS 모드의 시스템은 ECDSA 또는 TLS 1.3을 지원하지 않고 레거시 시스템에 연결할 수 있습니다.
update-crypto-policies --set FIPS:NO-ENFORCE-ECDSA 명령을 입력하여 FIPS
모드에서 TLS 1.2에 대한 강제 적용을 중지할 수 있습니다. 두 경우 모두 이러한 구성 변경은 FIPS-140-3 표준의 요구 사항을 위반합니다.
Bugzilla:2216256[1]
OpenSSH는 SHA-2를 추가로 적용합니다.
암호화 목적으로 덜 안전한 SHA-1 메시지 다이제스트에서 추가로 마이그레이션하려는 노력의 일환으로 OpenSSH에서 다음과 같은 변경이 이루어졌습니다.
-
시스템에 SHA-1을 사용할 수 있는지 여부를
sshd
시작 시 검사를 추가했습니다. 사용할 수 없는 경우 OpenSSH는 작업에 SHA-1을 사용하지 않습니다. 이렇게 하면 DSS 키가 있을 때 로드가 제거되고 사용 가능한 경우 광고rsa-sha2
조합도 적용됩니다. - SSH 개인 키 변환에서 OpenSSH는 RSA 키를 테스트하는 데 명시적으로 SHA-2를 사용합니다.
-
서버 측에서 SHA-1 서명을 사용할 수 없는 경우
sshd
는 SHA-2를 사용하여 호스트 키 증명을 확인합니다. 이는 RHEL 8 및 이전 버전의 클라이언트와 호환되지 않을 수 있습니다. - 클라이언트 측에서 SHA-1 알고리즘을 사용할 수 없는 경우 OpenSSH는 SHA-2를 사용합니다.
- 클라이언트 측에서 OpenSSH는 SHA-1이 키 증명 요청에 사용되거나 해시 알고리즘이 지정되지 않은 경우(기본값) SHA-2 기반 키 증명을 허용합니다. 이는 RSA 인증서에 대한 이미 존재하는 예외와 일치하며 지원되는 경우 최신 알고리즘을 사용하여 연결할 수 있습니다.
OpenSSL에는 Bleichenbacher와 같은 공격에 대한 보호 기능이 포함되어 있습니다.
이번 OpenSSL TLS 툴킷 릴리스에서는 RSA PKCS #1 v1.5 암호 해독 프로세스의 Bleichenbacher와 같은 공격에 대한 API 수준 보호가 도입되었습니다. 이제 RSA 암호 해독은 PKCS #1 v1.5 암호 해독 중에 패딩을 확인할 때 오류를 감지하면 오류 대신 임의로 생성된 결정적 메시지를 반환합니다. 이 변경 사항은 CVE-2020-25659 및 CVE-2020-25657 과 같은 취약점에 대한 일반적인 보호 기능을 제공합니다.
EVP_PKEY_CTX_ctrl_str(ctx, "rsa_pkcs1_implicit_rejection"을 호출하여 이 보호를 비활성화할 수 있습니다. "0")
는 RSA 암호 해독 컨텍스트에서 작동하지만 시스템을 더 취약하게 만듭니다.
OpenSSL이 그룹
옵션을 통해 구성 가능한 Brainpool 곡선 지원
이 OpenSSL TLS 툴킷 업데이트에서는 ECC(Elliptic Curve Cryptography)의 Brainpool 곡선을 지원합니다. 또한 그룹
구성 옵션을 통해 시스템 전체 암호화 정책의 곡선을 제어할 수 있습니다.
OpenSSL ECC에서 다음 Brainpool 곡선이 활성화됩니다.
-
brainpoolP256r1
-
brainpoolP256t1
-
brainpoolP320r1
-
brainpoolP320t1
-
brainpoolP384r1
-
brainpoolP384t1
-
brainpoolP512r1
-
brainpoolP512t1
암호화 정책에서
OpenSSL ECC Brainpool 곡선 지원
이 시스템 전체 암호화 정책을 업데이트하면 그룹
옵션을 사용하여 OpenSSL에서 다음의 Brainpool ECC(Ellliptic Curve Cryptography) 곡선을 제어할 수 있습니다.
-
BRAINPOOL-P256R1
-
BRAINPOOL-P384R1
-
BRAINPOOL-P512R1
.
예를 들어 다음 행이 포함된 하위 정책을 생성하여 OpenSSL에서 지원되는 모든 Brainpool elliptic 곡선을 활성화할 수 있습니다.
group = BRAINPOOL-*+
Bugzilla:2193324[1]
암호화 정책에서
는 기본적으로 OpenSSL과 동일한 그룹 순서를 사용합니다.
이번 릴리스에서는 시스템 전체 암호화 정책(암호 정책
)이 OpenSSL 그룹 구성 옵션의 그룹
순서를 제어합니다. OpenSSL에서 성능을 유지하기 위해 암호화 정책은
OpenSSL 기본 설정 순서와 일치하는 기본 그룹 순서를 사용합니다. 결과적으로 RHEL 암호화 백엔드는 이제 GnuTLS와 같은 그룹 순서를 제어하기 위한 암호화 정책을
지원하는 OpenSSL과 동일한 순서를 사용합니다.
Jira:RHEL-591[1]
crypto-policies
permitted_enctypes
에서 더 이상 FIPS 모드에서 복제를 중단하지 않음
이번 업데이트 이전에는 RHEL 8에서 실행되는 IdM 서버에서 FIPS 모드에서 RHEL 9를 실행하는 IdM 복제본에 AES-256-HMAC-SHA-1 암호화 서비스 티켓을 전송했습니다. 결과적으로 기본 permitted_enctypes
krb5
구성으로 FIPS 모드에서 RHEL 8 IdM 서버와 RHEL 9 IdM 복제본 간의 복제가 중단되었습니다.
이번 업데이트에서는 시스템 전체 암호화 정책이 allowed_enctypes
krb5
구성 옵션 값을 다시 정렬하여 기본적으로 상호 운용 가능한 암호화 유형의 우선 순위를 지정할 수 있습니다. 결과적으로 permitted_enctypes
구성에서 FIPS 모드에서 RHEL 8 IdM 서버와 RHEL 9 IdM 복제본 간의 복제가 중단되지 않습니다.
Kerberos를 사용하는 경우 /etc/crypto-policies/back-ends/krb5.config
파일에서 permitted_enctypes
값의 순서를 확인합니다. 시나리오에 다른 순서가 필요한 경우 사용자 지정 암호화 하위 정책을 적용합니다.
pcsc-lite-ccid
를 1.5.2에 기반
pcsc-lite-ccid
패키지가 버전 1.5.2로 업데이트되었습니다. 이 버전은 다양한 버그 수정 및 개선 사항을 제공합니다.
- 새로운 리더 지원
- Alcor Micro AU9560
0.23에
기반 OpenSC
opensc
패키지가 0.23 버전으로 업데이트되었습니다. 이 버전은 다양한 버그 수정 및 개선 사항을 제공합니다.
- 대칭 키를 사용하여 암호화 및 암호 해독 지원 추가
- 512바이트를 초과하는 데이터 서명 지원 추가
- 기본적으로 이전 카드 드라이버 지원 비활성화
- 이전 드라이버 MioCOS 및 JCOP에 대한 제거된 지원
Jira:RHEL-280[1]
setools
가 4.4.3으로 업데이트됨
setools
패키지가 4.4.3 버전으로 업데이트되었습니다. 이 버전은 다양한 버그 수정 및 개선 사항을 제공합니다.
- Cython 3.0.0으로 수정된 컴파일
- 도움말 페이지 개선
-
sediff
,sesearch
,apol
에서 사용되지 않는 옵션 제거 -
seinfoflow
명령에-r
옵션을 추가하여 소스 유형으로 흐름 분석을 가져왔습니다. - 권한이 없는 규칙은 잘못된 정책으로 자동 거부됩니다.
Bugzilla:2231801, Bugzilla:2184140
SELinux 정책에 제한된 추가 서비스
이번 업데이트에서는 다음 systemd
서비스를 제한하는 SELinux 정책에 추가 규칙이 추가되었습니다.
-
QAT
-
systemd-pstore
-
boothd
-
fdo-manufacturing-server
-
fdo-rendezvous-server
-
fdo-client-linuxapp
-
fdo-owner-onboarding-server
결과적으로 이러한 서비스는 더 이상 unconfined_service_t
SELinux 레이블로 실행되지 않으며 SELinux 강제 모드에서 성공적으로 실행됩니다.
Bugzilla:2080443[1], Bugzilla:2026795, Bugzilla:2181565, Bugzilla:2128833
1.3.8에 기반 OpenSCAP
OpenSCAP 패키지는 업스트림 버전 1.3.8에 따라 변경되었습니다. 이 버전은 다양한 버그 수정 및 개선 사항을 제공합니다.
-
일부
systemd
장치를 무시하지 않도록 수정된systemd
프로브 -
shadow
OVAL 프로브에 오프라인 기능 추가 -
sysctl
OVAL 프로브에 오프라인 기능 추가 -
네트워크 파일 시스템 목록에
auristorfs
추가 -
autotailor
유틸리티에서 생성한 맞춤형 파일 문제에 대한 해결 방법이 생성되었습니다.
버전 0.1.69에 기반 SCAP 보안 가이드
SCAP Security Guide (SSG) 패키지는 업스트림 버전 0.1.69로 변경되었습니다. 이 버전은 다양한 개선 사항 및 버그 수정을 제공합니다. 특히 2022년 10월 스페인 국립 암호화 센터 (National Cryptologic Center)에서 발행한 CCN-STIC-610A22 가이드와 일치하는 RHEL 9의 새로운 SCAP 프로필이 도입되었습니다.
프로파일 이름 | 프로파일 ID | 정책 버전 |
---|---|---|
CCN Red Hat Enterprise Linux 9 - 고급 |
| 2022-10 |
CCN Red Hat Enterprise Linux 9 - Basic |
| 2022-10 |
CCN Red Hat Enterprise Linux 9 - Intermediate |
| 2022-10 |
ANSSI-BP-028 보안 프로필이 버전 2.0으로 업데이트됨
다음 French National Agency for the Security of Information Systems (ANSSI) BP-028이 버전 2.0과 일치하도록 업데이트되었습니다.
- ANSSI-BP-028 최소 수준
- ANSSI-BP-028 중간 수준
- ANSSI-BP-028 향상된 수준
- ANSSI-BP-028 High Level
python3-greenlet-devel
은 CRB에서 사용 가능
python3-greenlet-devel
패키지는 이제 명시적으로 활성화해야 하는 CodeReady Linux Builder(CRB) 리포지토리에서 사용할 수 있습니다. 자세한 내용은 CodeReady Linux Builder 지식 베이스에서 콘텐츠를 활성화하고 사용하는 방법을 참조하십시오. CRB 리포지토리에 포함된 패키지는 지원되지 않습니다.
pam_wheel.so
모듈에서 사용하는 그룹을 확인하는 SSG 규칙이 간소화됨
CIS 벤치마크에서는 sudo
명령을 대신해서 su
명령을 제한해야 합니다. SCAP Security Guide(SSG)는 su
명령을 특정 그룹으로 제한하는 pam_wheel.so
모듈로 이 요구 사항을 충족합니다. 이번 업데이트에서는 이 그룹이 존재하고 멤버가 없는지 확인하는 규칙이 향상됩니다. 결과적으로 규칙이 더 효율적이며 평가 보고서의 해석을 단순화합니다.
4.3. RHEL for Edge
새로운 FIDO 장치 온보딩 서버 컨테이너 이미지를 사용할 수 있습니다.
다음 FIDO 장치 온보딩 서버 컨테이너 이미지는 이제 Red Hat Container Catalog 에서 사용할 수 있습니다.
- rhel9/fdo-manufacturing-server container image
- rhel9/fdo-owner-onboarding-server container image
- rhel9/fdo-rendezvous-server container image
- rhel9/fdo-serviceinfo-api-server container image
Jira:RHELPLAN-163133[1]
최소 이미지 유형에서
64비트 ARM 아키텍처 지원
이번 개선된 기능을 통해 64비트 ARM 아키텍처 및 AMD 및 Intel 64비트 아키텍처를 지원하는 최소
이미지 유형을 생성할 수 있습니다. 최소-raw
이미지는 사전 패키지되고 부팅 가능하며 최소 RPM 이미지는 xz
형식으로 압축됩니다. 이미지를 부팅하려면 압축을 풀고 SD 카드와 같은 부팅 가능한 모든 장치에 복사해야 합니다. 이미지의 압축을 풀려면 다음 명령을 실행합니다.
$ xz -d <_uuid-minimal-raw.img_.xz>
Jira:RHELPLAN-163665[1]
Commit ID가 composer-cli
CLI의 --parent
인수 값으로 지원됨
이제 composer-cli
명령줄의 --parent
인수 값으로 이미지 커밋 ID를 사용할 수 있습니다. 이미지 커밋 ID를 가져오려면 RHEL for Edge 커밋 이미지를 다운로드하여 추출합니다. 추출된 .tar
파일에서 ref
이름과 커밋 ID를 찾을 수 있습니다.
Jira:RHELDOCS-16386[1]
RHEL for Edge .ami
이미지 빌드 지원
이번 개선된 기능을 통해 온프레미스 RHEL 이미지 빌더를 사용하여 RHEL for Edge용 .ami
이미지를 빌드할 수 있습니다. 초기 부팅 과정에서 Ignition으로 블루프린트를 사용자 지정하여 인증 정보를 이미지에 삽입할 수 있습니다. .ami
이미지를 AWS에 업로드하고 AWS에서 EC2 인스턴스를 부팅할 수 있습니다.
Jira:RHELDOCS-16708[1]
RHEL for Edge용 .vmdk
이미지 빌드 지원
이번 개선된 기능을 통해 온프레미스 RHEL 이미지 빌더를 사용하여 RHEL for Edge용 .vmdk
이미지를 빌드할 수 있습니다. Ignition으로 블루프린트를 사용자 지정하여 초기 부팅 중에 이미지에 인증 정보를 삽입할 수 있습니다. vSphere에 이미지를 로드하고 VM vSphere에서 이미지를 부팅할 수 있습니다. 이미지는 ESXi 7.0 U2, ESXi 8.0 이상과 호환됩니다. VM은 버전 19 및 20과 호환됩니다.
Jira:RHELDOCS-16709[1]
이제 암호를 설정하지 않고 초기 사용자로 에지 시스템에 로그인할 수 있습니다.
이전에는 useradd
명령으로 설정되지 않은 암호를 요청했기 때문에 FDO 온보딩 프로세스 중에 생성된 초기 사용자로 로그인할 수 없었습니다. 이번 개선된 기능을 통해 이제 암호가 선택 사항으로 설정되고 useradd
명령을 사용하여 암호를 설정하지 않은 경우에도 로그인할 수 있습니다. 암호를 입력하지 않고 SSH 키로 로그인할 수 있으며 실패할 경우 암호를 입력하라는 메시지가 표시됩니다.
Jira:RHELDOCS-17101[1]
4.4. 소프트웨어 관리
업그레이드 후 자동 재부팅
을 위한 새로운 DNF 자동 재부팅 옵션
이번 개선된 기능을 통해 DNF 자동 재부팅
옵션을 사용하여 자동으로 재부팅되도록 시스템을 설정하여 업그레이드 후 변경 사항을 적용할 수 있습니다.
reboot
옵션은 다음 설정을 지원합니다.
-
시스템을 재부팅
하지
마십시오. 이는 현재 동작입니다. -
when-changed
는 업그레이드 후 재부팅을 트리거합니다. -
필요한
경우 변경 사항을 적용하기 위해 재부팅이 필요한 경우에만 재부팅을 트리거합니다(예: systemd 또는 커널 업그레이드 시).
reboot_command
옵션을 사용하여 재부팅에 사용되는 명령을 사용자 지정할 수 있습니다. 기본 reboot 명령은 shutdown -r
입니다.
새로운 --poweroff
옵션을 사용하면 업데이트를 설치한 후 시스템을 종료할 수 있습니다.
이번 개선된 기능을 통해 dnf system-upgrade
플러그인의 reboot
명령에 새로운 --poweroff
옵션이 추가되었습니다. 이 옵션을 사용하여 재부팅하지 않고 업데이트를 설치한 후 시스템을 종료할 수 있습니다.
DNF API에서 새로운 dnf
휴가 및 show-leaves
플러그인을 사용할 수 있습니다.
이번 개선된 기능을 통해 다음의 새로운 DNF 플러그인을 사용할 수 있으며, 시스템에 설치된 다른 설치된 패키지의 종속 항목으로 필요하지 않은 패키지를 나열할 수 있습니다.
-
dnf는
모든 패키지를 나열합니다. -
show-leaves
는 새로 설치된 패키지와 패키지 목록을 트랜잭션 후 다른 설치된 다른 패키지의 종속 항목으로 표시합니다.
4.5. 쉘 및 명령행 툴
백업 복원을 위해 NetBackup 서비스가 활성화됨
NetBackup (NBU) 백업 방법을 사용할 때 ReaR에는 이제 복구 이미지에 NetBackup 서비스 버전 10.1.1의 단위 파일이 포함되어 복구 시스템이 부팅될 때 시작됩니다. 결과적으로 복구 프로세스 중에 NBU 백업 방법을 사용하여 시스템 백업을 복원하고 복원을 성공적으로 완료할 수 있습니다.
Opencryptoki
는 3.21.0에 기반
opencryptoki
패키지는 여러 개선 사항 및 버그 수정을 제공하는 3.21.0 버전으로 변경되었습니다. 특히 opencryptoki
는 다음 기능을 지원합니다.
- HSM(Performance hardware security module) 마스터 키 변경
-
선택한 키를 보호 키로 변환하는
protected-key
옵션 - DH, DSA 및 일반 비밀 키 유형과 같은 추가 키 유형
- EP11 호스트 라이브러리 버전 4
- AES-XTS 키 유형
- IBM 특정 Kyber 키 유형 및 메커니즘
- 추가 IBM 특정 Dilithium 키 라운드 2 및 3 변형
또한 pkcsslotd
슬롯 관리자는 더 이상 root로 실행되지 않으며 opencryptoki
는 추가 강화를 제공합니다. 이번 업데이트를 통해 다음과 같은 새 명령 세트를 사용할 수도 있습니다.
p11sak set-key-attr
- 키를 수정하려면 다음을 수행합니다.
p11sak copy-key
- 키를 복사하려면 다음을 수행합니다.
p11sak import-key
- 키를 가져오려면 다음을 수행합니다.
p11sak export-key
- 키를 내보내려면
Bugzilla:2160061[1]
업데이트된 systemd-udevd
는 InfiniBand 인터페이스에 일관된 네트워크 장치 이름을 할당합니다.
RHEL 9에 도입된 systemd
패키지의 새 버전에는 업데이트된 systemd-udevd
장치 관리자가 포함되어 있습니다. 장치 관리자는 InfiniBand 인터페이스의 기본 이름을 systemd-udevd
에서 선택한 일관된 이름으로 변경합니다.
systemd 링크 파일 프로시저를 사용하여 IPoIB 장치에 따라 InfiniBand 인터페이스 이름에 대한 사용자 지정 이름 지정 규칙을 정의할 수 있습니다.
이름 지정 체계에 대한 자세한 내용은 systemd.net-naming-scheme(7)
매뉴얼 페이지를 참조하십시오.
4.6. 인프라 서비스
vsftpd에서 SRV 조회 지원
이번 개선된 기능을 통해 SRV(DNS 서비스 레코드 확인)를 사용하여 메일 클라이언트를 자동으로 구성하고 서버의 부하를 분산할 수 있습니다. 또한 ReplicaSet 구성에서 다음 SRV 관련 옵션을 사용하여 임시 DNS 문제 또는 잘못 구성된 SRV 레코드로 인한 메일 전달 중단을 방지할 수 있습니다.
use_srv_lookup
- DNS SRV 레코드를 사용하여 지정된 서비스에 대한 검색을 활성화할 수 있습니다.
allow_srv_lookup_fallback
- 계단식 접근 방식을 사용하여 서비스를 찾을 수 있습니다.
ignore_srv_lookup_error
- SRV 레코드를 사용할 수 없거나 오류가 발생하는 경우에도 서비스 검색이 작동하는지 확인할 수 있습니다.
일반 LF-to-CRLF 드라이버는 cups-filters
에서 사용할 수 있습니다.
이번 개선된 기능을 통해 이제 일반 LF-to-CRLF 드라이버를 사용하여 CR+LF 문자가 있는 파일을 수락하기 위해 LF 문자를 CR+LF 문자로 변환할 수 있습니다. 반환(CR) 및 줄 피드(LF)는 줄 끝을 표시하는 제어 문자입니다. 결과적으로 이 드라이버를 사용하면 애플리케이션에서 CR+LF 문자만 수락하는 프린터로 LF 문자 종료 파일을 보낼 수 있습니다. 일반 LF-to-CRLF 드라이버는 RHEL 7의 텍스트 전용
드라이버의 이름이 변경된 버전입니다. 새 이름은 실제 기능을 반영합니다.
4.7. 네트워킹
ARM의 RHEL은 RHEL 9.3에서 Cryostat 어댑터가 완전히 지원됨
이번 개선된 기능을 통해 이제 arm64
플랫폼용 여러 카드의 Cryostat 어댑터에 대한 액세스를 활성화할 수 있습니다.
Cryostat 연결 구성에 대한 자세한 내용은 Cryostat 연결 관리를 참조하십시오.
Bugzilla:2208365[1]
NetworkManager
에서 resolv.conf에서 no-
aaa 옵션 지원
NetworkManager
는 이제 resolv.conf 파일에서 no-
aaa DNS 옵션 추가를 지원합니다. DNS 옵션 설정에서 no-
aaa 값을 사용하면 IPv6 DNS 확인을 비활성화할 수 있습니다.
NMState
에서 동적 DNS 이름 서버와 함께 정적 DNS 검색 혼합 지원
nmstate
프레임워크는 이제 DHCP(Dynamic Host Configuration Protocol) 또는 autoconf
메커니즘에서 가져온 nmstate
가 있는 DNS(정적 도메인 이름 시스템) 검색 도메인과 동적 DNS 이름 서버를 모두 지원합니다. 이전 버전에서는 동적 구성이 nmstate
에 의해 삭제되었기 때문에 정적 DNS 검색 도메인이 동적 DNS 이름 서버와 공존할 수 없었습니다. 이로 인해 종종 네트워크 설정 및 관리에 불필요한 복잡성과 제한이 발생했습니다. 이번 개선된 기능은 DNS 구성 관리에 더 많은 유연성을 제공하는 것을 목표로 합니다. 결과적으로 nmstate
는 DNS 구성을 다음과 같이 저장하기 위해 네트워크 인터페이스를 찾습니다.
- 현재 DNS 구성이 있고 DNS에 여전히 유효한 기본 인터페이스
- 자동 인터페이스
- IP 활성화 인터페이스
이 향상된 기능에서는 DHCP에서 학습한 DNS 이름 서버가 제거되지 않습니다.
다음은 이 기능을 적용할 YAML 파일의 예입니다.
--- dns-resolver: config: search: - example.com - example.org interfaces: - name: eth1 type: ethernet state: up ipv4: enabled: true dhcp: true ipv6: enabled: true dhcp: true autoconf: true
NMState
에서 bridge.vlan-default-pvid
NetworkManager 구성 옵션 지원
이번 업데이트를 통해 nmstate
프레임워크를 사용하여 bridge.vlan-default-pvid
NetworkManager 구성 옵션을 구성할 수 있습니다. 이 옵션을 사용하면 Linux 브리지 VLAN 필터링을 사용할 때 VLAN을 지원하는 브리지 인터페이스에서 태그가 지정되지 않은 트래픽에 대해 기본 포트 VLAN ID(PVID)를 설정할 수 있습니다. 이 결과를 얻으려면 다음 YAML 구성을 사용합니다.
interfaces: - name: linux-br0 type: linux-bridge state: up bridge: options: vlan-default-pvid: 5 port: - name: eth1 stp-hairpin-mode: false stp-path-cost: 100 stp-priority: 32 vlan: mode: access tag: 100
bridge.vlan-default-pvid
의 기본값은 1입니다. VLAN 필터링이 활성화된 0으로 설정하면 태그되지 않은 트래픽이 삭제됩니다.
dbus
서비스가 다시 시작된 직후 NetworkManager
서비스가 다시 시작됩니다.
이전에는 어떤 이유로 dbus
를 다시 시작한 후 NetworkManager
가 중지되었습니다. 이 동작은 최적이 아니며 연결이 끊어졌습니다. 따라서 이번 개선된 기능에서는 NetworkManager
가 보다 강력하게 업데이트되고 dbus
재시작 시 자동으로 다시 시작되도록 합니다.
nm-cloud-setup
유틸리티에서 IMDSv2 구성 지원
사용자는 nm-cloud-setup
유틸리티를 사용하여 인스턴스 메타데이터 서비스 버전 2(IMDSv2)를 사용하여 AWS Red Hat Enterprise Linux EC2 인스턴스를 구성할 수 있습니다. EC2 메타데이터와 새로운 기능에 대한 무단 액세스를 제한하는 향상된 보안을 준수하기 위해 AWS와 Red Hat 서비스 간의 통합이 필요합니다. 이러한 향상된 기능을 통해 nm-cloud-setup
유틸리티는 IMDSv2 토큰을 가져오고 저장하고 EC2 환경을 확인하고 보안 IMDSv2 토큰을 사용하여 사용 가능한 인터페이스 및 IP 구성에 대한 정보를 검색할 수 있습니다.
NetworkManager에서 더 이상 사용되지 않는 ifcfg
형식을 사용할 때 알립니다.
RHEL 9에서는 ifcfg
형식의 연결 프로필이 더 이상 사용되지 않습니다( ifcfg
형식의 NetworkManager 연결 프로필이 더 이상 사용되지 않음참조). 이번 업데이트를 통해 NetworkManager는 이 형식의 사용 중단을 사용자에게 알립니다.
NetworkManager는
/etc/sysconfig/network-scripts/
디렉토리에서ifcfg
형식으로 연결 프로필을 처리하는 경우systemd
저널에 다음 경고를 기록합니다.Warning: the ifcfg-rh plugin is deprecated, please migrate connections to the keyfile format using "nmcli connection migrate"
nmcli
유틸리티는ifcfg
형식으로 지원되지 않는 속성을 수정하려고 하면 다음 오류를 보고합니다.Error: Failed to modify connection '<name>': failed to update connection: The ifcfg-rh plugin doesn't support setting '<property>'. If you are modifying an existing connection profile saved in ifcfg-rh format, please migrate the connection to keyfile using 'nmcli connection migrate <connection_uuid>' or via the Update2() D-Bus API and try again.
이러한 개선 사항으로 인해 NetworkManager는 이제 더 이상 사용되지 않는 ifcfg
형식으로 연결 프로필을 계속 사용하거나 수정할지 여부를 사용자에게 알립니다.
프로필을 ifcfg
에서 키 파일 형식으로 마이그레이션하는 방법에 대한 자세한 내용은 ifcfg에서 키 파일 형식으로 NetworkManager 프로필 마이그레이션을 참조하십시오.
NetworkManager
에서 본딩 구성에서 lacp_active
옵션 지원
NetworkManager
를 사용하면 본딩 구성의 lacp_active
옵션을 사용하면 LCPDU(Link Aggregation Control Protocol Data Units) 프레임을 세부적으로 제어할 수 있습니다. lacp_active
옵션은 LACPDU 프레임의 동작을 조정하고 본딩 설정에서 이러한 프레임의 주기적인 전송을 제어합니다. 네트워크 구성을 사용자 지정하려면 lacp_active
을 ON
또는 OFF
로 설정하여 LACPDU 프레임의 주기적 전송을 활성화하거나 비활성화할 수 있습니다.
NetworkManager
에서 본딩 인터페이스에 대한 ns_ip6_target
옵션 구성 지원
이번 개선된 기능을 통해 본딩 인터페이스의 ns_i6_target
옵션 구성을 위해 NetworkManager
에서 최대 16개의 IPv6 주소를 모니터링 피어로 지정하여 arp_interval
옵션을 설정할 수 있습니다. 이전에는 NetworkManager
에서 IPv6 모니터링 피어를 지정할 수 없었습니다. 이번 업데이트를 통해 nmcli
유틸리티를 사용하여 bond.options
매개변수에서 ns_ip6_target
옵션을 구성할 수 있습니다. NetworkManager
는 최대 16개의 IPv6 주소 사양을 활성화하여 이 설정을 본딩 인터페이스에 적용합니다. 이번 개선된 기능은 IPv4 및 IPv6 설정에 동일하게 적용됩니다.
NetworkManager
에서 동일한 네트워크 인터페이스에서 고정 및 DHCP IP 구성을 모두 지원
nmstate
유틸리티를 사용하면 DHCP 또는 Ad-Hoc Network Autoconfiguration(autoconf) 활성화된 인터페이스에서 dhcp: true
또는 autoconf: true
값을 사용하여 고정 IP 주소를 할당할 수 있습니다.
이 향상된 기능을 통해 nmstate
는 IP 주소의 두 가지 속성을 지원합니다.
-
valid_lft
는 유효한 수명을 초 단위로 나타냅니다. -
preferred_lft
는 초 단위로 선호하는 수명 수를 의미합니다.
두 매개변수의 기본값은 항상
정적임을 의미합니다.
위의 속성을 사용하면 nmstate
는 쿼리된 상태를 다시 적용한 후 동적 IP 주소를 고정 IP로 변환하지 않도록 DHCP/autoconf 기반 IP 주소를 무시할 수 있습니다. 동적 IP 주소를 사용하여 DHCP/autoconf 설정을 비활성화해야 하는 경우 nmstate
는 해당 동적 IP를 고정 IP 주소로 변환합니다.
NMState
는 MAC 주소 식별 네트워크 인터페이스 지원
nmstate
유틸리티는 인터페이스 이름 대신 MAC 주소가 있는 네트워크 인터페이스에 직접 네트워크 구성을 지원합니다.
이번 개선된 기능에는 기본 인터페이스에 두 가지 속성이 도입되었습니다.
-
ID
: 네트워크에서이름
또는mac-address
를 식별합니다. 기본값은name
입니다. -
profile-name
: string
identifier
변수가 mac-address
값으로 설정된 경우 nmstate
는 interface.mac-address
를 사용하여 특정 네트워크 상태에 대한 네트워크 인터페이스를 선택합니다. 네트워크 구성을 저장할 때
interface.profile-name
변수가 할당되지 않은 경우 nmstate
는 interface.name
을 통해 interface.profile-name
을 선호합니다. 현재 네트워크 상태를 확인하면 interface.profile-name
이 interface.name
과 같은 경우 숨겨진 상태로 유지됩니다.
NetworkManager는 본딩 드라이버가 본딩 드라이버에서 포트를 다운으로 표시하는 데 실패한 ARP의 정의를 지원합니다.
이번 개선된 기능에는 NetworkManager의 연결 프로필을 결합하는 데 arp_missed_max
옵션이 추가되었습니다. ARP(Address Resolution Protocol) 모니터를 사용하여 본딩 포트가 up인지 확인하는 경우, 본딩 드라이버가 포트를 아래로 표시하는 실패한 후 정의하도록 arp_missed_max
를 설정할 수 있습니다.
NetworkManager에서 링크 관련 속성 지정 지원
이번 개선된 기능에는 NetworkManager 연결 프로필에 다음 네트워크 링크 속성이 추가되었습니다.
-
link.tx-queue-length
- 패킷 수의 전송(TX) 큐 길이입니다. -
link.gro-max-size
- 장치가 수락하는 GRO(Generic Receive Offload) 패킷의 최대 크기(바이트)입니다. -
link.gso-max-segments
- 장치가 허용하는GSO(Generic Segmentation Offload) 패킷의 최대 세그먼트 수입니다. -
link.gso-max-size
- GSO 패킷의 최대 크기(바이트)입니다.
이전에는 ip
명령을 사용하거나 NetworkManager 디스패처 스크립트에서 이러한 명령을 사용하여 이러한 커널 설정을 구성할 수 있었습니다. 이번 개선된 기능을 통해 이제 연결 프로필에서 직접 이러한 설정을 구성할 수 있습니다.
NetworkManager는 이러한 속성을 키 파일
형식의 연결 프로필에서만 지원하며 더 이상 사용되지 않는 ifcfg
형식에서는 지원되지 않습니다.
dhcp-send-hostname
및 dhcp-custom-hostname
DHCP 옵션에 사용할 수 있는 nmstate
API 지원
이번 개선된 기능을 통해 nmstate
유틸리티는 연결 파일에서 다음 두 개의 DHCP 옵션의 구성을 지원합니다.
-
DHCP-send-hostname
:true
또는false
value. DHCP 요청에 호스트 이름 또는 FQDN(정규화된 도메인 이름) 옵션이 필요한 경우 해당 옵션의 호스트 이름이 설정됩니다. 기본값은true
입니다. dhcp-custom-hostname
: <string>. 이 옵션을 사용하여 DHCP 요청에서 hostname 또는 FQDN 옵션을 구성하며 값 유형은 string입니다.- DHCPv4 네트워크 프로토콜의 경우
-
호스트 이름이 FQDN인 경우 RFC 4702에서
FQDN(정규화된 도메인 이름)
, 옵션 (81)을 참조하십시오. 호스트 이름이 FQDN이 아닌 경우 RFC 2132의
호스트 이름
, 옵션 (12)을 참조하십시오.- DHCPv6 네트워크 프로토콜의 경우
사용자 정의 문자열, 빈 도메인 이름을 지원하여 DHCP 요청의 호스트 이름을 덮어씁니다. RFC 4704의
FQDN(정규화된 도메인 이름
), 옵션(29)을 참조하십시오.
NetworkManager 버전 1.44.0으로 업데이트
NetworkManager
패키지가 업스트림 버전 1.44.0으로 업그레이드되어 이전 버전에 대해 몇 가지 개선 사항 및 버그 수정을 제공합니다.
- 링크 관련 속성이 NetworkManager에 추가되었습니다.
-
arp_missed_max
,lacp_active
,ns_ip6_target
속성이 연결 프로필을 결합하는 데 추가되었습니다. -
이제
ipv6.dhcp-pd-hint
연결 속성에 DHCPv6 접두사 위임 힌트를 설정할 수 있습니다. -
/etc/NetworkManager/NetworkManager.conf
파일의[keyfile]
섹션에서 새rename
매개 변수를 활성화하면 NetworkManager가 프로필 이름(connection.id
)을 변경하는 경우/etc/NetworkManager/system-connections/
에서 연결 프로필의 이름을 변경합니다. 외부 애플리케이션 또는 스크립트가 파일 이름을 사용하는 경우 이 매개변수를 활성화하지 마십시오. - 비공용 최상위 도메인(TLD)이 포함된 호스트 이름을 설정하면 NetworkManager는 이제 전체 호스트 이름 대신 이 TLD를 DNS 검색 도메인으로 사용합니다.
-
NetworkManager는
/etc/NetworkManager/NetworkManager.conf
파일의[global-dns]
섹션의 DNS 옵션을 적용합니다. - 다른 종속 서비스와 경쟁 조건을 방지하기 위해 NetworkManager는 이제 D-Bus 트리를 입력한 후에만 D-Bus 이름을 가져옵니다. 이 명령은 NetworkManager가 시작될 때 지연을 추가할 수 있습니다.
-
NetworkManager는 이제 동시 프로필 수정을 방지하기 위해
Update2()
D-Bus 호출에version-id
인수를 추가합니다. - NetworkManager는 더 이상 고정 IPv6 주소를 사용하여 DNS에서 시스템 호스트 이름을 확인하지 않습니다.
- 다중 연결 프로필의 경우 예기치 않은 동작을 방지하기 위해 NetworkManager는 이제 각 장치 및 연결 대신 각 장치 및 연결에 대해 남은 자동 연결 재시도 횟수를 추적합니다.
-
NetworkManager는
sysfs
파일 시스템 대신 커널의netlink
인터페이스를 사용하여 VLAN 필터링 옵션을 설정합니다. -
nm-cloud-setup
유틸리티는 Amazon EC2에서 Instance Metadata Service Version 2(IDMSv2)를 지원합니다. -
이제
nmtui
애플리케이션에서 Cryostat 및 Wide Area Networks(W Cryostat)를 활성화 및 비활성화할 수 있습니다. -
bond, bridge, team 연결은
/etc/NetworkManager/NetworkManager.conf
파일의[main]
섹션에서ignore-carrier=no
설정을 사용합니다.
RHEL 9의 커널 네트워킹 트리의 최신 버전을 기반으로 하는 SCTP
SCTP(Stream Control Transmission Protocol) 네트워킹 하위 시스템에서 주요 변경 사항은 다음과 같습니다.
- 가상 라우팅 및 전달(VRF)은 복잡한 네트워크 환경 내에서 SCTP 트래픽을 분할 및 격리합니다.
-
네트워크에서 효율적이고 동등한 리소스 할당을 보장하기 위해 새로운 스트림 스케줄러(정확한
용량
및가중치를 갖춘 공정 큐링
)입니다.
최신 버전의 RHEL 9 커널 네트워킹 트리를 기반으로 하는 MPTCP
MPTCP(Multipath TCP) 프로토콜 확장에서 주요 변경 사항은 다음과 같습니다.
- 클라이언트 측 지원을 포함하여 TCP fastopen(TFO) 확장 지원 이 기능을 사용하면 네트워크의 대기 시간, 효율성 및 성능 개선이 제공됩니다.
- 여러 개의 혼합 IPv4/IPv6 하위 흐름을 지원하여 두 IP 버전이 모두 사용되는 네트워크에서 유연성 및 조정 가능성을 높일 수 있습니다.
Bugzilla:2193330[1]
xdp-tools
패키지가 버전 1.4.0으로 업데이트됨
xdp-tools
패키지가 버전 1.4.0으로 업그레이드되어 여러 버그 수정 및 개선 사항이 추가되었습니다. 주요 변경 사항은 다음과 같습니다.
-
xdp-bench
유틸리티는 커널에서 multi-buffer eXpress Data Path(XDP)를 지원하고 커널에서xdp_load_bytes()
도우미를 벤치마킹했습니다. 이 기능을 사용하면 대규모 MTU(최대 전송 단위)를 사용하여 네트워크 벤치마킹 테스트를 수행할 수 있습니다. -
유틸리티가 완전히 종료되지 않은 경우 오래된 잠금을 방지하기 위해
xdp-tools
의 명령줄 유틸리티 잠금이 개선되었습니다. -
libxdp
라이브러리에는 이미 열린AF_XDP
소켓의 추가 파일 설명자를 허용하는 새로운xsk_umem__create_with_fd()
API가 포함되어 있습니다. 프로세스에CAP_NET_RAW
권한이 없는 경우 이 함수를 일반xsk_umem__create()
함수 대신 사용할 수 있습니다.
iproute
버전 6.2.0으로 재지정
iproute
패키지가 업스트림 버전 6.2.0으로 업그레이드되어 이전 버전에 대해 몇 가지 개선 사항 및 버그 수정을 제공합니다. 주요 변경 사항은 다음과 같습니다.
-
새로운
ip stats
명령은 인터페이스 통계를 관리하고 표시합니다. 기본적으로ip stats show
명령은 브리지 및 본딩을 포함하여 모든 네트워크 장치에 대한 통계를 표시합니다.dev
및group
옵션을 사용하여 출력을 필터링할 수 있습니다. 자세한 내용은ip-stats(8)
도움말 페이지를 참조하십시오. -
ss
유틸리티는 이제-p
(--processes
) 옵션을 확장하는 스레드 정보를 표시하는-T
(--threads
) 옵션을 제공합니다. 자세한 내용은ss(8)
도움말 페이지를 참조하십시오. -
새
브릿지 fdb flush
명령을 사용하여 제공된 옵션과 일치하는 특정 전달 데이터베이스(fdb) 항목을 제거할 수 있습니다. 자세한 내용은bridge(8)
도움말 페이지를 참조하십시오.
Jira:RHEL-428[1]
커널은 특정 순서로 본딩 포트 활성화 지원
이번 개선된 기능을 통해 active-backup
,balance-tlb
또는 balance-alb
모드에서 본딩을 구성하는 경우 커널의 netlink
인터페이스가 각 포트에서 우선 순위 설정을 지원합니다. 우선순위 값은 32비트 Integer를 사용하며 값이 클수록 우선 순위가 높습니다. 결과적으로 본딩 포트를 특정 순서로 활성화할 수 있습니다.
이 기능을 사용하려면 NetworkManager 포트 연결 프로필을 만들거나 수정할 때 bond-port.prio
속성을 설정하여 우선 순위를 구성할 수 있습니다.
Bugzilla:2092194[1]
이제 firewalld
에서 불필요한 방화벽 규칙 플러시 방지
RHBA-2023:7748 이 릴리스되면서 다음 두 조건이 충족되면 firewalld
서비스가 업그레이드된 경우 iptables
구성에서 모든 기존 규칙이 제거되지는 않습니다.
-
firewalld
는nftables
백엔드를 사용하고 있습니다. -
--direct
옵션을 사용하여 생성된 방화벽 규칙은 없습니다.
이 변경으로 불필요한 작업(firewall 규칙 플러시)을 줄이고 다른 소프트웨어와의 통합을 개선하는 것을 목표로 합니다.
Jira:RHEL-14694[1]
VLAN 인터페이스에 대한 새로운 nmstate
속성 도입
이 nmstate
프레임워크 업데이트를 통해 다음 VLAN 속성이 도입되었습니다.
-
등록 프로토콜
: VLAN 등록 프로토콜. 유효한 값은gvrp
(GARP VLAN 등록 프로토콜),mvrp
(Multiple VLAN Registration Protocol) 및none
입니다. -
reorder-headers
: 출력 패킷 헤더를 다시 정렬합니다. 유효한 값은true
및false
입니다. -
loose-binding
: 인터페이스가 기본 장치의 작동 상태에 대한 느슨한 바인딩입니다. 유효한 값은true
및false
입니다.
YAML 구성 파일은 다음 예와 유사할 수 있습니다.
--- interfaces: - name: eth1.101 type: vlan state: up vlan: base-iface: eth1 id: 101 registration-protocol: mvrp loose-binding: true reorder-headers: true
Jira:RHEL-19142[1]
4.8. 커널
RHEL 9.3의 커널 버전
Red Hat Enterprise Linux 9.3은 커널 버전 5.14.0-362.8.1과 함께 배포됩니다.
NVIDIA Grace CPU에 대한 지원 추가
Red Hat Enterprise Linux 9.3은 NVIDIA Grace ARM 64비트 CPU에 대한 지원을 추가합니다.
Jira:RHELDOCS-17055[1]
RHEL 커널에서 AutoIBRS 지원
AutoIBRS(Automatic Indirect Branch Restricted Speculation)는 AMD EPYC 9004 gRPCoa 제품군의 프로세서 제품군 및 이후 CPU 버전에서 제공하는 기능입니다. AutoIBRS는 Spectre v2 CPU 취약점의 기본 완화 기능이며 성능을 향상시키고 확장성을 향상시킵니다.
Bugzilla:1898184[1]
perf
버전 6.2로 업데이트
perf
성능 분석 도구는 버전 6.2로 변경되었습니다. 다양한 마이너 버그 수정 및 업데이트 외에도 perf list
명령에 사람이 친숙한 이름 및 설명이 포함된 PMU(Performance Monitor Unit) 이벤트가 표시됩니다. 또한 이번 업데이트에서는 다음 프로세서에 대한 지원이 추가되었습니다.
- Intel 13세대 코어 프로세서(Intel Raptor Lake-S)
- Intel 14세대 프로세서(Intel Meteor Lake)
- Intel 5th generation Xeon 서버 프로세서(Intel Emerald Rapids)
Bugzilla:2177180[1]
Intel® QAT 커널 드라이버의 업스트림 버전 6.2
Intel® Quick Assist Technology (QAT)는 업스트림 버전 6.2로 변경되었습니다. Intel® QAT에는 대칭 및 비대칭 암호화, 압축 성능 및 기타 CPU 집약적 작업에 최적화된 가속기가 포함되어 있습니다.
리베이스에는 많은 버그 수정 및 개선 사항이 포함되어 있습니다. 가장 주목할 만한 개선 사항은 QAT GEN4의 다음 하드웨어 액셀러레이터 장치에 사용할 수 있는 지원입니다.
- Intel Quick Assist Technology 401xx 장치
- Intel Quick Assist Technology 402xx 장치
Bugzilla:2144528[1]
Linux 컨테이너에서 V TPM
기능을 사용할 수 있습니다.
이번 개선된 기능에는 Linux 컨테이너 및 기타 가상 환경을 위한 가상 신뢰할 수 있는 플랫폼 모듈(vTPM
)이 도입되었습니다. V TPM
은 보안 실행 환경에 사용할 전용 TPM 인스턴스를 제공하는 가상화된 TPM 버전입니다. vTPM
프록시 드라이버를 사용하면 프로그램은 물리적 TPM과 동일한 방식으로 에뮬레이션 TPM과 상호 작용합니다.
결과적으로 각 가상 머신에 이제 분리 및 암호화된 전용 vTPM
인스턴스가 있을 수 있습니다.
Bugzilla:2210263[1]
버전 8.0.3에 충돌
기반
크래시
는 커널 충돌 시 kdump
에서 생성한 실행 중인 시스템과 코어 덤프 파일을 분석하는 대화형 유틸리티입니다. 크래시
유틸리티는 많은 버그 수정 및 개선 사항이 포함된 버전 8.0.3으로 변경되었습니다. 주요 개선 사항은 추가된 IPv6 지원입니다.
IPv6를 지원하는 네트워크 인터페이스의 경우 크래시
는 net
또는 net -s
명령을 사용하여 IPv6 주소를 출력합니다.
-
net
명령은 네트워크 장치, 이름 및 IP 주소 목록을 표시합니다. net -s
명령은 다음 정보를 표시합니다.- 열린 네트워크 소켓 및 sock 주소
- 제품군 및 소켓 유형 및 sock 주소
-
INET 및
INET
6
vmcore
dump 대상으로 지원되는 LVM 씬 프로비저닝 스토리지 볼륨
kdump
메커니즘은 이제 vmcore
대상으로 씬 프로비저닝된 논리 볼륨을 지원합니다. LVM 씬 프로비저닝을 구성하려면 다음 단계를 완료합니다.
LVM 볼륨 그룹을 만듭니다.
vgcreate vg00 /dev/sdb
사용 가능한 공간이 10MB인 LVM 씬 풀을 만듭니다.
lvcreate -L 10M -T vg00/thinpool
파일 시스템 공간이 300MB인 LVM 씬 볼륨을 만듭니다.
lvcreate -V 300M -T vg00/thinpool -n thinvol mkfs.ext4 /dev/vg00/thinvol
LVM 씬 풀 임계값을 구성하여 공간을 자동으로 확장합니다.
cat /etc/lvm/lvm.conf activation { thin_pool_autoextend_threshold = 70 thin_pool_autoextend_percent = 20 monitoring = 1 }
첫 번째 커널에 대해 LVM 씬 풀 모니터링 서비스를 활성화합니다.
systemctl enable lvm2-monitor.service systemctl start lvm2-monitor.service
kdump.conf
파일에 다음 행을 추가하여 LVM thin 볼륨을kdump
대상으로 설정합니다.ext4 /dev/vg00/thinvol path /
kdump
서비스를 시작합니다.kdumpctl restart
-
커널 패닉을 트리거하여 구성을 확인하고
vmcore
가/dev/vg00/thinvol
에 저장되었는지 확인합니다.
그 결과 kdump
메커니즘이 향상된 기능을 통해 씬 프로비저닝된 스토리지 볼륨에 vmcore
덤프 파일을 저장할 수 있는 기능이 확장됩니다.
업스트림 버전 1.7.3에 따라 dumpfile
을 다시 설치
페이지를 압축하거나 필요하지 않은 메모리 페이지를 제외하여 크래시 덤프 파일을 작게 만드는 makedumpfile
툴은 업스트림 버전 1.7.3에 따라 변경되었습니다. 리베이스에는 많은 버그 수정 및 개선 사항이 포함되어 있습니다.
가장 주목할 만한 변경 사항은 AMD 및 Intel 64비트 아키텍처에서 독립 실행형 덤프(sadump
) 메커니즘에 추가된 5단계 페이징 모드입니다. 5단계 페이징 모드는 프로세서의 선형 주소 너비를 확장하여 애플리케이션이 더 많은 메모리에 액세스할 수 있도록 합니다. 5단계 페이징은 가상 주소 크기를 48비트에서 57비트로 확장하고 물리적 주소는 46비트에서 52비트로 확장합니다.
Red Hat Enterprise Linux는 ARM의 SystemReady ES 및 IR 계층 지원
Red Hat Enterprise Linux는 이전에 SR 계층만 지원하는 반면 ARM의 SystemReady ES 및 IR를 지원합니다. RHEL 9.3에서 NVIDIA Orin, NXP i.MX 8M 및 NXP i.MX 8M Mini 모듈이 활성화되었으며 RHEL 하드웨어 인증 후보입니다. 하드웨어 파트너는 Red Hat 하드웨어 인증 과정에 등록하여 자격증을 제출 할 수 있습니다. 고객은 카탈로그에 나열된 지원되는 하드웨어를 사용하여 프로덕션 환경을 개선할 수 있습니다.
Bugzilla:2195986[1]
ARM의 RHEL에서 Bluetooth 지원
이번 개선된 기능을 통해 명령줄 인터페이스에서 bluetoothctl
툴을 사용하여 bluetooth 장치를 구성할 수 있습니다.
Bugzilla:2187856[1]
ARM의 RHEL은 RHEL 9.3에서 USB 연결 카메라 지원
이번 개선된 기능을 통해 AMD 및 Intel 64비트 아키텍처 플랫폼에서 RHEL의 CONFIG_MEDIA_SUPPORT
커널 구성이 가능합니다. 이를 통해 AMD 및 Intel 64비트 아키텍처 시스템에서 USB 어댑터를 사용할 수 있습니다.
Bugzilla:2192722[1]
B
PF 버전 6.3 업데이트
BPF(Berkeley Packet Filter) 기능이 Linux 커널 버전 6.3으로 변경되었습니다. 주요 변경 사항 및 개선 사항은 다음과 같습니다.
- BPF trampoline은 이제 64 비트 IBM Z 아키텍처에서 사용할 수 있습니다.
-
BPF_MAP_TYPE_USER_RINGBUF
- 새로운 맵 유형(BBF_MAP_TYPE_USER_RINGBUF) 및 관련 도우미가 BPF 특정 링 버퍼를 통해 사용자 공간과 커널 간의 통신을 위해 정의되었습니다. -
BPF는 이제 새로운 복잡한 데이터 구조( linked list 및
rbtree
)를 제공합니다. -
프로그램을 추적하는 BPF trampoline은 이제 구조 인수
를
지원합니다. - BPF는 이제 NIC에서 지원하는 XDP 기능을 내보낼 수 있는 방법을 제공합니다.
-
이제 RX 해시 및 타임스탬프 메타데이터에 대한 초기 지원과 함께 BPF 커널 함수(
kfuncs
)를 사용하여 하드웨어 메타데이터가 XDP 프로그램에 노출됩니다. -
BPF는 이제 BPF 프로그램의 새로운
conntrack
모듈 항목에 소스 및 대상 NAT 주소와 포트를 설정하는 도우미를 제공합니다. -
BPF는 이제 netfilter 패킷 필터링 프레임워크의
nf_conn:mark
연결 마크에 직접 쓸 수 있습니다.
Bugzilla:2178930[1]
4.9. 부트 로더
BLS를 사용한 grub2-mkconfig
의 새로운 기본 동작
BLS(Boot Loader Specification) 프레임워크에서 GRUB은 부팅 시 BLS 스니펫에서 부팅 메뉴를 동적으로 생성하고 grub.cfg
파일에 사전 정의되어 있지 않습니다.
이전에는 grub2-mkconfig
명령에서 새 grub.cfg
파일을 생성하고 /etc/default/grub
파일에 있는 GRUB_CMDLINE_LINUX
변수의 값으로 모든 BLS 스니펫에서 명령줄 인수를 항상 덮어썼습니다.
이번 릴리스에서는 grub2-mkconfig
명령이 기본적으로 GRUB_CMDLINE_LINUX
로 BLS 스니펫의 커널 명령줄을 더 이상 덮어쓰지 않습니다. 부트 로더 메뉴의 각 커널은 BLS 스니펫에서 커널 명령줄을 사용합니다. 이 새로운 기본 동작은 GRUB_ENABLE_BLSCFG=true
옵션으로 인해 발생합니다.
커널이 BLS 스니펫을 무시하고 GRUB_CMDLINE_LINUX
에서 명령줄을 사용하도록 grub.cfg
를 다시 생성하려면 GRUB_ENABLE_BLSCFG=false
옵션을 설정합니다.
GRUB_CMDLINE_LINUX
에 따라 BLS 스니펫에서 커널 명령줄을 업데이트하려면 --update-bls-cmdline
옵션을 추가합니다.
# grub2-mkconfig -o /path/to/grub.cfg --update-bls-cmdline
또한 grubby
를 사용하여 개별 커널의 BLS 스니펫을 변경할 수 있습니다.
# grubby --update-kernel /path/to/kernel --args "new args"
Jira:RHELDOCS-16752[1]
4.10. 파일 시스템 및 스토리지
NFS 서버에서 nfsd
에 대한 적절한 서버 코드를 구현합니다.
이번 업데이트에서는 RHEL 커널 NFS 서버에서 nfsd
에 대한 무료 서버 코드를 구현했습니다. 이 새로운 기능을 사용하면 클라이언트가 연결할 수 없는 동안 액세스 충돌이 없는 경우 서버와의 연결이 끊어진 클라이언트의 리스 취소를 방지할 수 있습니다.
DAX 마운트 옵션 및 reflink가 호환 가능
이번 업데이트를 통해 이제 reflinked 파일이 일반적으로 DAX 모드와 호환됩니다. 파일 시스템 DAX 마운트 옵션 -o dax=always
는 reflink 사용 파일 시스템과 호환됩니다. reflinked된 파일은 inode 플래그를 사용하여 DAX 모드로 설정할 수 있습니다. 자세한 내용은 xfs(5)
도움말 페이지를 참조하십시오.
Bugzilla:2192730[1]
RPCSEC GSS Kerberos V5의 새로운 암호화 유형
RPCSEC GSS Kerberos V5 메커니즘은 이제 RFC 6803(Kerberos 5의Camellia Encryption) 및 RFC 8009(Kerberos의 경우 HMAC-SHA2를 사용한 AES 암호화)에 정의된 암호화 유형을 지원합니다.
다음 암호화 유형이 추가되었습니다.
-
camellia128-cts-cmac
-
camellia256-cts-cmac
-
aes128-cts-hmac-sha256-128
-
aes256-cts-hmac-sha384-192
이를 통해 NFS 클라이언트와 NFS 서버는 GSS 컨텍스트와 협상할 때 더 강력한 암호화 유형을 사용할 수 있습니다.
이제 fuse3
이 umount
를 트리거하지 않고 디렉토리 항목을 무효화할 수 있음
이번 업데이트를 통해 fuse3
패키지에 새 메커니즘이 추가되어 항목에 존재하는 모든 마운트의 umount
를 자동으로 트리거하지 않고 디렉터리 항목을 무효화할 수 있습니다.
Stratis 스토리지 관리자 사용 가능
Stratis는 로컬 스토리지 관리자입니다. 사용자에게 추가 기능을 갖춘 스토리지 풀에 관리되는 파일 시스템을 제공합니다.
- 스냅샷 및 씬 프로비저닝 관리
- 필요에 따라 파일 시스템 크기 자동 확장
- 파일 시스템 관리
- 풀 수준 암호화
- TMP2 및 NBDE 지원
Stratis 스토리지를 관리하려면 stratisd
백그라운드 서비스와 통신하는 stratis
유틸리티를 사용합니다.
자세한 내용은 Stratis 문서: Stratis 파일 시스템 설정을 참조하십시오.
Cryostat2 파일 시스템 구성 및 작업 개선
polkit2 파일 시스템에 대해 다음 업데이트가 구현되었습니다.
-
mkfs.gfs2
명령에서 이제 new-U
옵션을 지원하므로 생성한 파일 시스템에 대한 파일 시스템 UUID를 지정할 수 있습니다. 이 옵션을 생략하면 파일 시스템의 UUID가 임의로 생성됩니다. -
gfs2_jadd
명령은 이전 릴리스보다 훨씬 빠른 속도로 저널을 생성합니다. - polkit2 도움말 페이지가 개선되었습니다.
dmpd
rebased 버전 1.0.2
dmpd
패키지가 버전 1.0.2로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.
- 메모리 안전을 위해 Rust 언어의 툴을 다시 작성하고 여러 스레드를 사용하여 성능을 향상시킵니다.
-
시스템 시작과 함께 LVM 풀 활성화 시간을 절약하기 위해
thin_check
및cache_check
툴을 개선합니다. 이러한 도구에 필요한 실행 시간이 이전 버전에 비해 10배 이상 향상되었습니다. -
스냅샷의 메타데이터
btrees
공유 손실을 방지하기 위해thin_dump
및thin_restore
툴을 업데이트합니다. 이제 복원된 메타데이터에 더 많은 공간이 필요하지 않습니다. -
씬 메타데이터를 일반적으로 10번째 크기에 압축하기 위한 새로운
thin_metadata_pack
및thin_metadata_unpack
툴을 추가합니다. 이는 일반 압축기보다 우수합니다. 이 도구를 사용하면 손상된 메타데이터를 검사하기가 더 쉽습니다.
SCSI 장치에 새로운 장치별 카운터 추가
SCSI 업데이트에서 I/O 시간 초과에 대해 새로운 장치별 카운터 iotmo_cnt
가 추가되었습니다. iorequest_cnt
개수 I/O 요청, iodone_cnt
I/O 완료 및 ioerr_cnt
I/O 오류 외에도 요청 시간 초과 횟수가 표시될 수 있습니다. 예를 들면 다음과 같습니다.
/sys/devices/pci0000:16/0000:16:02.0/0000:17:00.0/host2/target2:2:0/2:2:0:0/iorequest_cnt /sys/devices/pci0000:16/0000:16:02.0/0000:17:00.0/host2/target2:2:0/2:2:0:0/iodone_cnt /sys/devices/pci0000:16/0000:16:02.0/0000:17:00.0/host2/target2:2:0/2:2:0:0/iotmo_cnt /sys/devices/pci0000:16/0000:16:02.0/0000:17:00.0/host2/target2:2:0/2:2:0:0/ioerr_cnt
Bugzilla:2171093[1]
mpathcleanup
device-mapper-multipath에서 다중 경로 장치를 플러시
mpathcleanup
툴은 SCSI 기반 다중 경로 장치에서 작동하며 SCSI 경로 장치와 함께 다중 경로 장치를 제거합니다. 일부 사용자는 다중 경로 장치와 해당 경로 장치를 정기적으로 제거해야 합니다. 이전에는 다중 경로 장치를 제거하는 데 사용할 수 있는 툴이 없으며 이 작업에 사용자 정의 스크립트가 필요했습니다.
이 새 툴을 사용하면 이제 다중 경로 장치 및 기본 스토리지를 쉽게 제거할 수 있으며 이 작업을 위해 스크립트를 생성할 필요가 없습니다.
Jira:RHEL-782[1]
NVMe-cli
를 버전 2.4로 업데이트
nvme-cli
패키지가 버전 2.4로 업그레이드되어 여러 버그 수정 및 개선 사항이 추가되었습니다. 주요 변경 사항은 다음과 같습니다.
- TCP를 통한 TLS를 지원합니다.
-
/etc/fstab
파일을 사용하여 파일 시스템을 마운트하기 위해systemd
자동 연결 서비스의 잘못된 순서를 수정합니다. -
u32
값의 출력을 수정합니다. - 스토리지 태그 크기를 올바르게 확인합니다.
-
패브릭 컨트롤러에 대한
nvme effects-log
명령을 지원합니다.
Bugzilla:2159929[1]
4.11. 고가용성 및 클러스터
누락된 물리 볼륨이 있는 LVM 볼륨 그룹의 장애 조치 지원
볼륨 그룹이 물리 볼륨이 누락된 경우 LVM-activate
리소스 에이전트에서 볼륨 그룹 장애 조치를 허용하는 두 가지 새 옵션을 지원합니다.
-
대부분의 물리 볼륨이 있는 경우 볼륨 그룹이 물리 볼륨이 누락된 경우
majoritypvs
옵션을 사용하면 볼륨 그룹에서 시스템 ID를 변경할 수 있습니다. -
degraded_activation
옵션을 사용하면 RAID에 충분한 장치를 사용하여 논리 볼륨의 모든 데이터를 제공하는 데 충분한 장치를 사용할 수 있는 경우 볼륨 그룹의 RAID 논리 볼륨을 활성화할 수 있습니다.
Bugzilla:2174911[1]
IPaddr2
및 IPsrcaddr
클러스터 리소스 에이전트에서 정책 기반 라우팅 지원
IPaddr2
및 IPsrcaddr
클러스터 리소스 에이전트는 이제 정책 기반 라우팅을 지원하므로 복잡한 라우팅 시나리오를 구성할 수 있습니다. 정책 기반 라우팅을 사용하려면 리소스 에이전트의 테이블
매개변수를 구성해야 합니다.
Filesystem
리소스 에이전트에서 EFS 파일 시스템 유형 지원
ocf:heartbeat:Filesystem
클러스터 리소스 에이전트는 이제 Amazon Elastic File System(EFS)을 지원합니다. Filesystem
리소스를 구성할 때 fstype=efs
를 지정할 수 있습니다.
새로운 pcs
구문 분석에는 복제 메타 속성을 지정할 때 meta
키워드가 필요합니다.
pcs
명령 형식의 일관성을 보장하기 위해 meta 키워드를 지정하지 않고 pcs resource clone
,pcs resource promotable
및 pcs resource create
명령을 사용하여 복제 메타
속성을 구성합니다.
이전에는 pcs 리소스 clone 및
명령에서 pcs resource
promotablemeta
키워드가 무시되었습니다. 그러나 pcs resource create
명령에서는 clone 키워드 뒤에 clone
키워드가 아닌 복제가 아닌 리소스에 할당되었을 때 meta
키워드 뒤에 지정된 메타 속성입니다. 업데이트된 구문 분석 알고리즘을 사용하면 clone
키워드를 따를 때 meta
키워드 뒤에 지정된 메타 속성이 복제본에 할당됩니다. 이전 형식을 사용하는 기존 스크립트와의 호환성을 유지하려면 pcs resource create
명령을 사용하여 복제된 리소스를 생성할 때 이 새 인수 처리를 활성화하려면 --future
명령 옵션을 지정해야 합니다.
다음 명령에서는 메타 속성 mv=v1
을 사용하여 리소스와 meta 속성이 mv=v2
인 복제를 생성합니다.
pcs resource create dummy1 ocf:pacemaker:Dummy meta m1=v1 clone meta m2=v2 --future
구성된 리소스 제약 조건을 다시 생성하기 위한 pcs
명령 표시
이제 새로운 --output-format=cmd
옵션과 함께
명령을 사용하여 다른 시스템에서 구성된 리소스 제약 조건을 다시 생성하는 데 사용할 수 있는 pcs 제약 조건 명령을 표시할 수 있습니다. 기본 출력 형식은 이전 릴리스와 마찬가지로 일반 텍스트이며 pcs constraint
--output-format=text
옵션으로 지정할 수 있습니다. 일반 텍스트 형식이 다른 pcs
명령의 출력 형식과 일치하도록 약간 변경되었습니다.
Pacemaker 패키지를 버전으로 리베이스: 2.1.6
Pacemaker 패키지가 업스트림 버전 2.1.6으로 업그레이드되어 이전 버전에 대해 몇 가지 개선 사항 및 버그 수정을 제공합니다.
다음 기능이 추가되었습니다.
- 이전에는 Pacemaker 원격 연결이 손실되면 Pacemaker에서 항상 일시적인 노드 속성을 제거했습니다. 연결을 신속하게 복구할 수 있고 원격 데몬이 다시 시작되지 않은 경우 이 작업이 필요하지 않았습니다. Pacemaker 원격 노드는 짧은 복구 가능한 연결 중단 후 임시 노드 속성을 유지합니다.
-
Pacemaker에서 제공하는 샘플 경고 에이전트인
alert_snmp.sh.sample
경고 에이전트는 이제 SNMPv3 프로토콜 및 SNMPv2를 지원합니다. 이번 업데이트를 통해 Pacemaker 경고와 함께 SNMPv3을 사용하도록 수정하지 않고alert_snmp.sh.sample
에이전트를 복사할 수 있습니다. -
Pacemaker 경고 및 경고 수신자는
활성화된
메타 옵션을 지원합니다. 경고에 대해 이 옵션을false
로 설정하면 경고가 비활성화됩니다. 특정 수신자에 대해 경고 및false
에 대해 이 옵션을true
로 설정하면 해당 수신자에 대한 경고가 비활성화됩니다. 이 옵션의 기본값은true
입니다. 이 옵션을 사용하여 계획된 유지 관리와 같은 이유로 경고를 일시적으로 비활성화할 수 있습니다.
다음 버그가 수정되었습니다.
- Pacemaker 지정 컨트롤러 선택이 더 이상 보류 중인 모든 작업이 완료되지 않고 작업 결과가 손실되지 않습니다.
-
devices 속성이 설정되지 않은 경우
fence_scsi
에이전트가 공유lvmlockd
장치를
자동으로 감지할 수 있습니다. - 이제 리소스 고정 수준을 코로케이션 점수와 올바르게 비교합니다.
-
이제
crm_resource
명령을 사용하면 하나의 활성 복제본만 있는 번들을 금지하거나 이동할 수 있습니다. - 이전에는 승격 가능한 복제 인스턴스가 먼저 승격된 인스턴스가 숫자 순서대로 할당되었습니다. 결과적으로 승격된 복제 인스턴스를 시작해야 하는 경우 인스턴스 번호가 변경되어 예기치 않은 인스턴스가 다시 시작됩니다. 이번 수정을 통해 인스턴스 번호를 노드에 할당할 때 역할이 고려되어 불필요한 재시작이 발생하지 않습니다.
pcs property
명령 개선
pcs property
명령에서는 다음과 같은 향상된 기능을 지원합니다.
pcs property config --output-format=
옵션-
현재 클러스터 속성 구성에서 생성된
pcs 속성 set
명령을 표시하려면--output-format=cmd
를 지정합니다. 이 명령을 사용하여 다른 시스템에서 구성된 클러스터 속성을 다시 생성할 수 있습니다. -
구성된 클러스터 속성을 JSON 형식으로 표시하려면
--output-format=json
을 지정합니다. -
구성된 클러스터 속성을 일반 텍스트 형식으로 표시하려면
output-format=text
를 지정합니다. 이 옵션의 기본값입니다.
-
현재 클러스터 속성 구성에서 생성된
-
더 이상 사용되지 않는
pcs property --defaults
옵션을 대체하는pcs property defaults
명령 -
클러스터 속성의 의미를 설명하는
pcs property describe
명령
4.12. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버
이메일 주소 구문 분석을 제어하는 Python의 새로운 환경 변수
CVE-2023-27043 을 완화하기 위해 이메일 주소의 더 엄격한 구문 분석을 Python 3에 도입하기 위한 이전 버전과 호환되지 않는 변경 사항이 추가되었습니다.
RHSA-2024:2024 의 업데이트에는 새로운 PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING
환경 변수가 도입되었습니다. 이 변수를 true
로 설정하면 이전보다 덜 엄격한 구문 분석 동작이 전체 시스템의 기본값입니다.
export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true
그러나 영향을 받는 함수에 대한 개별 호출은 여전히 더 엄격한 동작을 활성화할 수 있습니다.
다음 콘텐츠를 사용하여 /etc/python/email.cfg
구성 파일을 생성하여 동일한 결과를 얻을 수 있습니다.
[email_addr_parsing] PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true
자세한 내용은 Knowledgebase 문서 Mitigation of CVE-2023-27043 introduce stricter parsing of email address in Python에서 참조하십시오.
Jira:RHELDOCS-17369[1]
새로운 nodejs:20
모듈 스트림이 완전히 지원됩니다.
이전에 기술 프리뷰로 제공되는 새로운 모듈 스트림 nodejs:20
은 RHEA-2023:7252 권고를 통해 완전히 지원됩니다. nodejs:20
모듈 스트림은 이제 LTS(Long Term Support) 버전인 Node.js 20.9
를 제공합니다.
RHEL 9.3에 포함된 Node.js 20
은 RHEL 9.1 이후 Node.js 18
에 비해 새로운 기능, 버그 수정, 보안 수정 및 성능 향상을 제공합니다.
주요 변경 사항은 다음과 같습니다.
-
V8
JavaScript 엔진이 11.3 버전으로 업그레이드되었습니다. -
npm
패키지 관리자가 버전 9.8.0으로 업그레이드되었습니다. -
Node.js
에는 새로운 실험적 권한 모델이 도입되었습니다. -
Node.js
에는 새로운 실험적 단일 실행 가능 애플리케이션(SEA) 기능이 도입되었습니다. -
Node.js
는 실험적인 ECMAScript 모듈(ESM) 로더를 개선합니다. -
Node.js 18
에서 실험적인node:test
모듈로 도입된 네이티브 테스트 실행자는 이제 안정적인 것으로 간주됩니다. -
Node.js
는 다양한 성능 향상을 제공합니다.
nodejs:20
모듈 스트림을 설치하려면 다음을 사용합니다.
# dnf module install nodejs:20
nodejs:18
스트림에서 업그레이드하려면 이후 스트림으로 전환을 참조하십시오.
nodejs
Application Streams에 대한 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 을 참조하십시오.
Python tarfile
추출 함수에 대한 새 필터
인수
CVE-2007-4559 를 완화하기 위해 Python은 tarfile
추출 기능에 필터
인수를 추가합니다. 이 인수를 사용하면 보안을 강화하기 위해 tar
기능을 해제할 수 있습니다(CVE-2007-4559 디렉터리 트래버스 공격 포함). 필터를 지정하지 않으면 RHEL에서 가장 안전하지만 가장 제한적인 '데이터'
필터가 기본적으로 사용됩니다. 또한 Python은 애플리케이션에 영향을 미칠 때 경고를 발송합니다.
경고를 숨기는 방법을 포함하여 자세한 내용은 Python tarfile 라이브러리의 디렉터리 traversal 공격의 지식 베이스 문서 Mitigation of directory traversal attack (CVE-2007-4559) 을 참조하십시오.
Jira:RHELDOCS-16405[1]
HTTP::Tiny
Perl 모듈은 기본적으로 TLS 인증서를 확인합니다.
HTTP::Tiny
Perl 모듈의 verify_SSL
옵션 기본값이 0
에서 1
로 변경되어 HTTPS를 사용할 때 TLS 인증서를 확인합니다. 이 변경으로 인해 CPAN Perl 모듈의 CVE-2023-31486 for HTTP::Tiny
및 CVE-2023-31484 가 수정되었습니다.
TLS 확인을 지원하기 위해 이번 업데이트에서는 perl-HTTP-Tiny
패키지에 다음 종속 항목을 추가합니다.
-
perl-IO-Socket-SSL
-
perl-Mozilla-CA
-
perl-Net-SSLeay
Bugzilla:2228412[1]
httpd
리기반 버전 2.4.57
Apache HTTP Server가 RHEL 9.1 이후 제공되는 버전 2.4.53에 대한 버그 수정, 개선 사항 및 보안 수정 사항을 제공하는 2.4.57 버전으로 업데이트되었습니다.
주요 개선 사항은 다음과 같습니다.
-
httpd
와 함께 제공되는rotatelogs
유틸리티는 초기 로그 파일을 제외하고 순환된 모든 로그 파일을 자르는 새로운-T
옵션을 도입합니다. -
mod_ldap
모듈의LDAPConnectionPoolTTL
지시문은 이제 음수 값을 허용하여 모든 기간의 연결을 재사용할 수 있습니다. 이전에는 음수 값이 오류로 처리되었습니다. -
mod_proxy_hcheck
모듈의 작업자가 작업자 시간 제한 설정에 따라 올바르게 시간 초과되었습니다. -
mod_proxy_hcheck
모듈의hcmethod
매개 변수는 이제 HTTP/1.1 요청에 대한 새로운GET11
,HEAD11
및OPTIONS11
메서드를 제공합니다.
httpd
의 새로운 mod_authnz_fcgi
모듈
Apache HTTP 서버에는 이제 FastCGI 작성자 애플리케이션이 사용자를 인증하고 리소스에 대한 액세스 권한을 부여할 수 있는 mod_authnz_fcgi
모듈이 포함되어 있습니다.
mod_authnz_fcgi
모듈은 기본적으로 로드되지 않습니다. 이 모듈을 로드하려면 /etc/httpd/conf.modules.d/00-optional.conf
파일에서 다음 행의 주석을 제거합니다.
LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
Bugzilla:2173295[1]
nginx:1.22
의 새로운 ssl_pass_phrase_dialog
지시문
nginx:1.22
모듈 스트림에 대한 이번 업데이트를 통해 새로운 ssl_pass_phrase_dialog
지시문을 사용하여 암호화된 각 개인 키에 대해 nginx
시작 시 호출되는 외부 프로그램을 구성할 수 있습니다.
새 지시문을 사용하려면 /etc/nginx/nginx.conf
파일에 다음 행 중 하나를 추가합니다.
암호화된 각 개인 키 파일에 대해 외부 프로그램을 호출하려면 다음을 입력합니다.
ssl_pass_phrase_dialog exec:<path_to_program>;
Nginx
는 다음 두 개의 인수를 사용하여 이 프로그램을 호출합니다.-
server_name
설정에 지정된 서버 이름입니다. -
암호화 알고리즘을 인식할 수 없는 경우
RSA
,DSA
,EC
,DH
또는UNK
알고리즘 중 하나
-
암호화된 각 개인 키 파일의 암호를 수동으로 입력하려면 다음을 입력합니다.
ssl_pass_phrase_dialog builtin;
ssl_pass_phrase_dialog
가 구성되지 않은 경우 기본 동작입니다.이 방법을 사용하지만 암호로 보호되는 개인 키가 하나 이상 있는 경우
nginx
서비스가 시작되지 않습니다. 이 경우 다른 방법 중 하나를 사용합니다.systemctl
유틸리티를 사용하여nginx
서비스를 시작할 때systemd
에서 암호화된 각 개인 키의 암호를 입력하라는 메시지를 표시하려면 다음을 입력합니다.ssl_pass_phrase_dialog exec:/usr/libexec/nginx-ssl-pass-dialog;
nginx
의 ssl_pass_phrase_dialog
지시문은 Apache HTTP 서버의 SSLPassPhraseDialog
지시문과 유사합니다.
새 rhel9/squid
컨테이너 이미지
이제 Red Hat Container Registry에서 rhel9/squid
컨테이너 이미지를 사용할 수 있습니다. squid
는 FTP, gopher 및 HTTP 데이터 오브젝트를 지원하는 웹 클라이언트용 고성능 프록시 캐싱 서버입니다. 기존 캐싱 소프트웨어와 달리 Squid
는 모든 요청을 하나의 비차단, I/O 기반 프로세스로 처리합니다. squid
는 RAM에 캐시된 메타데이터 및 특히 핫 오브젝트를 유지하고, DNS 조회를 캐시하고, 차단되지 않은 DNS 조회를 지원하며 실패한 요청의 음수 캐싱을 구현합니다.
새 컨테이너 이미지를 가져오려면 다음을 실행합니다.
# podman pull registry.redhat.io/rhel9/squid
새 모듈 스트림: redis:7
Redis 7
, 고급 키-값 저장소는 이제 새 모듈 스트림 redis:7
로 사용할 수 있습니다.
Redis 6
의 주요 변경 사항은 다음과 같습니다.
- Redis Functions API의 서버 측 스크립팅
- ACL(Access Control List) 지원
- 클러스터에 대한 공유 게시/서브스크립션(pub/sub) 지원
- 다양한 새로운 명령 및 명령 인수
Redis 7
에는 이전 버전과 호환되지 않는 몇 가지 변경 사항이 도입되었습니다. 예를 들면 다음과 같습니다.
-
Redis 7
에서 폴더에 추가 전용 파일(AOF)을 여러 파일로 저장 -
Redis 7
은 이전 버전과 호환되지 않는 Redis Database(RDB) 파일에 새 버전 형식을 사용합니다.
기능 및 호환되지 않는 변경 사항의 전체 목록은 업스트림 릴리스 노트 를 참조하십시오.
redis:7
모듈 스트림을 설치하려면 다음을 사용합니다.
# dnf module install redis:7
redis
Application Streams 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 을 참조하십시오.
4.13. 컴파일러 및 개발 도구
IBM Z에서 최적화된 루틴 사용에 영향을 주는 새로운 glibc
옵션
IBM Z 아키텍처에서 glibc
라이브러리는 hwcaps
및 stfle
bit과 같은 하드웨어 기능을 기반으로 함수 구현을 선택합니다. 이번 업데이트를 통해 glibc.cpu.hwcaps
튜닝 가능 항목을 설정하여 라이브러리에서 선택한 항목을 지시할 수 있습니다.
Bugzilla:2169978[1]
glibc
의 Intel® Xeon® v5 기반 하드웨어에서 문자열 및 메모리 루틴 성능 개선
이전 버전에서는 glibc
에서 문자열 및 메모리 루틴에 사용하는 기본 캐시 양으로 인해 Intel® Xeon® v5 기반 시스템에서 예상되는 성능보다 낮았습니다. 이번 업데이트를 통해 성능을 개선하기 위해 사용할 캐시 양이 조정되었습니다.
시스템 GCC 컴파일러가 버전 11.4.1로 업데이트
GNU 컴파일러 컬렉션(GCC)은 C, C++ 및 Fortran 프로그래밍 언어를 사용하여 애플리케이션을 개발하는 툴을 제공합니다.
시스템 GCC 컴파일러가 버전 11.4.1로 업데이트되었으며 업스트림 GCC에서 사용 가능한 여러 버그 수정 및 개선 사항이 포함되어 있습니다.
사용법 정보는 RHEL 9에서 C 및 C++ 애플리케이션 개발을 참조하십시오.
GCC에서 레지스터 인수 보존 지원
이번 업데이트를 통해 이제 인수 레지스터 콘텐츠를 스택에 저장하고 적절한 Call Frame Information (CFI)을 생성하여 unwinder가 성능에 부정적인 영향을 미치지 않도록 할 수 있습니다.
Bugzilla:2168204[1]
64비트 Intel 아키텍처의 GCC의 새로운 -mdaz-ftz
옵션
64비트 Intel 아키텍처의 GCC(GNU Compiler Collection) 시스템 버전은 이제 MXCSR 제어 및 상태 레지스터에서 FTZ( flush-to-zero) 및 denormals-are-zero(DAZ) 플래그를 활성화하기 위해 -mdaz-ftz
옵션을 지원합니다.
새로운 GCC 도구 세트 13
GCC Toolset 13은 최신 버전의 개발 도구를 제공하는 컴파일러 툴셋입니다. AppStream 리포지토리에서 소프트웨어 컬렉션 형식으로 Application Stream으로 사용할 수 있습니다.
GCC 컴파일러가 버전 13.1.1으로 업데이트되어 업스트림 GCC에서 사용할 수 있는 많은 버그 수정 및 개선 사항을 제공합니다.
다음 툴 및 버전은 GCC Toolset 13에서 제공합니다.
툴 | 버전 |
---|---|
GCC | 13.1.1 |
GDB | 12.1 |
binutils | 2.40 |
dwz | 0.14 |
annobin | 12.20 |
GCC Toolset 13을 설치하려면 root로 다음 명령을 실행합니다.
# dnf install gcc-toolset-13
GCC Toolset 13에서 툴을 실행하려면 다음을 수행합니다.
$ scl enable gcc-toolset-13 tool
GCC Toolset 13의 툴 버전이 다음 툴의 시스템 버전을 재정의하는 쉘 세션을 실행하려면 다음을 수행합니다.
$ scl enable gcc-toolset-13 bash
자세한 내용은 GCC Toolset 13 및 GCC Toolset 사용을 참조하십시오.
Bugzilla:2171919[1], Bugzilla:2171930
GCC Toolset 13: GCC 버전 13.1.1에 따라 업데이트됨
GCC Toolset 13에서는 GNU 컴파일러 컬렉션(GCC)이 버전 13.1.1으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
일반 개선 사항
OpenMP:
- OpenMP 5.0: Fortran은 이제 일부 비방형 루프 중첩을 지원합니다. GCC 11의 C/C++에 대한 지원이 추가되었습니다.
- 많은 OpenMP 5.1 기능이 추가되었습니다.
- OpenMP 5.2 기능에 대한 초기 지원이 추가되었습니다.
-
새로운 디버그 정보 압축 옵션 값인
-gz=zstd
를 사용할 수 있습니다. -
-Ofast
,-ffast-math
th 및-funsafe-math-optimizations
옵션은 공유 옵션을 사용하여 공유 오브젝트를 생성할 때 부동 소수점 환경을 변경하는 시작 코드를 더 이상 추가하지 않습니다. -
GCC는 이제 정적 분석 도구(예: GCC의
-fanalyzer
)의 결과를 캡처하는 데 적합한 JSON 기반 형식인 SARIF(정적 분석 결과 Interchange Format)를 사용하여 진단을 내보낼 수 있습니다. SARIF를 사용하여 머신에서 읽을 수 있는 형식으로 다른 GCC 경고 및 오류를 캡처할 수도 있습니다. - 링크 타임 최적화가 구현되었습니다.
새로운 언어 및 언어별 개선 사항
C 제품군:
-
새로운
-Wxor-used-as-pow
옵션은 사용자가 지수를 의미할 수 있는 배타적 또는 (^
) 연산자의 사용에 대해 경고합니다. 파일 설명자인
int
인수를 문서화하기 위해 세 가지 새로운 함수 속성이 추가되었습니다.-
attribute((fd_arg(N)))
-
attribute((fd_arg_read(N)))
-
attribute((fd_arg_write(N)))
이러한 속성은
-fanalyzer
에서 파일 설명자의 오용을 감지하는 데도 사용됩니다.-
-
새로운 문 특성,
속성(EXPR));
C++23 이식 가능한 가정에 추가되었습니다. 이 속성은 C 또는 이전 C++에서도 지원됩니다. -
GCC는 이제 해당 배열의 요소에 액세스하기 위해 유연한 배열 멤버로 구조의 후행 배열을 처리할 시기를 제어할 수 있습니다. 기본적으로 집계의 모든 후행 배열은 유연한 배열 멤버로 처리됩니다.By default, all trailing arrays in aggregates are treated as flexible array members. 새로운 명령줄 옵션
-fstrict-flex-arrays
를 사용하여 flexible 배열로 처리할 배열 멤버를 제어합니다.
C:
몇 가지 C23 기능이 구현되었습니다.
-
nullptr
상수를 도입합니다. - 기본 형식을 지정하기 위해 향상된 열거입니다.
- variadic 매개변수 목록의 요구 사항이 완화되었습니다.
-
오브젝트 정의에 대한 유형 유추를 활성화하는
자동
기능이 도입되었습니다. -
개체 정의에 대한
constexpr
지정자가 도입되었습니다. - 복합 리터럴에 대한 스토리지 클래스 지정자가 도입되었습니다.
-
이전에 확장으로 지원되는
typeof
오브젝트 및typeof_unqual
오브젝트를 도입했습니다. -
새로운 키워드 추가:
alignas
,alignof
,bool
,false
,static_assert
,thread_local
,true
. -
[[no return]]
속성을 추가하여 함수가 호출자에게 실행을 반환하지 않도록 지정합니다. - 빈 이니셜라이저에 대한 지원이 추가되었습니다.
-
STDC_VERSION_*_H
헤더 버전 매크로에 대한 지원이 추가되었습니다. -
ATOMIC_VAR_INIT
매크로를 삭제했습니다. -
<
stddef.h&
gt; 헤더에연결할 수 없는
매크로를 추가했습니다. - 제거된 trigraphs입니다.
- 검증되지 않은 함수를 제거합니다.
-
%wN
및%wfN
형식 길이 수정자에 대해-Wformat
옵션을 통해 검사한 Cryostat 및scanf
포멧을 추가했습니다. - 유니코드 Standard Annex(UAX) 31의 식별자 구문 지원이 추가되었습니다.
-
C23에서 채택된 기존 기능은 C23 요구 사항을 따르도록 조정되었으며
-std=c2x -Wpedantic
옵션을 사용하여 진단되지 않습니다.
-
-
새로운
-Wenum-int-mismatch
옵션은 열거된 유형과 정수 유형 간의 불일치에 대해 경고합니다.
C++:
-fexcess-retries 옵션을 통해 과도한 정밀
지원을 구현합니다. 기본적으로-std=c++17
과 같은 엄격한 표준 모드로 활성화됩니다. 여기서 기본값은-fexcess-keygen=standard
입니다.-std=gnu++20
과 같은 GNU 표준 모드에서는 기본값은-fexcess-chrony=fast
이며 이는 이전 동작을 복원합니다.-fexcess-retries
옵션은 다음 아키텍처에 영향을 미칩니다.-
x87 계산을 사용하는 Intel 32 및 64비트에서 x87 계산을 사용하는 경우에 따라
Single
및double
표현식이긴 이중
전체 순서로 평가됩니다. -
Single
표현식이double
precision로 평가되는 64비트 IBM Z 시스템입니다. -
std::
또는float
16_tstd::bfloat16_t
유형을 지원하는 여러 아키텍처에서 이러한 유형은 부동 소수점으로 평가됩니다.
-
x87 계산을 사용하는 Intel 32 및 64비트에서 x87 계산을 사용하는 경우에 따라
C++23에 대한 실험적 지원 개선:
- 복합 문 끝에 레이블에 대한 지원이 추가되었습니다.
- 임시에 대한 참조 바인딩을 감지하기 위해 유형 특성을 추가했습니다.
- 휘발성 복합 작동에 대한 지원을 다시 도입했습니다.
-
#warning
지시문에 대한 지원이 추가되었습니다. - 구분된 이스케이프 시퀀스에 대한 지원이 추가되었습니다.
- 이름이 지정된 범용 문자 이스케이프에 대한 지원이 추가되었습니다.
-
char8_t
유형에 대한 호환성 및 이식성 수정 사항이 추가되었습니다. -
정적
operator()
함수 개체가 추가되었습니다. - 단순화된 암시적 이동
- 표현식에서 같음을 다시 작성하는 것은 이제 변경 사항이 적습니다.
- 무제한으로 사용할 수 없는 문자 리터럴과 광범위한 다중 문자 리터럴을 제거합니다.
-
몇 가지
constexpr
기능 제한 사항을 완화했습니다. - 확장된 부동 소수점 유형 및 표준 이름입니다.
- 이식 가능한 가정을 구현합니다.
- UTF-8에 대한 지원이 이식 가능한 소스 파일 인코딩 표준으로 추가되었습니다.
-
정적
operator[]
하위 스크립트에 대한 지원이 추가되었습니다.
새로운 경고:
-
-Wself-move
는std::move
를 사용하여 값을 자체적으로 이동할 때 경고합니다. -
-Wdangling-reference
는 라이프 사이클이 종료된 임시로 참조가 바인딩될 때 경고합니다. -
더 많은 상황에서 경고하도록
-Wpessimizing-move
및-Wredundant-move
경고가 확장되었습니다.
-
-
새로운
-nostdlib++
옵션을 사용하면 C++ 표준 라이브러리에서 암시적으로 연결하지 않고도g++
와 연결할 수 있습니다.
libstdc++
런타임 라이브러리의 변경 사항
다음을 포함하여 C++20에 대한 실험적 지원 개선:
-
<
format>
; 헤더와std::format
함수를 추가했습니다. -
std::
, 기타 클럭, 시간대,chrono
::utc_clockstd::format
함수에 대한 <chrono> 헤더에 지원이 추가되었습니다.
-
<
다음을 포함하여 C++23에 대한 실험적 지원 개선:
-
<
ranges> 헤더에
추가되었습니다.views::zip
_transformviews::adjacent
_transform ,views::adjacent_transform
,views::pairwise
,
_by ,views:
:chunkviews::chunk_by
,views::repeat
,views::chunk_by
,views::cartesian_product
,views::as_rvalue
,views::enumerate
,views::as_const
. -
<
algorithm> 헤더에
추가:ranges::contains
_subrangeranges::iota
, ranges::find_last ,ranges::find_last
_if ,ranges::find_last_if
,ranges::find_if_not , ranges::fold_
left ,ranges::fold_left
_first ,ranges::fold_left_first
,ranges::fold_right
,ranges::fold_right_last
,ranges::fold_left_with_iter
,ranges::fold_left_first_with_iter
. -
std::expected
클래스 템플릿에 대한 monadic 작업을 지원합니다. -
std::bitset
,std::to_chars
및std::from_chars
함수에constexpr
수정자를 추가했습니다. - 확장 부동 소수점 유형에 대한 라이브러리 지원이 추가되었습니다.
-
<
-
Library Cryostatals
<experimental/scope>
Technical Specification (TS)의 버전 3에서 헤더에 대한 지원이 추가되었습니다. -
Concurrency TS 버전 2에서
<experimental/synchronized_value>
헤더에 대한 지원이 추가되었습니다. 이전에 사용할 수 없는 많은 기능에 대한 지원이 무료로 추가되었습니다. 예를 들면 다음과 같습니다.
-
std::튜플
클래스 템플릿을 무료로 컴파일할 수 있습니다. -
libstdc++
라이브러리는std::array
및std::string_view
와 같은 자유 하위 집합에 구성 요소를 추가합니다. -
libstdc++
라이브러리는 이제-ffree
espite 컴파일러 옵션을 사용하므로libstdc++
라이브러리의 별도의 무료 설치를 빌드할 필요가 없습니다.libstdc++
라이브러리가 전체 호스팅 구현으로 빌드된 경우에도-ffree
espite로 사용 가능한 기능을 freestanding 하위 집합으로 제한합니다.
-
새로운 대상 및 대상별 개선 사항
64비트 ARM 아키텍처:
-
-march=
옵션에 대한armv9.1-a
,armv9.2-a
,armv9.3-a
인수에 대한 지원이 추가되었습니다.
32비트 및 64비트 AMD 및 Intel 아키텍처:
-
C 및 C++ 모두에서
__bf16
유형은 Streaming ScanSettingD Extensions 2 이상이 활성화된 시스템에서 지원됩니다. -
이제 실제
__bf16
유형이AVX512BF16
명령어 내장에 사용됩니다. 이전에는__bfloat16
.hort16이 사용된 typedef입니다. GCC 12를 GCC 13으로 업그레이드할 때AVX512BF16
관련 소스 코드를 조정합니다. 다음 Intel 명령어를 지원하기 위해 새로운 Instruction Set Architecture (ISA) 확장을 추가했습니다.
-
명령 내장이
-mavxifma
컴파일러 스위치를 통해 사용할 수 있는AVX-IFMA
입니다. -
-mavxvnniint8
컴파일러 스위치를 통해 내장 명령어를 사용할 수 있는AVX-VNNI-INT8
-
명령 내장을 통해
-mavxneconvert
컴파일러 스위치를 통해 사용할 수 있는AVX-NE-CONVERT
. -
-mcmpccxadd
컴파일러 스위치를 통해 내장 명령어를 사용할 수 있는CMPccXADD
. -
AMX-FP16
명령어 내장을 통해-mamx-fp16
컴파일러 스위치를 사용할 수 있습니다. -
-mprefetchi
컴파일러 스위치를 통해 내장 명령어를 사용할 수 있는PREFETCHI
. -
-mraoint
컴파일러 스위치를 통해 내장 명령어를 사용할 수 있는RAO-INT
. -
AMX-COMPLEX
는-mamx-complex
컴파일러 스위치를 통해 내장 명령어를 사용할 수 있습니다.
-
명령 내장이
-
GCC는
-march=
컴파일러 스위치를 통해 znver4 코어를 기반으로 AMD CPU를 지원합니다. 스위치는 GCC가 자동 벡터를 사용할 때 512비트 벡터를 사용하는 것을 고려합니다.znver4
정적 분석기 개선
정적 분석기에는 20개의 새로운 경고가 추가되었습니다.
-
-Wanalyzer-allocation-size
-
-Wanalyzer-deref-before-check
-
-Wanalyzer-exposure-through-uninit-copy
-
-Wanalyzer-imprecise-fp-arithmetic
-
-Wanalyzer-infinite-recursion
-
-Wanalyzer-jump-through-null
-
-Wanalyzer-out-of-bounds
-
-Wanalyzer-putenv-of-auto-var
-
-Wanalyzer-tainted-assertion
파일 설명자의 오용과 관련된 7 가지 새로운 경고:
-
-Wanalyzer-fd-access-mode-mismatch
-
-Wanalyzer-fd-double-close
-
-Wanalyzer-fd-leak
-
-Wanalyzer-fd-phase-mismatch
(예:listen
를 호출하기 전에 소켓에서accept
를 호출) -
-Wanalyzer-fd-type-mismatch
(예: 데이터그램 소켓에서 스트림 소켓 사용) -
-Wanalyzer-fd-use-after-close
-Wanalyzer-fd-use-without-check
-
또한
open
,close
,creat
,dup2
,
, pipe , pipe ,dup
3
,pipe
2read
및write
함수의 동작에 대한 특수 캐스팅 처리를 구현합니다.
-
또한
-
<
stdarg.h>
헤더의 오용에 대한 새로운 경고 4가지:-
-Wanalyzer-va-list-leak
는va_start
또는va_copy
매크로 이후va_end
매크로가 누락되었다고 경고합니다. -
-Wanalyzer-va-list-use-va-end
는va_arg
또는va_copy
매크로가 호출된va_list
오브젝트 유형에서 사용되는 va_arg 또는va_
copy 매크로에 대해 경고합니다. -
-Wanalyzer-va-arg-type-mismatch
type-checksva_arg
macro usage in interprocedural execution paths that were actually passed to the variadic call. -
-Wanalyzer-va-list-exhausted
va_arg
매크로가 절차 간 실행 경로에va_list
오브젝트 유형에서 너무 여러 번 사용되면 경고 메시지가 표시됩니다.
-
-
- 다른 많은 개선사항
이전 버전과 호환되지 않는 변경 사항
C ++의 경우 std::cout
과 같은 글로벌 iostream 오브젝트의 구성은 이제 < iostream
> 헤더를 포함하는 모든 소스 파일에서 대신 표준 라이브러리 내에서 수행됩니다. 이러한 변경으로 인해 C++ 프로그램의 시작 성능이 향상되지만 런타임 시 올바른 버전의
libstdc++.so
를 사용하지 않으면 GCC 13.1로 컴파일된 코드가 충돌하게 됩니다. 런타임 시 올바른 libstdc++.so
사용에 대한 설명서 를 참조하십시오. 향후 GCC 릴리스는 호환되지 않는 libstdc++.so
를 사용하여 프로그램을 전혀 실행할 수 없도록 문제를 완화합니다.
Bugzilla:2172093[1]
GCC Toolset 13: annobin
을 버전 12.20으로 재조정
GCC Toolset 13은 annobin
패키지 버전 12.20을 제공합니다. 주요 개선 사항은 다음과 같습니다.
-
annobin
노트를 별도의 디버그 정보 파일로 이동하는 지원이 추가되었습니다. 이렇게 하면 실행 가능한 바이너리 크기가 줄어듭니다. - 새로운 작은 노트 형식에 대한 지원이 추가되어 별도의 debuginfo 파일의 크기와 이러한 파일을 만드는 데 걸리는 시간이 줄어듭니다.
Bugzilla:2171923[1]
GCC Toolset 13: GDB는 버전 12.1에 재기반
GCC Toolset 13은 GDB 버전 12.1을 제공합니다.
주요 버그 수정 및 개선 사항은 다음과 같습니다.
-
GDB는 이제 기본적으로 소스 코드 및 디스어셈블러의 스타일을 지정합니다. 스타일링이 GDB의 자동화 또는 스크립팅을 방해하는 경우
maint set gnu-source-highlight enabled off
및maint set style disassembler enabled off
명령을 사용하여 비활성화할 수 있습니다. -
GDB는 이제 내부 오류가 발생할 때마다 backtraces를 표시합니다. 스크립트 또는 자동화에 영향을 미치는 경우
maint set backtrace-on-fatal-signal off
명령을 사용하여 이 기능을 비활성화할 수 있습니다.
C/C++ 개선 사항:
- GDB는 이제 함수 과부하와 유사하게 C++ 템플릿을 포함하는 함수 또는 유형을 처리합니다. 매개 변수 목록을 생략하여 여러 템플릿 유형으로 구성된 유형 또는 함수를 포함하여 템플릿 함수 제품군에서 Cryostat를 설정할 수 있습니다. 탭 완료도 비슷한 개선 사항을 가져왔습니다.
터미널 사용자 인터페이스(TUI):
Tui 레이아웃
Tui 중점
Tui 새로 고침
Tui 창 높이
이전레이아웃
의 새 이름,focus
,새로 고침
및winheight
TUI 명령입니다. 이전 이름은 이러한 새 명령에 대한 별칭으로 계속 존재합니다.Tui 창 너비
winwidth
새로운
tui window width
명령 또는winwidth
별칭을 사용하여 창이 수평 모드로 설정될 때 TUI 창의 너비를 조정합니다.info win
이 명령에는 출력에 TUI 창의 너비에 대한 정보가 포함됩니다.
MIT(Machine Interface) 변경:
- Mini 인터프리터의 기본 버전은 이제 4 (-i=mi4)입니다.
-
플래그가 없는
-add-inferior
명령은 현재 유추 연결을 상속합니다. 이렇게 하면 버전 10 이전의 GDB 동작이 복원됩니다. -
-add-inferior
명령은 이제 연결 없이 새 유추를 시작할 수 있는--no-connection
플래그를 허용합니다. Cryostat 출력의
script
필드(simum 3 및 이전 버전에서 구문적으로 잘못된 경우)의 스크립트가 list가 되었습니다. 이는 다음 명령 및 이벤트에 영향을 미칩니다.-
-break-insert
-
-break-info
-
=breakpoint-created
=breakpoint-modified
-fix-breakpoint-script-output
명령을 사용하여 이전 버전의 새 동작을 활성화합니다.
-
새 명령:
maint set internal-error backtrace [on|off]
maint show internal-error backtrace
maint set internal-warning backtrace [on|off]
maint show internal-warning backtrace
GDB는 내부 오류 또는 내부 경고가 발생할 때 자체 역추적을 출력할 수 있습니다. 이는 기본적으로 내부 오류에 대해 활성화되며 내부 경고에 대해 기본적으로 비활성화되어 있습니다.
종료
기존
quit
명령 외에도 새exit
명령을 사용하여 GDB를 종료할 수 있습니다.maint set gnu-source-highlight enabled [on|off]
maint show gnu-source-highlight enabled
소스 코드에 스타일링을 추가하기 위해 GNU 소스 Highlight 라이브러리를 활성화하거나 비활성화합니다. 비활성화된 경우 사용 가능한 경우에도 라이브러리가 사용되지 않습니다. GNU Source Highlight 라이브러리를 사용하지 않는 경우 Python Pygments 라이브러리가 대신 사용됩니다.set suppress-cli-notifications [on|off]
suppress-cli-notifications 표시
CLI용으로 알림 인쇄가 비활성화되었는지 여부를 제어합니다. CLI 알림은 선택한 컨텍스트(예: 현재 유추, 스레드 또는 프레임)를 변경하거나 디버깅 중인 프로그램이 중지될 때 발생합니다(예: build를 적중하거나 source-stepping 완료 또는 인터럽트 완료).
설정 스타일 disassembler enabled [on|off]
스타일 디스어셈블러 표시
이 명령을 활성화하면 GDB가 Python 지원으로 컴파일되고 Python Pygments 패키지를 사용할 수 있는 경우 명령은 디스어셈블러 출력에 스타일링을 적용합니다.
변경된 명령:
로깅 설정 [on|off]
더 이상 사용되지 않으며
설정된 로깅이 활성화된 [on|off]
명령으로 교체되었습니다.출력
/x
와 같은 기본 형식을 사용하여 부동 소수점 값 인쇄가 필수 베이스에 값의 기본 바이트를 표시하도록 변경되었습니다.clone-inferior
이제
clone-inferior
명령으로TTY
,CMD
및ARGs
설정이 원래 유추에서 새 설정으로 복사되도록 합니다.set environment
또는unset environment
명령을 사용하여 수행한 환경 변수에 대한 모든 수정 사항은 새 유추에도 복사됩니다.
Python API:
-
새로운
gdb.add_history()
함수는gdb.Value
개체를 사용하여 GDB의 기록 목록에 나타내는 값을 추가합니다. 함수는 기록 목록에 있는 새 항목의 인덱스인 정수를 반환합니다. -
새로운
gdb.history_count()
함수는 GDB의 값 기록의 값 수를 반환합니다. -
새로운
gdb.events.gdb_exiting
이벤트는 GDB 종료 코드 값을 포함하는 읽기 전용 속성exit_code
가 있는gdb.GdbExitingEvent
오브젝트를 사용하여 호출됩니다. 이 이벤트는 GDB가 내부 상태를 정리하기 전에 GDB가 종료되기 전에 트리거됩니다. -
새로운
gdb.architecture_names()
함수는 가능한 모든Architecture.name()
값을 포함하는 목록을 반환합니다. 각 항목은 문자열입니다. -
새로운
gdb.Architecture.integer_type()
함수는 크기와 부호 있는 범위 지정 정수 유형을 반환합니다. -
새로운
gdb.TargetConnection
오브젝트 유형은 연결을 나타냅니다(info connections
명령으로 표시됨). 하위 클래스gdb.RemoteTargetConnection
은원격
및확장 원격
연결을 나타냅니다. -
gdb.Inferior
유형에는 이 유추에서 사용하는연결
인gdb.TargetConnection
오브젝트의 인스턴스인 연결 속성이 있습니다. 이 경우 열등호가 연결되지 않은 경우None
이 될 수 있습니다. -
새로운
gdb.events.connection_removed
이벤트 레지스트리는 GDB에서 연결이 제거될 때gdb.ConnectionEvent
이벤트를 내보냅니다. 이 이벤트에는 제거 중인연결에
대한gdb.TargetConnection
오브젝트인 connection 속성이 있습니다. -
새로운
gdb.connections()
함수는 현재 활성 상태인 모든 연결 목록을 반환합니다. -
새로운
gdb.RemoteTargetConnection.send_packet(PACKET)
방법은 기존maint 패킷
CLI 명령과 동일합니다. 이를 사용하여 지정된 패킷을 원격 대상으로 보낼 수 있습니다. -
새로운
gdb.host_charset()
함수는 현재 호스트 문자 세트의 이름을 문자열로 반환합니다. -
새로운
gdb.set_parameter(NAME,VALUE)
함수는 GDB 매개변수NAME
을VALUE
로 설정합니다. -
새로운
gdb.with_parameter(NAME,VALUE)
함수는 GDB 매개변수NAME
을VALUE
로 임시로 설정한 다음 컨텍스트가 종료될 때 이를 재설정하는 컨텍스트 관리자를 반환합니다. -
gdb.Value.format_string
메서드는 부울인스타일링
인수를 사용합니다.true
인 경우 반환된 문자열에는 스타일링을 적용하는 이스케이프 시퀀스가 포함될 수 있습니다. 스타일링은 GDB에서 스타일링이 켜진 경우에만 존재합니다 (styling 설정 도움말
참조 ). 경우false
, 이는스타일
인수가 제공되지 않는 경우 기본값이며 반환된 문자열에 스타일링이 적용되지 않습니다. -
새로운 읽기 전용 속성
gdb.InferiorThread.details
는 추가 대상별 스레드 상태 정보를 포함하는 문자열이거나 이러한 추가 정보가 없는 경우None
입니다. -
새로운 읽기 전용 속성
gdb.Type.is_scalar
는 스칼라 유형의 경우True
이고 다른 모든 유형의 경우False
입니다. -
새로운 읽기 전용 속성
gdb.Type.is_signed
는Type.is_scalar
가True
이고 다른 모든 유형의 경우True
가 됩니다.비스칼라 유형에 대한 이 속성을 읽으려고 하면
ValueError
가 발생합니다. - 이제 Python으로 구현된 GDB 및>-< 명령을 추가할 수 있습니다.
자세한 내용은 업스트림 릴리스 노트를 참조하십시오.
Bugzilla:2172096[1]
GCC Toolset 13: bintuils
는 버전 2.40으로 재기반
GCC Toolset 13은 binutils
패키지 버전 2.40을 제공합니다. 주요 개선 사항은 다음과 같습니다.
링커:
-
링커의 새로운
-w
(--no-warnings
) 명령줄 옵션은 경고 또는 오류 메시지 생성을 표시하지 않습니다. 이 기능은 작동하지 않는 바이너리를 생성해야 하는 경우에 유용합니다. 이제 ELF 링커가 다음과 같은 경고 메시지를 생성합니다.
- 스택이 실행 가능하게 되어 있습니다.
-
읽기
,쓰기
및eXecute
권한 세트를 모두 사용하여 메모리 상주 세그먼트를 생성합니다. eXecute
권한 세트를 사용하여 스레드 로컬 데이터 세그먼트를 생성합니다.--no-warn-exec-stack
또는--no-warn-rwx-segments
옵션을 사용하여 이러한 경고를 비활성화할 수 있습니다.
- 링커에서 임의의 JSON 형식 메타데이터를 생성한 바이너리에 삽입할 수 있습니다.
기타 툴:
-
파일 헤더 및 PE(Portable Executable) 형식 파일의 섹션 헤더에 필드를 표시하는 새로운
objdump
툴의--private
옵션입니다. -
objcopy
및 ELF 파일에서 ELF 섹션 헤더를 제거하는 유틸리티를 제거하는 새로운--strip-section-headers
명령줄 옵션입니다. -
objdump
유틸리티에 대한 새로운--show-all-symbols
명령줄 옵션은 주소와 일치하는 첫 번째 기호만 표시하는 기본 함수와 달리 지정된 주소와 일치하는 모든 기호를 표시하는 것입니다. -
nm
유틸리티에 대한 새로운-W
(--no-weak
) 옵션은 약한 기호를 무시하도록 합니다. 이제
objdump
유틸리티에서 일부 아키텍처의 disassembler 출력 구문 강조 표시 기능을 지원합니다. MODE는 다음 중 하나로--disassembler-color= MODE
명령줄 옵션을 사용합니다.-
off
-
color
- 이 옵션은 모든 터미널 에뮬레이터에서 지원됩니다. -
Extended-color
- 이 옵션은 모든 터미널 에뮬레이터에서 지원하지 않는 8비트 색상을 사용합니다.
-
Bugzilla:2171926[1]
libabigail
버전 2.3으로 업데이트
libabigail
패키지가 버전 2.3으로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.
- BTF debuginfo 형식이 지원됩니다.
- Ada 범위 유형에 대한 지원 개선
-
억제 사양의 새로운
[allow_type]
지시문이 지원됩니다. -
[supress_type]
억제 사양에 대해 다양한 새 속성을 추가했습니다. - ABIXML 파일 형식이 버전 2.2로 업데이트되었습니다.
- 라이브러리의 SONAME은 자체 ABI 변경 사항을 반영하도록 변경되었습니다.
libabigail
패키지는 CRB(CodeReady Linux Builder) 리포지토리에서 사용할 수 있습니다. CodeReady Linux Builder 리포지토리에 포함된 패키지는 지원되지 않습니다.
debugedit
의 find-debuginfo
스크립트에서 -q
(--quiet
) 플래그를 지원
이번 업데이트를 통해 debugedit
유틸리티에서 find-debuginfo
스크립트의 -q
(--quiet
) 플래그를 사용하여 스크립트의 비 오류 출력을 음소거할 수 있습니다.
Valgrind 버전 3.21.0으로 업데이트
Valgrind가 3.21.0 버전으로 업데이트되었습니다. 주요 개선 사항은 다음과 같습니다.
-
--vgdb-stop-at=event1 의 새로운
옵션은 프로그램이 0이 아닌 종료 코드와 같이 비정상적으로 종료될 때abexit
값,event2,…gdbserver
유틸리티를 알립니다. 새로운
--enable-debuginfod=[yes|no]
옵션은DEBUGINFOD_URLS
환경 변수에 나열된debuginfod
서버를 사용하여 Valgrind에서 실행되는 프로그램에 대한 누락된 DWARF debuginfo 정보를 가져오도록 Valgrind에 지시합니다. 이 옵션의 기본값은yes
입니다.참고DEBUGINFOD_URLS
환경 변수는 기본적으로 설정되지 않습니다.- Valgrind는 이제 GDB Python 명령을 제공합니다. 이러한 GDB 프런트 엔드 명령은 GDB 명령줄 인터페이스에서 더 나은 통합을 제공합니다. 이러한 이점은 GDB 자동 완성 및 명령별 도움말을 검색하여 정규식과 일치하는 명령 또는 명령 도움말입니다. 관련 모니터링 명령의 경우 GDB는 인수를 평가하여 모니터 명령 사용을 단순화합니다.
-
이제
Cryostatdb
유틸리티는--multi
옵션으로 호출할 때 확장 원격 프로토콜을 지원합니다. GDBrun
명령은 이 모드에서 지원되며 결과적으로 단일 터미널에서 GDB 및 Valgrind를 실행할 수 있습니다. -
malloc
-zero-bytes-frees=[yes|no]
옵션을 사용하여malloc()
호출을 차단하는 툴에 대해 크기가 0인realloc()
함수의 동작을 변경할 수 있습니다. -
memcheck
툴은 이제 크기가 0인realloc()
함수의 사용에 대한 검사를 수행합니다. 새로운--show-realloc-size-zero=[yes|no]
스위치를 사용하여 이 기능을 비활성화합니다. -
helgrind
툴에 새로운--history-backtrace-size=value
옵션을 사용하여 이전 액세스의 스택 추적에 기록할 항목 수를 구성할 수 있습니다. -
--cache-sim=[yes|no]
cachegrind
옵션은 기본값이no
이며 결과적으로 명령어 캐시 읽기 이벤트만 기본적으로 수집됩니다. -
cg_annotate
,cg_diff
,cg_merge
cachegrind
유틸리티의 소스 코드가 다시 작성되었으며 결과적으로 유틸리티에서 보다 유연한 명령줄 옵션을 처리할 수 있습니다. 예를 들어--show-percs
및--no-show-percs
옵션과 기존--show-percs=yes
및--show-percs=no
옵션을 지원합니다. -
cg_annotate
cachegrind
유틸리티는 diffing(-diff ,--
mod-filename--mod-funcname
옵션 사용) 및 병합(여러 데이터 파일을 전달하여)을 지원합니다. 또한cg_annotate
는 이제 파일 및 기능 수준에서 더 많은 정보를 제공합니다. -
DHAT
툴에 대한 새로운 사용자 요청을 사용하면 메모리 블록에 대한 액세스 수 히스토그램의 1024바이트 제한을 덮어쓸 수 있습니다.
이제 다음과 같은 새로운 아키텍처별 명령 세트가 지원됩니다.
64-bit ARM:
- v8.2 스칼라 및 벡터 부동 소수점 Absolute difference (FABD), 유동-포인트 Absolute Compare greaterer than or Equal (FACGE), floating-point Absolute Compare Greater Than (FACGT), FADD(유동-point Add) 지침.
- v8.2 유동점(FP) 비교 및 조건부 비교 지침.
- v8.2 floating-point (FP)의 제로 변형은 지침을 비교합니다.
64비트 IBM Z:
-
기타 -instruction-extensions 기능 3
및벡터 강화 시설 2에
대한 지원 이를 통해 Valgrind에서-march=arch13
또는-march=z15
옵션으로 컴파일된 프로그램을 실행할 수 있습니다.
-
IBM Power:
- ISA 3.1 지원이 완료되었습니다.
- ISA 3.0은 이제 deliver a random number (darn) 명령어를 지원합니다.
- ISA 3.0은 이제 시스템 호출 벡터(scv) 명령어를 지원합니다.
- ISA 3.0은 이제 copy, paste, cpabort 명령어를 지원합니다.
SystemTap
버전 4.9로 업데이트
systemtap
패키지가 버전 4.9로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.
-
LSP( Language-Server-Protocol) 백엔드에서는 LSP 가능 편집기에서
systemtap
스크립트를 보다 쉽게 대화형으로 작성할 수 있습니다. - Python/Jupyter 대화형 노트북 프런트 엔드에 액세스할 수 있습니다.
- DWARF 5비트 필드 처리 개선.
elfutils
버전 0.189로 업데이트
elfutils
패키지가 버전 0.189로 업데이트되었습니다. 주요 개선 사항 및 버그 수정은 다음과 같습니다.
libelf
-
elf_compress
툴은ELFCOMPRESS_ZSTD
ELF 압축 유형을 지원합니다. libdwfl
-
이제
dwfl_module_ return_value_location
함수는DW_TAG_unspecified_type
유형 태그를 가리키는 DWARF Information Entries(DIEs)의 0( 반환 유형 없음)을 반환합니다. eu-elfcompress
-
-t
및--type=
옵션은zstd
인수를 통해 Zstandard(zstd
) 압축 형식을 지원합니다.
버전 4.13에 따라 libpfm
업데이트
libpfm
패키지가 버전 4.13으로 업데이트되었습니다. 이번 업데이트를 통해 libpfm
은 다음 프로세서 마이크로 아키텍처의 성능 모니터링 하드웨어 기본 이벤트에 액세스할 수 있습니다.
- AMD Cryostat 2
- AMD Cryostat 3
- AMD Cryostat 4
- ARM Neoverse N1
- ARM Neoverse N2
- ARM Neoverse V1
- ARM Neoverse V2
- IBM z16
- 4th Generation Intel® Xeon® Scalable Processors
Bugzilla:2185652, Bugzilla:2047720, Bugzilla:2111940, Bugzilla:2111924, Bugzilla:2111930, Bugzilla:2111933, Bugzilla:2111957, Bugzilla:2111946, Bugzilla:2111946
Papi에서
새로운 프로세서 마이크로 아키텍처 지원
이번 개선된 기능을 통해 다음 프로세서 마이크로 아키텍처에서 papi
이벤트를 사전 설정하여 성능 모니터링 하드웨어에 액세스할 수 있습니다.
- AMD Cryostat 2
- AMD Cryostat 3
- ARM Neoverse N1
- ARM Neoverse N2
- ARM Neoverse V1
- ARM Neoverse V2
Bugzilla:2111923[1], Bugzilla:2111947, Bugzilla:2111942
Papi에서
64비트 ARM 프로세서에 대한 빠른 성능 이벤트 수 읽기 작업 지원
이전에는 64비트 ARM 프로세서에서 모든 성능 이벤트 카운터 읽기 작업에서 리소스 집약적인 시스템 호출을 사용해야 했습니다. Papi가
64비트 ARM에 대해 업데이트되어 성능 카운터와 함께 프로세스 모니터링이 성능 이벤트 카운터의 더 빠른 사용자 공간 읽기를 사용할 수 있도록 업데이트되었습니다. /proc/sys/kernel/perf_user_access
매개변수를 1로 설정하면 papi
의 평균 클럭 사이클 수가 724 사이클에서 29 사이클로 단축됩니다.
Bugzilla:2186927[1]
LLVM Toolset이 버전 16.0.6으로 업데이트됨
LLVM Toolset이 버전 16.0.6으로 업데이트되었습니다.
주요 개선 사항은 다음과 같습니다.
- 최적화 개선
- 새로운 CPU 확장 지원
- 새로운 C++ 버전에 대한 지원 개선
주요 이전 버전과 호환되지 않는 변경 사항은 다음과 같습니다.
-
Clang의 기본 C++ 표준은 이제
gnu++14
대신gnu++17
입니다. -
-Wimplicit-function-dec declarationation
,-Wimplicit-int
및-Wincompatible-function-pointer-types
옵션은 이제 C 코드의 오류로 기본 설정됩니다. 이는 구성 스크립트의 동작에 영향을 미칠 수 있습니다.
기본적으로 Clang 16은 GCC Toolset 13에서 제공하는 libstdc++
라이브러리 버전 13 및 binutils 2.40
을 사용합니다.
자세한 내용은 LLVM 릴리스 노트 및 Clang 릴리스 노트를 참조하십시오.
버전 1.71.1에 따라 rust Toolset
rust Toolset이 버전 1.71.1으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
- 성능을 개선하기 위해 여러 생산자, 단일 소비자(mpsc) 채널의 새로운 구현
-
crates.io
레지스트리를 보다 효율적으로 사용하기 위한 새로운 카고스파스
인덱스 프로토콜 -
일회성 값 초기화를 위한 새로운
OnceCell
및OnceLock
유형 -
새로운
C-unwind
ABI 문자열 Foreign Function Interface (FFI) 경계에서 강제로 unwinding을 사용할 수 있도록 하는 새로운 C-unwind ABI 문자열
자세한 내용은 일련의 업스트림 릴리스 알림을 참조하십시오.
Rust profiler_builtins
런타임 구성 요소를 사용할 수 있음
이번 개선된 기능을 통해 Rust profile_builtins
런타임 구성 요소를 사용할 수 있습니다. 이 런타임 구성 요소는 다음과 같은 컴파일러 옵션을 활성화합니다.
-c instrument-coverage
- 적용 범위 프로파일링 활성화
-c profile-generate
- 프로필 가이드 최적화 활성화
Bugzilla:2227082[1]
Go Toolset을 버전 1.20.10으로 업데이트
Go Toolset이 버전 1.20.10으로 업데이트되었습니다.
주요 개선 사항은 다음과 같습니다.
-
내부 표현에 의존하지 않고 슬라이스와 문자열을 처리하기 위해
안전하지 않은
패키지에 추가된 새로운 함수입니다. - 유사 유형은 이제 유사한 제약 조건을 충족할 수 있습니다.
-
새로운
crypto/ecdh
패키지입니다. -
go build
및go test
명령은 더 이상-i
플래그를 허용하지 않습니다. -
go generate
및go test
명령에서-skip 패턴
옵션을 허용합니다. -
go build
,go install
및 기타 빌드 관련 명령에서-pgo
및-cover
플래그를 지원합니다. -
이제
go
명령은 C 툴체인이 없는 시스템에서 기본적으로cgo
를 비활성화합니다. -
go version -m
명령은 이제 더 많은 Go 바이너리 유형 읽기를 지원합니다. -
이제
go
명령은 C 툴체인이 없는 시스템에서 기본적으로cgo
를 비활성화합니다. - 단위 테스트에서만 수집하는 대신 애플리케이션 및 통합 테스트에서 코드 범위 프로필 수집에 대한 지원이 추가되었습니다.
Bugzilla:2185259[1]
PCP
버전 6.0.5로 업데이트
pcp
패키지가 버전 6.0.5로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
수집기 툴 기능
pmdaproc
:- 최근 커널에서 per-cgroup IRQ PSI 지표에 대한 지원이 추가되었습니다.
-
새
proc.smaps.pss_dirty
메트릭 추가
-
pmdasmart
: NVME 디스크 정보 및 전원 상태 메트릭 추가 pmdalinux
:- 최근 커널에서 시스템 전체 IRQ PSI 메트릭에 대한 지원 추가
- NUMA 외부 메모리 조각화 지표 추가
- 새로운 네트워킹(TCP, ICMP) 지표 추가
-
pmdaoverhead
: 프로세스 그룹의 오버헤드를 측정하는 새로운 PMDA -
pmdahacluster
: Pacemaker 2.1.5crm_mon
출력 변경 사항을 처리하도록 업데이트됨
모니터링 툴 기능
pmieconf
:- 웹 후크 작업 지원 추가(Event Driven Ansible)
-
파일 설명자 제한을 확인하는 새
pmie
규칙 추가
-
pcp2json
: HTTP POST를 보내는 옵션과 함께 확장pcp2json
-
PCP-atop
: 추가된cgroup
, NUMA 메모리 및 NUMA CPU 지원 -
PCP-htop
: 새로운 열린 파일 디스크립터에 대한 지원 추가 -
PCP-ps
: 여러 아카이브 샘플을 표시하는 기능이 추가되었습니다.
PCP의 pmie
유틸리티에서 Webhook 이벤트 생성 지원
PCP(Performance Co- Cryostat)의pmie
(Performance Metrics Inference Engine) 유틸리티에서 Webhook 이벤트 생성을 지원합니다. 이번 업데이트를 통해 pmie
규칙이 이벤트 기반 Ansible(EDA)에서 사용하는 형식으로 이벤트를 생성합니다. 결과적으로 EDA는 PCP 규칙에 응답할 수 있습니다.
이 기능을 활성화하려면 지정된 끝점(URL)의 Webhook에 전송할 모든 로컬 pmie
규칙을 구성합니다.
# pmieconf modify global webhook_endpoint https://localhost:443/<endpoint> # pmieconf modify global webhook_action yes
Grafana
버전 9.2.10으로 재기반
grafana
패키지가 버전 9.2.10으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
- 이제 Grafana 전체에서 heatmap 패널이 사용됩니다.
- Geomaps는 이제 거리와 영역을 모두 측정할 수 있습니다.
- Alertmanager는 이제 Prometheus Alertmanager 버전 0.24를 기반으로 합니다.
-
Grafana 경고 규칙은 기본적으로 실행
오류
또는 타임아웃에 오류 상태를 반환합니다. - 이제 공용 대시보드에서 표현식을 사용할 수 있습니다.
- 이제 조인 변환에서 내부 조인을 지원합니다.
- 공용 대시보드를 사용하면 Grafana 대시보드를 공유할 수 있습니다.
- 이제 새로운 Prometheus 스트리밍 구문 분석기를 옵트인 기능으로 사용할 수 있습니다.
자세한 내용은 업스트림 릴리스 노트를 참조하십시오.
Grafana에서 더 이상 약한 암호화 암호를 활성화하지 않음
이번 업데이트를 통해 Grafana는 보안 통신 암호화에 약한 것으로 간주되는 암호를 더 이상 활성화하지 않습니다. 영향을 받는 암호는 다음과 같습니다.
-
AES128-GCM-SHA256
-
AES128-SHA
-
AECDHE-RSA-AES128-SHA
-
AES256-GCM-SHA384
-
AES256-SHA
-
ECDHE-RSA-AES256-SHA
Bugzilla:2190025[1]
.NET 8.0 사용 가능
Red Hat Enterprise Linux 9.3은 .NET 버전 8.0과 함께 배포됩니다. 주요 개선사항은 다음과 같습니다.
- C#12 및 F#8 언어 버전에 대한 지원이 추가되었습니다.
- .NET 소프트웨어 개발 키트를 사용하여 컨테이너 이미지 빌드에 대한 지원이 추가되었습니다.
- 가비지 수집기(GC),JIT(Just-In-Time) 컴파일러 및 기본 라이브러리의 많은 성능 개선
Jira:RHELPLAN-164399[1]
4.14. IdM (Identity Management)
Samba
버전 4.18.6으로 업데이트
samba
패키지가 업스트림 버전 4.18.6으로 업그레이드되어 이전 버전에 대한 버그 수정 및 개선 사항을 제공합니다. 주요 변경 사항:
- 이전 릴리스의 보안 개선으로 인해 메타데이터가 높은 워크로드를 위해 SMB(Server Message Block) 서버의 성능에 영향을 미쳤습니다. 이번 업데이트에서는 이 시나리오의 성능이 향상됩니다.
-
새로운
wbinfo --change-secret-at=<domain_controller
> 명령은 지정된 도메인 컨트롤러에서 신뢰 계정 암호 변경을 적용합니다. -
기본적으로 Samba는 ACL(액세스 제어 목록)을
security.NTACL
확장 파일에 저장합니다./etc/samba/smb.conf
파일의acl_xattr:<security_acl_name
> 설정을 사용하여 특성 이름을 사용자 지정할 수 있습니다. 사용자 정의 확장 속성 이름은security.NTACL
로 보호되는 위치가 아닙니다. 결과적으로 서버에 대한 로컬 액세스 권한이 있는 사용자는 사용자 지정 특성의 콘텐츠를 수정하고 ACL을 손상시킬 수 있습니다.
Samba 4.11 이후 서버 메시지 블록 버전 1(SMB1) 프로토콜은 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
Samba를 시작하기 전에 데이터베이스 파일을 백업합니다. smbd
,nmbd
또는 winbind
서비스가 시작되면 Samba는 tdb
데이터베이스 파일을 자동으로 업데이트합니다. Red Hat은 tdb
데이터베이스 파일 다운그레이드를 지원하지 않습니다.
Samba를 업데이트한 후 testparm
유틸리티를 사용하여 /etc/samba/smb.conf
파일을 확인합니다.
ipaclient
역할로 IdM 수준에서 사용자 하위 ID 범위를 구성할 수 있음
이번 업데이트를 통해 ipaclient
ansible-freeipa
역할은 IdM(Identity Management) 수준에서 subID 범위를 구성할 수 있는 ipaclient_subid
옵션을 제공합니다. 새 옵션을 명시적으로 true
로 설정하지 않으면 ipaclient
역할은 기본 동작을 유지하고 IdM 사용자에 대해 하위 ID 범위를 구성하지 않고 클라이언트를 설치합니다.
이전에는 역할이 /etc/nsswitch.conf
파일을 사용자 지정하는 sssd
authselect
프로필을 구성했습니다. subID 데이터베이스는 IdM을 사용하지 않았으며 /etc/subuid
및 /etc/subgid
의 로컬 파일에만 의존했습니다.
이제 단일 Ansible 작업에서 여러 IdM 그룹 및 서비스를 관리할 수 있습니다.
ansible-freeipa
에서 이 향상된 기능을 사용하면 단일 Ansible 작업을 사용하여 여러 IdM(Identity Management) 사용자 그룹 및 서비스를 추가, 수정, 삭제할 수 있습니다. 이를 위해 ipagroup
및 ipaservice
모듈의 groups
및 services
옵션을 사용합니다.
ipagroup
에서 사용할 수 있는 groups
옵션을 사용하여 특정 그룹에만 적용되는 그룹 변수를 여러 개 지정할 수 있습니다. 이 그룹은 groups
옵션에 대한 유일한 필수 변수인 name
변수로 정의됩니다.
마찬가지로 ipaservice
에서 사용할 수 있는 services
옵션을 사용하면 특정 서비스에만 적용되는 여러 서비스 변수를 지정할 수 있습니다. 이 서비스는 services
옵션에 대한 유일한 필수 변수인 name
변수로 정의됩니다.
Jira:RHELDOCS-16474[1]
Ansible-freeipa
ipaserver
역할에서 Random Serial Numbers 지원
이번 업데이트를 통해 ansible-freeipa
ipaserver
역할과 함께 ipaserver_random_serial_numbers=true
옵션을 사용할 수 있습니다. 이렇게 하면 Ansible을 사용하여 IdM(Identity Management) 서버를 설치할 때 PKI에서 인증서 및 요청에 대한 완전한 임의의 일련 번호를 생성할 수 있습니다. RSNv3을 사용하면 대규모 IdM 설치에서 범위 관리를 방지하고 IdM을 다시 설치할 때 일반적인 충돌을 방지할 수 있습니다.
RSNv3은 새 IdM 설치에만 지원됩니다. 활성화하면 모든 PKI 서비스에서 RSNv3을 사용해야 합니다.
Jira:RHELDOCS-16462[1]
IPA
버전 4.10.2로 재기반
ipa
패키지가 버전 4.10.2로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.
- IdM CLI 및 웹 UI에서 인증서를 검색하고 나열하면 성능이 향상됩니다.
자세한 내용은 업스트림 FreeIPA 릴리스 노트 를 참조하십시오.
ipaserver_remove_on_server
및 ipaserver_ignore_topology_disconnect
옵션을 ipaserver
역할에서 사용할 수 있습니다.
ipaserver
ansible-freeipa
역할의 remove_server_from_domain
옵션을 사용하여 IdM(Identity Management) 토폴로지에서 복제본을 제거하는 경우 보존할 도메인의 일부를 지정해야 합니다. 특히 다음을 수행해야 합니다.
-
ipaserver_remove_on_server
값을 지정하여 보존할 토폴로지의 부분을 식별합니다. -
ipaserver_ignore_topology_disconnect
를 True로 설정합니다.
remove_server_from_domain
옵션을 사용하여 IdM에서 복제본을 제거하는 경우 연결된 토폴로지를 유지하지 않아도 이러한 옵션 중 어느 것도 필요하지 않습니다.
IdM에서 min_lifetime
매개변수 지원
이번 개선된 기능을 통해 min_lifetime
매개변수가 /etc/gssproxy/*.conf
파일에 추가되었습니다. min_lifetime
매개변수는 남은 수명이 이 값보다 낮은 경우 서비스 티켓 갱신을 트리거합니다.
기본값은 15초입니다. NFS와 같은 네트워크 볼륨 클라이언트의 경우 KDC를 일시적으로 사용할 수 없는 경우 액세스 손실 위험을 줄이려면 이 값을 60초로 설정합니다.
ipacert
Ansible 모듈을 사용하여 IdM 인증서를 관리할 수 있습니다.
ansible-freeipa
ipacert
모듈을 사용하여 IdM(Identity Management) 사용자, 호스트 및 서비스에 대한 SSL 인증서를 요청하거나 검색할 수 있습니다. 그런 다음 사용자, 호스트 및 서비스는 이러한 인증서를 사용하여 IdM에 인증할 수 있습니다. 인증서를 취소하고 보류 중인 인증서를 복원할 수도 있습니다.
optional_pac_tkt_chksum
옵션은 다양한 krb5
버전 간의 상호 운용성을 유지하는 데 도움이 됩니다.
이제 optional_pac_tkt_chksum
옵션을 사용하여 다른 버전의 krb5
패키지를 실행하는 RHEL Kerberos Distribution Center(KDC) 서버 간의 상호 운용성을 유지할 수 있습니다. 특히 PAC(Privilege Attribute Certificate) 티켓 서명 확인에 대한 동작을 변경할 수 있습니다. 티켓 서명이 없는 사용자(S4U) 요청에 대해 Kerberos 주체에 대해 optional_pac_tkt_chksum
문자열 속성을 true
로 설정하는 경우 KDC는 PAC 티켓 서명이 없는 티켓이 포함된 사용자(S4U) 요청을 거부하지 않습니다. 티켓에 서명하는 주체는 티켓 대상 서비스의 영역에 따라 TGS( ticket-granting Service) 하나 또는 교차 영역 TGS 1입니다.
krb5-1.20
릴리스 이후 MIT Kerberos KDCs에는 Kerberos 티켓의 암호화된 부분을 기반으로 PAC에 티켓 서명이 있어야 S4U 요청을 성공적으로 처리할 수 있어야 합니다. 이전에는 특정 KDC가 krb5-1.19
이상을 사용하는 점진적 업그레이드 시나리오에서 문제가 되었지만 다른 사용자는 krb5-1.20
이상을 사용했습니다. S4U에 최신 버전의 krb5
를 사용하는 KDC는 서비스가 S4U 요청에 사용된 경우 krb5
의 이전 버전을 사용하여 KDC에서 제공한 서비스 티켓을 거부했습니다.
IdM(Identity Management)에서 이 기능을 사용하는 방법에 대한 자세한 내용은 이 가져오기 요청을 참조하십시오.
IdM에서 리소스 기반 위임 지원
이번 업데이트를 통해 IdM은 이제 RBCD(리소스 기반 제한 위임)를 지원합니다. RBCD를 사용하면 리소스 수준에서 위임을 세부적으로 제어할 수 있으며 자격 증명이 위임되는 서비스의 소유자가 액세스를 설정할 수 있습니다.
예를 들어, RBCD는 대상 서비스와 프록시 서비스가 다른 포리스트에 속할 때 AD가 RBCD 사용을 적용하기 때문에 IdM과 AD(Active Directory) 간의 통합에 유용할 수 있습니다.
현재 IdM 도메인의 서비스만 RBCD 규칙을 사용하여 구성할 수 있습니다. 대상 서비스가 AD 도메인의 일부인 경우 AD 측에서만 권한을 부여할 수 있습니다. AD 도메인 컨트롤러는 IdM 서비스 정보를 확인하여 규칙을 생성할 수 없으므로 현재 지원되지 않습니다.
위임 시나리오에 대한 자세한 내용은 FreeIPA 디자인 페이지를 참조하십시오.
RHEL 9.3에서 389-ds-base
2.3.4 제공
RHEL 9.3은 389-ds-base
패키지 버전 2.3.4와 함께 배포됩니다. 버전 2.3.4에 비해 주요 버그 수정 및 개선 사항은 다음과 같습니다.
- https://www.port389.org/docs/389ds/releases/release-2-2-8.html
- https://www.port389.org/docs/389ds/releases/release-2-2-9.html
- https://www.port389.org/docs/389ds/releases/release-2-3-0.html
- https://www.port389.org/docs/389ds/releases/release-2-3-1.html
- https://www.port389.org/docs/389ds/releases/release-2-3-2.html
- https://www.port389.org/docs/389ds/releases/release-2-3-3.html
- https://www.port389.org/docs/389ds/releases/release-2-3-4.html
이제 바인딩
작업이 실패하면 Directory Server에서 클라이언트 연결을 닫을 수 있습니다.
이전에는 바인딩 작업이 실패하면
반환 코드를 무시하는 일부 애플리케이션에서 추가 요청과 함께 Director Server를 로드할 수 있었습니다.
바인딩
새 nsslapd-close-on-failed-
구성 속성을 bind
cn=config
항목에 사용하면 바인딩 작업이 실패할 때 서버가 클라이언트 연결을 닫을 수 있습니다. 따라서 서버 로드를 줄일 수 있습니다.
Automembership 플러그인 개선 사항 기본적으로 더 이상 그룹을 정리하지 않습니다.
이전에는 automember rebuild 작업이 모든 automember 규칙을 통과하고 모든 멤버십을 제거한 다음, 작업이 처음부터 멤버십을 다시 빌드했습니다. 따라서 다른 be_txn
플러그인이 활성화된 경우 재구축 작업이 많이 필요했습니다.
이번 업데이트를 통해 Automembership 플러그인에 다음과 같은 개선 사항이 추가되었습니다.
- 한 번에 하나의 재구축 작업만 허용됩니다.
이제 Automembership 플러그인은 기본적으로 이전 멤버를 정리하지 않습니다. 새 CLI 옵션
--cleanup
을 사용하여 처음부터 다시 빌드하기 전에 의도적으로 멤버십을 정리합니다.# dsconf slapd-instance_name plugins automember fixup -f objectclass=posixaccount -s sub --cleanup "ou=people,dc=example,dc=com"
- 수정 진행 상황을 표시하기 위해 로깅이 개선되었습니다.
새로운 passwordAdminSkipInfoUpdate: on/off
설정 옵션을 사용할 수 있습니다.
cn=config
항목 아래에 새 passwordAdminSkipInfoUpdate: on/off
설정을 추가하여 암호 관리자가 수행하는 암호 업데이트를 세밀하게 제어할 수 있습니다. 이 설정을 활성화하면 암호 업데이트는 특정 속성(예: passwordHistory
,passwordExpirationTime
,passwordRetryCount
,pwdReset
, passwordExpWarned
)을 업데이트하지 않습니다.
Directory Server 플러그인 및 클라이언트 애플리케이션에서 새로운 slapi_memberof()
플러그인 함수를 사용할 수 있습니다.
새로운 slapi_memberof()
함수는 지정된 항목이 직접 또는 간접적으로 속하는 그룹의 고유 이름(DN)을 검색합니다. 이전에는 MemberOf, Referential Integrity 및 ACL 플러그인에서 이러한 그룹을 검색하는 자체 메커니즘을 구현했습니다. 이번 업데이트를 통해 그룹 DN을 반환하는 통합 메커니즘을 도입하는 slapi_memberof()
함수를 사용할 수 있습니다.
Directory Server는 이제 가상 특성 nsRole
을 관리 및 필터링된 역할에 대한 인덱싱된 속성으로 대체
이전에는 해당 속성을 인덱싱할 수 없기 때문에 필터에 nsRole
이 가상 특성을 포함하는 LDAP 검색에 시간이 오래 걸렸습니다. 이번 업데이트를 통해 필터에서 nsRole
가상 특성을 사용하여 ldapsearch
를 수행하면 Directory Server가 nsRole
속성을 다음과 같이 대체합니다.
-
관리 역할의 경우
nsRole
속성이nsRoleDN
속성으로 교체됩니다. -
필터링된 역할의 경우
nsRole
속성이nsRoleFilter
속성으로 교체됩니다.
결과적으로 검색이 인덱싱되기 때문에 nsRole
특성을 사용한 검색 시간이 향상됩니다.
이 업데이트는 중첩된 역할에 적용되지 않습니다.
새로운 nsslapd-numlisteners
구성 옵션 사용 가능
nsslapd-numlisteners
속성은 설정된 연결을 모니터링하는 데 사용할 수 있는 리스너 스레드 디렉터리 서버의 수를 지정합니다. 특성 값을 늘리면 서버에서 많은 수의 클라이언트 연결이 발생할 때 응답 시간을 개선할 수 있습니다.
IdM은 PAC 서명에 사용되는 암호화 유형을 제어하는 옵션을 지원합니다.
기본적으로 Kerberos KMS(Key Distribution Center)는 PAC(Privilege Attribute Certificate)에 대한 AES HMAC-SHA2 서명을 생성합니다. 그러나 이 암호화 유형은 AD(Active Directory)에서 지원되지 않습니다. 결과적으로 AD 교차 영역 간 위임 요청이 올바르게 처리되지 않습니다.
이번 개선된 기능을 통해 TGS 주체 krbtgt/[realm]@[realm]
에서 pac_privsvr_entype
속성을 대상 영역에 필요한 암호화 유형으로 설정하여 PAC에 서명하는 데 사용되는 암호화 유형을 제어할 수 있습니다. IdM에서 이 문자열 속성은 AD 신뢰가 있는 경우 자동으로 구성됩니다.
WARNING: This update is about standalone MIT realms. Do not change the Kerberos Distribution Center (KDC) configuration in RHEL Identity Management.
예를 들어 MIT
영역과 AD
영역의 경우 TGT(cross-realm ticket-granting ticket-granting ticket-granting ticket)에서 AD 호환 암호화 유형을 사용하려면 관리자가 MIT 측에 표시된 대로 교차 Realm TGS 주체를 구성해야 합니다. 이로 인해 AES 256 HMAC-SHA1 암호화 유형을 사용하고 제한된 위임 요청이 올바르게 처리되는 교차 영역 TGT가 생성됩니다.
kadmin.local <<EOF setstr krbtgt/AD@IPA pac_privsvr_enctype aes256-cts-hmac-sha1-96 setstr krbtgt/IPA@AD pac_privsvr_enctype aes256-cts-hmac-sha1-96 EOF
Identity Management API가 완전히 지원됨
IdM(Identity Management) API는 RHEL 9.2에서 기술 프리뷰로 사용되었으며 RHEL 9.3부터 완전 지원됩니다.
IdM API가 여러 버전의 API 명령을 사용하도록 향상된 경우에도 기존 툴과 스크립트를 사용할 수 있습니다. 이러한 개선 사항은 호환되지 않는 방식으로 명령의 동작을 변경하지 않습니다. 다음과 같은 이점이 있습니다.
- 관리자는 관리 클라이언트보다 서버에서 이전 또는 이후 버전의 IdM을 사용할 수 있습니다.
- 서버에서 IdM 버전이 변경되어도 개발자는 특정 버전의 IdM 호출을 사용할 수 있습니다.
한 측에서 사용하는 경우(예: 기능에 대한 새 옵션을 도입하는 최신 버전)와 관계없이 서버와의 통신이 가능합니다.
- 참고
- IdM API는 JSON-RPC 인터페이스를 제공하지만 이러한 유형의 액세스는 지원되지 않습니다. 대신 Python을 사용하여 API에 액세스하는 것이 좋습니다. Python을 사용하면 서버에서 메타데이터 검색과 같은 중요한 부분을 자동화하여 사용 가능한 모든 명령을 나열할 수 있습니다.
4.15. 그래픽 인프라
Intel Arc A-Series 그래픽이 완전 지원됨
이전에는 기술 프리뷰로 사용 가능한 Intel Arc A-Series 그래픽(Alchemist 또는 DG2) 기능이 이제 완전히 지원됩니다. Intel Arc A-Series 그래픽은 대부분 PC 게임에서 사용되는 하드웨어 가속을 가능하게 하는 GPU입니다.
Bugzilla:2101598[1]
4.16. 웹 콘솔
podman 상태 점검 작업을 사용할 수 있음
새 컨테이너를 생성할 때 다음 Podman 상태 점검 작업 중 하나를 선택할 수 있습니다.
- 작업 없음(기본값): 작업을 수행하지 않습니다.
- restart: 컨테이너를 다시 시작합니다.
- stop: 컨테이너를 중지합니다.
- force stop: Force가 컨테이너를 중지하고 컨테이너가 종료될 때까지 기다리지 않습니다.
Jira:RHELDOCS-16247[1]
RHEL 웹 콘솔에서 Stratis 사용 가능
이번 업데이트를 통해 Red Hat Enterprise Linux 웹 콘솔은 Stratis 스토리지를 관리하는 기능을 제공합니다.
Stratis에 대한 자세한 내용은 웹 콘솔을 사용하여 Stratis 파일 시스템 설정을 참조하십시오.
Jira:RHELPLAN-122345[1]
4.17. Red Hat Enterprise Linux 시스템 역할
systemd
장치를 관리하는 새로운 RHEL 시스템 역할
이제 rhel-system-role
패키지에는 systemd
RHEL 시스템 역할이 포함됩니다. 이 역할을 사용하여 장치 파일을 배포하고 여러 시스템에서 systemd
장치를 관리할 수 있습니다.
장치 파일과 템플릿을 제공하고 started, stopped, masked 등과 같은 유닛의 상태를 지정하여 systemd 기능을 자동화할 수 있습니다.
systemd
구성 백업을 비활성화하는 ssh
역할의 새 옵션
이제 새 ssh_backup
옵션을 false
로 설정하여 이전 구성 파일을 덮어쓰기 전에 백업하지 못할 수 있습니다. 이전에는 백업 구성 파일이 자동으로 생성되었으며 필요하지 않을 수 있었습니다. ssh_backup
옵션의 기본값은 true
이며 원래 동작을 유지합니다.
keylime_server
RHEL 시스템 역할
새로운 keylime_server
RHEL 시스템 역할을 사용하면 Ansible 플레이북을 사용하여 RHEL 9 시스템에서 검증자 및 등록 기관 Keylime 구성 요소를 구성할 수 있습니다. Keylime은 신뢰할 수 있는 플랫폼 모듈(TPM) 기술을 사용하는 원격 머신 인증 툴입니다.
새로운 ha_cluster
시스템 역할 기능 지원
ha_cluster
시스템 역할은 이제 다음 기능을 지원합니다.
- 규칙이 포함된 여러 기본값 세트를 포함하여 리소스 및 리소스 작업 기본값을 구성합니다.
- SBD 워치독 커널 모듈 로드 및 차단. 이렇게 하면 클러스터에서 설치된 하드웨어 워치독을 사용할 수 있습니다.
-
클러스터 호스트 및 쿼럼 장치에 고유한 암호 할당 이를 통해 동일한 쿼럼 호스트가 여러 개의 별도의 클러스터에 결합되고 이러한 클러스터에서
hacluster
사용자의 암호가 다른 배포를 구성할 수 있습니다.
이러한 기능을 구현하기 위해 구성한 매개변수에 대한 자세한 내용은 ha_cluster RHEL 시스템 역할을 사용하여 고가용성 클러스터 구성을 참조하십시오.
Bugzilla:2185065, Bugzilla:2185067, Bugzilla:2216481
스토리지
시스템 역할은 RAID LVM 볼륨의 스트라이프 크기 구성을 지원합니다.
이번 업데이트를 통해 RAID LVM 장치를 생성할 때 사용자 지정 스트라이프 크기를 지정할 수 있습니다. 성능 향상을 위해 SAP HANA의 사용자 지정 스트라이프 크기를 사용하십시오. RAID LVM 볼륨에 권장되는 스트라이프 크기는 64KB입니다.
네트워크
RHEL 시스템 역할은 자동 DNS 레코드 업데이트를 제어하는 auto-dns
옵션 지원
이번 개선된 기능을 통해 정의된 이름 서버 및 검색 도메인을 지원합니다. 이제 자동으로 구성된 이름 서버 및 DHCP에서 dns
레코드와
같은 검색 도메인을 비활성화하면서 dns 및 dns_search
속성에 지정된 이름 서버 및 검색 도메인만 사용할 수 있습니다. 이번 개선된 기능을 통해 auto-dns
설정을 변경하여 자동 dns 레코드를 비활성화할 수 있습니다.
네트워크
RHEL 시스템 역할은 no-aaa DNS
옵션 지원
이제 no-
aaa 옵션을 사용하여 관리 노드에서 DNS 설정을 구성할 수 있습니다. 이전에는 getaddrinfo
와 같은 NSS 기반 인터페이스에서 트리거한 AAAA 조회를 포함하여 stub resolver에서 생성한 AAAA 쿼리를 억제할 수 있는 옵션이 없었습니다. DNS 조회만 영향을 받았습니다. 이번 개선된 기능을 통해 이제 stub 해결자가 생성한 AAAA 쿼리를 억제할 수 있습니다.
ad_integration
RHEL 시스템 역할이 AD 도메인에 다시 참여할 수 있음
이번 업데이트를 통해 ad_integration
RHEL 시스템 역할을 사용하여 AD(Active Directory) 도메인에 다시 참여할 수 있습니다. 이 작업을 수행하려면 ad_integration_force_rejoin
변수를 true
로 설정합니다. realm_list
출력에 host가 이미 AD 도메인에 있는 것으로 표시되면 다시 가입하기 전에 기존 도메인을 남겨 둡니다.
인증서
RHEL 시스템 역할로 certmonger
를 사용할 때 인증서 파일 모드를 변경할 수 있습니다.
이전에는 certmonger
공급자를 사용하여 인증서
RHEL 시스템 역할에서 생성한 인증서에서 기본 파일 모드를 사용했습니다. 그러나 일부 사용 사례에서는 더 제한적인 모드가 필요할 수 있습니다. 이번 업데이트를 통해 mode
매개변수를 사용하여 다른 인증서와 키 파일 모드를 설정할 수 있습니다.
postgresql
RHEL 시스템 역할 사용 가능
새 postgresql
RHEL 시스템 역할은 PostgreSQL
서버를 설치, 구성, 관리 및 시작합니다. 또한 이 역할은 데이터베이스 서버 설정을 최적화하여 성능을 향상시킵니다.
이 역할은 RHEL 8 및 RHEL 9 관리형 노드에서 현재 릴리스되고 지원되는 PostgreSQL
버전을 지원합니다.
자세한 내용은 postgresql RHEL 시스템 역할을 사용하여 PostgreSQL 설치 및 구성을 참조하십시오.
podman
RHEL 시스템 역할에서 Quadlets, 상태 점검 및 시크릿 지원
Podman 4.6부터 podman
RHEL 시스템 역할에서 podman_quadlet_specs
변수를 사용할 수 있습니다. 단위 파일을 지정하거나 이름, 단위 유형 및 사양을 사용하여 Quadlet을 정의할 수 있습니다. 단위 유형은 컨테이너
,kube
,network
및 volume
일 수 있습니다. Quadlets는 RHEL 8의 루트 컨테이너에서만 작동합니다. Quadlets는 RHEL 9의 rootless 컨테이너에서 작동합니다.
상태 점검은 Quadlet 컨테이너 유형에서만 지원됩니다. [Container]
섹션에서 HealthCmd
필드를 지정하여 상태 점검 명령 및 HealthOnFailure
필드를 정의하여 컨테이너가 비정상일 때 작업을 정의합니다. 가능한 옵션은 없음
,종료
,재시작
, 중지
입니다.
podman_secrets
변수를 사용하여 보안을 관리할 수 있습니다. 자세한 내용은 업스트림 문서를 참조하십시오.
Jira:RHELPLAN-154441[1]
restorecon -T 0
을 사용하여 selinux
시스템 역할의 성능 향상
이제 selinux
시스템 역할은 모든 해당 사례에서 restorecon
명령과 함께 -T 0
옵션을 사용합니다. 이렇게 하면 파일에서 기본 SELinux 보안 컨텍스트를 복원하는 작업의 성능이 향상됩니다.
rhc
시스템 역할에서 프록시 서버 유형 설정을 지원
rhc_proxy
매개변수 아래에 새로 도입된 속성 스키마
를 사용하면 rhc
시스템 역할을 사용하여 프록시 서버 유형을 구성할 수 있습니다. 두 개의 값인 http
, default 및 https
를 설정할 수 있습니다.
방화벽
RHEL 시스템 역할은 ipsets
와 관련된 변수 지원
이번 방화벽
RHEL 시스템 역할을 업데이트하면 ipsets
를 정의, 수정, 삭제할 수 있습니다. 또한 방화벽 영역에서 이러한 ipsets
를 추가하고 제거할 수 있습니다. 또는 방화벽 리치 규칙을 정의할 때 해당 ipsets
를 사용할 수 있습니다.
다음 변수를 사용하여 방화벽
RHEL 시스템 역할로 ipsets
를 관리할 수 있습니다.
-
ipset
-
ipset_type
-
ipset_entries
-
short
-
description
-
state: present
또는state: absent
-
영구: true
이 개선의 몇 가지 주요 이점은 다음과 같습니다.
- 많은 IP 주소에 대한 규칙을 정의하는 리치 규칙의 복잡성을 줄일 수 있습니다.
- 여러 규칙을 수정하지 않고 필요에 따라 세트에서 IP 주소를 추가하거나 제거할 수 있습니다.
자세한 내용은 /usr/share/doc/rhel-system-roles/firewall/
디렉터리의 리소스를 참조하십시오.
RHEL 시스템 역할에 마운트 지점 사용자 지정을 위한 새로운 볼륨 옵션이 있음
이번 업데이트를 통해 이제 마운트 디렉터리에 mount_user
,mount_group
, mount_permissions
매개변수를 지정할 수 있습니다.
방화벽
RHEL 시스템 역할에는 충돌하는 서비스를 비활성화할 수 있는 옵션이 있으며 firewalld
가 마스킹된 경우 더 이상 실패하지 않습니다.
이전에는 firewalld
서비스가 실행된 역할 또는 충돌하는 서비스가 있을 때 방화벽
시스템 역할이 실패했습니다. 이번 업데이트에서는 두 가지 주요 개선 사항이 추가되었습니다.
linux-system-roles.firewall
역할은 항상 역할 실행에 firewalld
서비스를 설치, 해제, 활성화하려고 합니다. 이제 새 변수 firewall_disable_conflicting_services
를 플레이북에 추가하여 알려진 충돌 서비스(예: iptables.service
,nftables.service
, ufw.service
)를 비활성화할 수 있습니다. firewall_disable_conflicting_services
변수는 기본적으로 false
로 설정됩니다. 충돌하는 서비스를 비활성화하려면 변수를 true
로 설정합니다.
이제 방화벽
RHEL 시스템 역할 구성을 재설정하려면 다운타임을 최소화해야 합니다.
이전 버전에서는 이전: 대체
변수를 사용하여 방화벽
역할 구성을 재설정할 때 firewalld
서비스가 다시 시작되었습니다. 다시 시작 시 다운타임이 추가되고 firewalld
가 활성 연결의 트래픽을 차단하지 않는 열린 연결 기간이 길어집니다. 이번 개선된 기능을 통해 firewalld
서비스는 다시 시작하는 대신 다시 로드하여 구성 재설정을 완료합니다. 다시 로드하면 다운타임을 최소화하고 방화벽 규칙을 우회할 수 있는 기회를 줄일 수 있습니다. 결과적으로 이전: 대체
변수를 사용하여 방화벽
역할 구성을 재설정하려면 다운타임이 최소화됩니다.
4.18. 가상화
sevctl
은 이제 AMD EPYC named 및 Milan과 완벽하게 호환됩니다.
이번 업데이트를 통해 sevctl
유틸리티는 AMD EPYC Ramam 및 AMD EPYC Milan 시리즈를 포함하여 최신 AMD EPYC 코어를 올바르게 인식합니다. 결과적으로 sevctl
을 사용하여 이러한 CPU에서 사용할 수 있는 AMD SEV(Secure Encrypted Virtualization) 기능을 구성할 수 있습니다.
그러나 SEV-ES 및 SEV-SNP와 같은 고급 SEV 기능은 RHEL 9에서는 기술 프리뷰로만 제공되므로 지원되지 않습니다.
Bugzilla:2104857[1]
virtio-vga
및 virtio-gpu
장치는 Blob
리소스 지원
이제 virtio-vga
및 virtio-gpu
장치가 Blob
메모리 리소스를 사용하여 특정 시나리오에서 성능을 향상시킬 수 있습니다. virtio
그래픽 장치에 Blob
리소스를 연결하려면 가상 머신의 XML 구성의 해당 < video
> 섹션에 blob="on"
옵션을 추가합니다. 예를 들면 다음과 같습니다.
<video> <model type="virtio" heads="1" primary="yes" blob="on"/> <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/> </video>
그러나 이 기능은 현재 IBM Z 호스트에서는 작동하지 않습니다.
4th Generation Intel Xeon Scalable 프로세서에 대한 가상화 지원
이번 업데이트를 통해 RHEL 9의 가상화에는 이전에 Sapphire Rapids로 알려진 4세대 Intel Xeon Scalable 프로세서에 대한 지원이 추가되었습니다. 결과적으로 RHEL 9에서 호스팅되는 가상 머신은 이제 SapphireRapids
CPU 모델을 사용하고 프로세서에서 제공하는 새로운 기능을 사용할 수 있습니다.
Bugzilla:1880531[1]
IBM Z에서 보안 실행을 위한 메모리 회수 개선
IBM Z에서 IBM Secure Execution와 함께 VM(가상 머신)을 사용하는 경우 VM에 대한 향상된 메모리 회수를 설정할 수 있습니다. VM에서 32GiB 이상의 RAM을 사용하는 경우 이 설정은 VM을 재부팅하거나 중지하는 성능을 향상시킵니다.
VM에서 향상된 메모리 회수를 설정하려면 XML 구성의 < async-teardown enabled='yes'/
> 행을 XML 구성의 < features></features
> 섹션에 추가합니다.
Bugzilla:2168499[1]
RHEL 웹 콘솔의 새로운 가상화 기능
이번 업데이트를 통해 RHEL 웹 콘솔에는 가상 머신 페이지에 새로운 기능이 포함되어 있습니다. 이제 다음을 수행할 수 있습니다.
-
클라우드 이미지를 기반으로 VM(가상 머신)의
생성 및 편집
버튼을 선택하여 VM을 설치하기 전에 모든 VM 속성을 편집할 수 있습니다. -
가상 머신 생성 중에
원시
스토리지 볼륨을 생성합니다. 가상 소켓(vsock)을 설정하여 소켓을 통해 호스트와 VM 간의 통신을 활성화합니다.
가상 소켓에는 통신을 활성화하려면
socat
과 같은 vsock 인식 소프트웨어가 필요합니다.
Jira:RHELDOCS-16487[1]
4.19. 클라우드 환경의 RHEL
cloud-init에서 NetworkManager 키 파일 지원
이번 업데이트를 통해 cloud-init
유틸리티는 NetworkManager(NM) 키 파일을 사용하여 생성된 클라우드 인스턴스의 네트워크를 구성할 수 있습니다.
기본적으로 cloud-init
는 여전히 네트워크 설정에 sysconfig
방법을 사용합니다. 대신 NM 키 파일을 사용하도록 cloud-init
를 구성하려면 /etc/cloud/cloud.cfg
를 편집하고 network-manager
를 기본 네트워크 렌더러로 설정합니다.
# cat /etc/cloud/cloud.cfg network: renderers: ['network-manager', 'eni', 'netplan', 'sysconfig', 'networkd']
Bugzilla:2118235[1]
cloud-init
에서 기본적으로 ESXi에서 VMware 데이터 소스 사용
VMware vSphere 클라우드 플랫폼과 같이 VMware ESXi 하이퍼바이저를 사용하는 호스트에서 RHEL VM(가상 머신)을 생성할 때. 이를 통해 cloud-init
를 사용하여 RHEL의 ESXi 인스턴스를 생성하는 성능과 안정성이 향상됩니다. 그러나 ESXi는 여전히 OVF(Open Virtualization Format) 데이터 소스와 호환되며 VMware를 사용할 수 없는 경우 OVF 데이터 소스를 사용할 수 있습니다.
Bugzilla:2172341[1]
4.20. 지원 관련 기능
SOS
버전 4.6으로 업데이트
구성, 진단 및 문제 해결 데이터를 수집하는 sos
유틸리티는 버전 4.6으로 변경되었습니다. 이번 업데이트에서는 다음과 같은 향상된 기능이 있습니다.
-
SOS 보고서에는 이제 부팅 문제 해결에 중요한 정보가 포함될 수 있는
/boot/grub2/custom.cfg
및/boot/grub2/user.cfg
파일의 내용이 포함됩니다.(BZ#2213951)
-
OVN-Kubernetes용
sos
플러그인은 상호 연결 환경에 대한 추가 로그를 수집합니다. 이번 업데이트를 통해ovnkube-node
및ovnkube-controller
컨테이너가 모두 병합될 때ovnkube-controller
컨테이너에서도 로그를 수집합니다.
또한 주요 버그 수정에는 다음이 포함됩니다.
-
SOS는
이제 OpenShift Container Platform 4 환경(BZ#2186361)에서cgroup
데이터를 올바르게 수집합니다. -
sudo
플러그인이 활성화된 상태로sos
bindpw
옵션이 올바르게 제거됩니다. (BZ#2143272) -
subscription_manager
플러그인은 더 이상/var/lib/rhsm/
경로에서 프록시 사용자 이름과 암호를 수집하지 않습니다. (BZ#2177282) -
virsh
플러그인은 virt-manager 로그에서 SPICE 원격 표시 암호를 더 이상 수집하지않으므로
보고서에 암호를 공개하지 않습니다. (BZ#2184062) 이제 SOS는
/var/lib/iscsi/nodes/<IQN>/<PortalIP>/default
파일에 이전에 표시된 사용자 이름과 암호를 마스킹합니다.중요생성된 아카이브에는 민감한 것으로 간주되는 데이터가 포함될 수 있습니다. 따라서 타사에 전달하기 전에 항상 콘텐츠를 검토해야 합니다.
(BZ#2187859)
-
SOS
는 로그 파일의 크기를 초과하고 플러그인이 시간 초과된 경우에도 tailed 로그 컬렉션을 완료합니다. (BZ#2203141) -
Pacemaker 클러스터 노드에
sos
collect -
OpenShift Container Platform 4 환경의 호스트에서 데이터를 수집할 때 이제
sysroot
경로를 사용하므로 올바른 데이터만 어셈블됩니다.(BZ#2075720)
-
sos report --clean
명령은 모든 MAC 주소를 의도한 대로 난독화합니다. (BZ#2207562) -
hpssm
플러그인을 비활성화해도 더 이상 예외가 발생하지 않습니다. (BZ#2216608) -
sos clean
명령은 간소화된 파일의 권한을 따릅니다. (BZ#2218279)
sos
의 각 릴리스에 대한 자세한 내용은 업스트림 릴리스 노트를 참조하십시오.
Jira:RHELPLAN-156196[1]
4.21. 컨테이너
Podman은 zstd로 압축된 이미지 가져오기 및 푸시 지원
zstd
형식으로 압축된 이미지를 가져와서 푸시할 수 있습니다. zstd 압축은 gzip보다 더 효율적이고 빠릅니다. 이미지 가져오기 및 푸시와 관련된 네트워크 트래픽 및 스토리지 양을 줄일 수 있습니다.
Jira:RHELPLAN-154314[1]
Podman의 Quadlet 사용 가능
Podman v4.6부터 Quadlet을 사용하여 컨테이너 설명에서 systemd
서비스 파일을 자동으로 생성할 수 있습니다. 설명은 systemd
에서 컨테이너 실행의 기술적 복잡성 없이 관련 컨테이너 세부 정보에 중점을 두고 있기 때문에 Quadlets를 podman generate systemd
명령보다 더 쉽게 사용할 수 있습니다.
자세한 내용은 Quadlet 업스트림 문서 및 Quadlet 을 사용하여 Podman에 대한 systemd를 더 잘 만드는 방법을 참조하십시오.
Jira:RHELPLAN-154432[1]
컨테이너 툴 패키지가 업데이트됨
Podman, Buildah, Skopeo, crun, runc 툴이 포함된 업데이트된 컨테이너 툴 RPM 메타 패키지를 사용할 수 있습니다. 이번 업데이트에서는 이전 버전에 비해 일련의 버그 수정 및 개선 사항이 적용됩니다.
Podman v4.6에서 주요 변경 사항은 다음과 같습니다.
-
이제
podman kube play
명령에서--configmap= <path
> 옵션을 지원하여 Pod 컨테이너 내에서 사용되는 환경 변수를 Kubernetes YAML 파일에 제공합니다. -
podman kube play
명령에서--configmap
옵션에 대해 여러 Kubernetes YAML 파일을 지원합니다. -
podman kube play
명령에서는 활성 프로브 내에서 containerPort 이름 및 포트 번호를 지원합니다. -
이제
podman kube play
명령에서 ctrName을 Pod 네트워크에 별칭으로 추가합니다. -
podman kube 플레이
및podman kube generate
명령에서 SELinux filetype 레이블 및 ulimit 주석을 지원합니다. -
지정된 이름의
시크릿이 존재하는지 확인하는 새 명령인 podman
secret이 추가되었습니다. -
podman create
,podman run
,podman pod create
,podman pod clone
명령에서 새 옵션인--shm-size-systemd
를 지원하여 systemd 관련 마운트에 대해 tmpfs 크기를 제한할 수 있습니다. -
podman create
및 podman run 명령에서 이제 제한된 컨테이너 내에서 SELinux 레이블을 지정할 수 있는 새로운 옵션--security-opt label=nested
를 지원합니다. - Podman은 이제 Pod 내에서 실행되는 컨테이너에 대한 자동 업데이트를 지원합니다.
-
이제 Podman은 안정성 향상을 위해 SQLite 데이터베이스를 백엔드로 사용할 수 있습니다. 기본값은 BoltDB 데이터베이스로 유지됩니다.
containers.conf
파일에서database_backend
필드를 설정하여 데이터베이스를 선택할 수 있습니다. -
Podman은 이제 Quadlets를 지원하여 컨테이너 설명에서
systemd
서비스 파일을 자동으로 생성합니다. 설명은 관련 컨테이너 세부 사항에 중점을 두고 있으며systemd
에서 실행 중인 컨테이너의 기술적 복잡성을 숨깁니다.
주요 변경 사항에 대한 자세한 내용은 업스트림 릴리스 노트를 참조하십시오.
Jira:RHELPLAN-154438[1]
Podman에서 Podmansh 로그인 쉘 지원
Podman v4.6부터 Podmansh
로그인 쉘을 사용하여 사용자 액세스 및 제어를 관리할 수 있습니다. /usr/bin/podmansh
명령을 표준 쉘 명령 대신 로그인 쉘로 사용하도록 설정을 구성합니다(예: /usr/bin/bash
). 사용자가 시스템 설정에 로그인하면 podmansh
명령은 사용자의 세션을 podmansh
라는 Podman 컨테이너로 실행합니다. 사용자가 로그인하는 컨테이너는 /etc/containers/systemd/users/
디렉터리에 생성된 Quadlet 파일을 사용하여 정의됩니다. 이러한 파일에서 [Container]
섹션의 ContainerName
필드를 podmansh
로 설정합니다. systemd는 사용자 세션이 시작될 때 podmansh
를 자동으로 시작하고 모든 사용자 세션이 종료될 때까지 계속 실행됩니다.
자세한 내용은 Podman v4.6.0 Introduces Podmansh: A#159ary Login Shell 을 참조하십시오.
Jira:RHELPLAN-163003[1]
Fulcio 및 Rekor를 사용한 sigstore 서명용 클라이언트를 사용할 수 있습니다.
Fulcio 및 Rekor 서버를 사용하면 개인 키를 수동으로 관리하는 대신 OpenID Connect(OIDC) 서버 인증을 기반으로 단기 인증서를 사용하여 서명을 생성할 수 있습니다. 이전에는 Fulcio 및 Rekor를 사용하는 sigstore 서명용 클라이언트는 이전에 기술 프리뷰로 사용할 수 있으며 이제 완전히 지원됩니다. 이 추가된 기능은 클라이언트 측 지원일 뿐이며 Fulcio 또는 Rekor 서버를 포함하지 않습니다.
policy.json
파일에 fulcio
섹션을 추가합니다. 컨테이너 이미지에 서명하려면 podman push --sign-by-sigstore=file.yml
또는 skopeo copy --sign-by-sigstore=file.yml
명령을 사용합니다. 여기서 file.yml
은 sigstore 서명 매개 변수 파일입니다.
서명을 확인하려면 policy.json
파일에 fulcio
섹션과 rekorPublicKeyPath
또는 rekorPublicKeyData
필드를 추가합니다. 자세한 내용은 containers-policy.json
도움말 페이지를 참조하십시오.
Jira:RHELPLAN-160660[1]
pasta
네트워킹 모드 사용 가능
Podman v4.4.1부터 pasta
네트워크 모드를 사용할 수 있습니다. 기본 네트워크 모드 slirp4netns
의 고성능 대체이며 IPv6 전달을 지원합니다. pasta
네트워크 모드를 선택하려면 --network=pasta
옵션과 함께 podman run
명령을 사용하도록 passt
패키지를 설치합니다. Podman v4.6을 사용하면 [network]
섹션 아래에 default_rootless_network_cmd
필드를 사용하여 /etc/containers/containers.conf
구성 파일에서 기본 rootless 네트워크 모드를 설정할 수 있습니다.
Jira:RHELDOCS-16240[1]
UBI 9 마이크로 컨테이너 이미지에 더 이상 tzdata
에서 설치한 zoneinfo
가 포함되어 있지 않음
이번 업데이트를 통해 tzdata
패키지에서 제공하는 시간대 정보는 UBI 9 마이크로 컨테이너 이미지에 더 이상 포함되지 않으므로 이미지 크기가 줄어듭니다. UBI 9 Minimal 및 UBI 9 Micro 컨테이너는 UTC 전용이며 사용자는 필요한 경우 전체 zoneinfo
를 가져오도록 tzdata
패키지를 다시 설치해야 합니다.
5장. 외부 커널 매개변수에 대한 중요한 변경 사항
이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 9.3에서 배포된 커널 변경 사항에 대한 요약을 제공합니다. 이러한 변경으로는 proc
항목, sysctl
및 sysfs
기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 띄는 동작 변경과 같은 추가 또는 업데이트된 동작 변경이 포함될 수 있습니다.
새 커널 매개변수
- amd_pstate=[X86]
이 커널 매개변수를 사용하면 AMD CPU의 성능을 확장할 수 있습니다. 사용 가능한 값은 다음과 같습니다.
-
disable
- 지원되는 프로세서에 대한 기본 확장 드라이버로amd_pstate
를 활성화하지 않습니다. -
passive
- 패시브 모드와 함께amd_pstate
를 스케일링 드라이버로 사용합니다. 이 모드에서는 자율 선택이 비활성화됩니다. 드라이버는 필요한 성능 수준을 요청하고 플랫폼이 보장된 성능 수준에 따라 충족되는 경우 동일한 성능 수준을 일치시키려 합니다. -
active
- 확장 드라이버로amd_pstate_epp
드라이버 인스턴스를 사용합니다. 드라이버에서는 소프트웨어가 성능(0x0) 또는 에너지 효율성(0xff)을 CPPC 펌웨어에 대한 의도를 유도하려는 경우 하드웨어에 힌트를 제공합니다. 그런 다음 CPPC 전원 알고리즘은 런타임 워크로드를 계산하고 실시간 코어 빈도를 조정합니다. -
단계별
- 안내된 자율 모드 활성화. 드라이버는 최소 및 최대 성능 수준을 요청하며 플랫폼은 자율적으로 이 범위의 성능 수준을 선택하고 현재 워크로드에 적합합니다.
-
- arm64.nosve=[ARM64]
- 이 커널 매개변수를 사용하면 확장 가능한 벡터 확장 지원을 무조건 비활성화할 수 있습니다.
- arm64.nosme=[ARM64]
- 이 커널 매개변수를 사용하면 확장 가능 매트릭스 확장 지원을 무조건 비활성화할 수 있습니다.
- gather_data_sampling=[X86,INTEL]
이 커널 매개변수를 사용하면 GDS(Greater Data Sampling) 완화를 제어할 수 있습니다.
GDS는 이전에 벡터 레지스터에 저장된 데이터에 대해 권한이 없는 추측 액세스를 허용하는 하드웨어 취약점입니다.
이 문제는 기본적으로 업데이트된 마이크로 코드에서 완화됩니다. 완화 조치에는 성능에 영향을 미칠 수 있지만 비활성화할 수 있습니다. AVX를 비활성화하는 마이크로 코드 완화 기능이 없는 시스템에서는 완화 기능을 제공합니다. 사용 가능한 값은 다음과 같습니다.
-
force
- AVX를 비활성화하여 마이크로 코드 완화 없이 시스템을 완화합니다. 마이크로 코드 완화가 있는 경우에는 효과가 없습니다. buggy AVX 열거를 사용하여 사용자 공간에서 충돌을 유발하는 것으로 알려져 있습니다. -
off
- GDS 완화 기능을 비활성화합니다.
-
- nospectre_bhb=[ARM64]
- 이 커널 매개변수를 사용하면 Spectre-BHB(branch history injection) 취약점에 대한 모든 완화 조치를 비활성화할 수 있습니다. 시스템에서 이 옵션을 사용하여 데이터 누수를 허용할 수 있습니다.
- trace_clock=[FTRACE]
이 커널 매개변수를 사용하면 부팅 시 이벤트 추적에 사용되는 클럭을 설정할 수 있습니다. 사용 가능한 값은 다음과 같습니다.
-
local
- per CPU timestamp 카운터를 사용합니다. -
글로벌
- 이벤트 타임스탬프는 CPU 간에 동기화됩니다. 로컬 클록보다 느릴 수 있지만 일부 경합 상태에는 더 좋습니다. -
카운터
- 이벤트 (1, 2,...)의 간단한 계산은 이벤트당 클럭을 두 번 이상 캡처하는 인프라로 인해 일부 개수를 건너뛸 수 있습니다. -
uptime
- jiffies를 타임 스탬프로 사용합니다. -
perf
- perf와 동일한 시계를 사용합니다. -
Cryo
stat - 타임스탬프에ktime_get_mono_fast_ns()
함수를 사용합니다. -
mono_raw
- 타임스탬프에ktime_get_raw_fast_ns()
함수를 사용합니다. boot
- 타임스탬프에ktime_get_boot_fast_ns()
함수를 사용합니다.아키텍처에서 더 많은 클럭을 추가할 수 있습니다. 자세한 내용은
Documentation/trace/ftrace.rst
를 참조하십시오.
-
업데이트된 커널 매개변수
- cgroup.memory=[KNL]
이 커널 매개변수를 사용하면
cgroup
메모리 컨트롤러에 옵션을 전달할 수 있습니다.이 매개변수는 <
string> 형식을 사용합니다.
사용 가능한 값은 다음과 같습니다.
-
nosocket
- 소켓 메모리 계정을 비활성화합니다. -
nokmem
- 커널 메모리 계정을 비활성화합니다. -
[NEW]
nobpf
- BPF 메모리 계산을 비활성화합니다.
- hugetlb_free_vmemmap=[KNL]
이 커널 매개변수를 사용하면 부팅 시 각 hugetlb 페이지에 연결된 사용되지 않는
vmemmap
페이지를 해제하는 기능을 사용할 수 있습니다. 이 매개변수가 작동하려면CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
구성 옵션을 활성화해야 합니다.이 매개변수는
{ on | off (default) }
형식을 사용합니다.사용 가능한 값은 다음과 같습니다.
-
On
- 이 기능을 활성화합니다. off
- 이 기능을 비활성화참고memory_hotplug.memmap_on_memory
모듈 매개변수가 활성화된 경우 추가된 메모리 블록 자체에서vmemmap
페이지가 할당될 수 있습니다. 이러한vmemmap
페이지는 이 기능이 활성화된 경우에도 최적화할 수 없습니다. 추가된 메모리 블록 자체에서 할당되지 않은 다른vmemmap
페이지는 영향을 받지 않습니다.
-
- intel_pstate=[X86]
CPU 성능 확장에 이 커널 매개변수를 사용할 수 있습니다. 사용 가능한 값은 다음과 같습니다.
-
disable
- 지원되는 프로세서에 대한 기본 확장 드라이버로intel_pstate
를 활성화하지 않습니다. -
[NEW]
active
-intel_pstate
드라이버를 사용하여cpufreq
의 확장 governors 계층을 무시하고 p-state selection에 대한 자체 알고리즘을 제공합니다. 활성 모드에서intel_pstate
에서 제공하는 P 상태 선택 알고리즘은 powersave 및 performance입니다. 둘 다 작동하는 방식은 프로세서 및 프로세서 모델에서 하드웨어 관리 P-state (HWP) 기능이 활성화되어 있는지 여부에 따라 다릅니다. -
Passive
-intel_pstate
를 확장 드라이버로 사용하지만 일반cpufreq
governors(내부 governor 활성화 대신)에서 작동하도록 구성합니다. 이 모드는 하드웨어 관리 P-state(HWP) 기능과 함께 사용할 수 없습니다. -
force
- 기본적으로acpi-cpufreq
를 금지하는 시스템에서intel_pstate
를 활성화합니다.acpi-cpufreq
대신intel_pstate
드라이버를 강제 적용하면 OSPM에 표시되는 ACPI P-States 정보에 의존하는 열 제어 및 전원 제한과 같은 플랫폼 기능을 비활성화할 수 있으므로 주의해서 사용해야 합니다. 이 옵션은intel_pstate
드라이버 또는acpi-cpufreq
대신pcc-cpufreq
를 사용하는 플랫폼에서 지원되지 않는 프로세서에서는 작동하지 않습니다. -
no_hwp
- 사용 가능한 경우 하드웨어 P 상태 제어(HWP)를 활성화하지 마십시오. -
hwp_only
- 사용 가능한 경우 하드웨어 P 상태 제어(HWP)를 지원하는 시스템에서intel_pstate
만 로드합니다. -
support_acpi_ppc
- EnforceACPI _PPC
성능 제한. 고정 ACPI 설명 테이블이 기본 전원 관리 프로필을 "Enterprise Server" 또는 "Performance Server"로 지정하는 경우 이 기능은 기본적으로 켜집니다. -
per_cpu_perf_limits
-cpufreq sysfs
인터페이스를 사용하여 논리별 CPU P-State 성능 제어 제한을 허용합니다.
-
- kvm-arm.mode=[KVM,ARM]
이 커널 매개변수를 사용하면 KVM/arm64의 작업 모드 중 하나를 선택할 수 있습니다. 사용 가능한 값은 다음과 같습니다.
-
none
- KVM을 강제 비활성화합니다. -
nvhe
- 보호된 게스트를 지원하지 않고 표준 nVHE 기반 모드입니다. -
protected
- 상태를 호스트에서 비공개로 유지하는 게스트를 지원하는 nVHE 기반 모드입니다.보호
모드로 설정하면 호스트의kexec
및 hibernation이 비활성화됩니다. [NEW]
중첩 - 중첩된
가상화를 지원하는 VHE 기반 모드입니다. 최소 ARMv8.3 하드웨어가 필요합니다.중첩된
옵션은 실험적이며 주의해서 사용해야 합니다.기본값은 하드웨어 지원을 기반으로 VHE/nVHE입니다.
-
- libata.force=[LIBATA]
이 커널 매개 변수를 사용하면 구성을 강제 적용할 수 있습니다.
형식은 쉼표로 구분된 "[ID:]VAL" 목록입니다. 여기서 ID는 PORT[.DEVICE]입니다. PORT 및 DEVICE는 포트, 링크 또는 장치와 일치하는 10진수입니다. 기본적으로
libata
가 콘솔에 인쇄된 ATA ID 문자열과 일치합니다.-
전체 ID 부분이 생략되면 마지막
PORT
및DEVICE
값이 사용됩니다. - ID를 아직 지정하지 않은 경우 구성이 모든 포트, 링크 및 장치에 적용됩니다.
-
DEVICE
값만 생략하면 매개변수는 포트 및 그 뒤에 있는 모든 링크 및 장치에 적용됩니다. 0의 DEVICE 수는 PMP 장치 뒤의 첫 번째 장치 또는 첫 번째 팬 아웃 링크를 선택합니다. 호스트 링크를 선택하지 않습니다. 15의 DEVICE 번호는 호스트 링크와 연결된 장치를 선택합니다. VAL은 강제할 구성을 지정합니다. 모호성이 없는 한 바로 가기 표기법이 허용됩니다. 예를 들어 1.5G와 1.5G 모두 1.5Gbps에서 작동합니다.
libata.force=
매개변수를 사용하면 다음 구성을 강제 수행할 수 있습니다.- Cable 유형: 40c, 80c, short40c, unk,ign 또는 sata. 일치하는 PORT가 있는 모든 ID가 사용됩니다.
- SATA 링크 속도 제한: 1.5Gbps 또는 3.0Gbps.
- 전송 모드: pio[0-7], mwdma[0-4] 및 udma[0-7]. udma[/][16,33,44,66,100,133] 표기법도 허용됩니다.
-
nohrst
,nosrst
,norst
: 억제, 소프트 및 둘 다 재설정. -
rstonce
: 핫 언플러그 링크 복구 중에 하나의 재설정을 시도합니다. -
[NEW]
[no]dbdelay
: 링크를 중단하기 전에 추가 200ms 지연을 활성화하거나 비활성화합니다. -
[no]ncq
: CryostatQ를 켜거나 끕니다. -
[no]ncqtrim
: 대기 중인 DSM TRIM을 활성화하거나 비활성화합니다. -
[NEW]
[no]ncqati
: ATI 칩셋에서 CryostatQ 트리트를 활성화하거나 비활성화합니다. -
[NEW]
[no]trim
: Enable or disable (unqueued) TRIM. -
[NEW]
trim_zero
: TRIM 명령이 데이터를 0으로 표시합니다. -
[NEW]
max_trim_128m
: 128M 최대 트리트 크기 제한을 설정합니다. -
[NEW]
[no]dma
: 0.0.0.0 전송을 켜거나 끄십시오. -
atapi_dmadir
: ATAPI CryostatDIR 브리지 지원을 활성화합니다. -
atapi_mod16_dma
: 16바이트의 배수가 아닌 명령에 대해 ATAPI>-< 사용을 활성화합니다. -
[no]dmalog
: 로그에 액세스하기 위해 READ LOG Cryostat EXT 명령 사용을 활성화하거나 비활성화합니다. -
[no]iddevlog
: 식별 장치 데이터 로그에 대한 액세스를 활성화하거나 비활성화합니다. -
[no]logdir
: 일반 용도의 로그 디렉터리에 대한 액세스를 활성화하거나 비활성화합니다. -
[NEW]
max_sec_128
: 전송 크기 제한을 128 섹터로 설정합니다. -
[NEW]
max_sec_1024
: 1024 섹터로 전송 크기 제한을 설정하거나 지웁니다. -
[NEW]
max_sec_lba48
: 65535 섹터로 전송 크기 제한을 설정하거나 지웁니다. -
[NEW]
[no]lpm
: 링크 전원 관리를 활성화 또는 비활성화합니다. -
[NEW]
[no]setxfer
: 전송 속도 모드를 건너뛰어야 하는지를 나타냅니다. -
[NEW]
[no]fua
:이 기능을 지원하는 장치에 대한 FUA (Force Unit Access) 지원을 비활성화하거나 활성화합니다. -
dump_id
: Dump IDENTIFY data. disable
: 이 장치를 비활성화합니다.참고동일한 속성을 변경하는 일치하는 구성이 여러 개 있는 경우 마지막 구성이 사용됩니다.
-
전체 ID 부분이 생략되면 마지막
- mitigations=[X86,PPC,S390,ARM64]
이 커널 매개변수를 사용하면 CPU 취약점에 대한 선택적 완화 조치를 제어할 수 있습니다. 이는 선별된 아키텍처 독립적인 옵션 세트이며, 각 옵션은 기존 아키텍처별 옵션을 집계합니다. 사용 가능한 값은 다음과 같습니다.
off
- 모든 선택적 CPU 완화 기능을 비활성화합니다. 이렇게 하면 시스템 성능이 향상되지만 사용자를 여러 CPU 취약점에 노출할 수도 있습니다.off
값은 다음과 같습니다.- If nokaslr then kpti=0 [ARM64]
- gather_data_sampling=off [X86]
- kvm.nx_huge_pages=off [X86]
- l1tf=off [X86]
- mds=off [X86]
- mmio_stale_data=off [X86]
- no_entry_flush [PPC]
- no_uaccess_flush [PPC]
- nobp=0 [S390]
- nopti [X86,PPC]
- nospectre_bhb [ARM64]
- nospectre_v1 [X86,PPC]
- nospectre_v2 [X86,PPC,S390,ARM64]
- retbleed=off [X86]
- spec_store_bypass_disable=off [X86,PPC]
- spectre_v2_user=off [X86]
- SRBDS=off [X86,INTEL]
- ssbd=force-off [ARM64]
tsx_async_abort=off [X86]
예외:
kvm.nx_huge_pages
=force
-
Auto
(기본값) - 모든 CPU 취약점을 완화하지만 취약한 경우에도 SMT를 활성화 상태로 둡니다. 이는 SMT가 커널 업그레이드를 통해 비활성화되거나 SMT 기반 공격을 방지할 수 있는 다른 방법이 있는 사용자용입니다. Auto
,nosmt
- 필요한 경우 SMT를 비활성화하여 모든 CPU 취약점을 완화합니다. 이는 SMT 손실을 의미하더라도 항상 완전히 완화되기를 원하는 사용자를 위한 것입니다.auto
,nosmt
옵션은 다음과 같습니다.- l1tf=flush,nosmt [X86]
- mds=full,nosmt [X86]
- tsx_async_abort=full,nosmt [X86]
- mmio_stale_data=full,nosmt [X86]
- retbleed=auto,nosmt [X86]
- nomodeset
이 커널 매개변수를 사용하면 커널 모드 설정을 비활성화할 수 있습니다. 대부분의 시스템의 펌웨어는 디스플레이 모드를 설정하고 출력을 위한 프레임버퍼 메모리를 제공합니다.
nomodeset
에서는 Cryostat 및fbdev
드라이버가 미리 초기화된 출력을 대체할 수 있는 경우 로드되지 않습니다. 시스템 프레임 버퍼만 사용할 수 있습니다. 드라이버는 디스플레이 모드 변경 또는 가속화 렌더링을 수행하지 않습니다.이 매개변수는 오류 폴백 또는 테스트 및 디버깅에 특히 유용합니다.
- rdt=[HW,X86,RDT]
이 커널 매개변수를 사용하면 개별 RDT 기능을 켜거나 해제할 수 있습니다. 목록에는
cmt
,mbmtotal
,mbmlocal
,l3cat
,l3cdp
,l2cat
,l2cdp
,mba
,smba
,bmec
가 포함됩니다.예를 들어
cmt
를 켜고mba
사용을 끄려면 다음을 수행합니다.rdt=cmt,!mba
- rodata=[KNL]
이 커널 매개변수를 사용하면 읽기 전용 커널 매핑을 비활성화할 수 있습니다. 사용 가능한 옵션은 다음과 같습니다.
-
에서
읽기 전용 커널 메모리를 읽기 전용(기본값)으로 표시합니다. -
off
- 디버깅을 위해 쓰기 가능한 읽기 전용 커널 메모리를 유지합니다. -
[NEW]
full
- 읽기 전용 커널 메모리 및 별칭을 읽기 전용 [arm64]으로 표시합니다.
-
제거된 커널 매개변수
- nobats=[PPC]
- 이 커널 매개변수를 사용하면 "Classic" PPC 코어에서 커널 lowmem을 매핑하는 데 BAT를 사용할 수 있습니다.
- noltlbs=[PPC]
- 이 커널 매개변수를 사용하면 PPC40x 및 PPC8xx의 커널 lowmem 매핑에 대규모 페이지 및 tlb 항목을 사용할 수 있습니다.
- swapaccount=[0|1]=[KNL]
-
이 커널 매개변수를 사용하면 메모리 리소스 컨트롤러에서 스왑 계산을 활성화하거나 비활성화할 수 있습니다. 자세한 내용은
Documentation/admin-guide/cgroup-v1/memory.rst
를 참조하십시오.
6장. 장치 드라이버
6.1. 새로운 드라이버
네트워크 드라이버
-
MediaTek MT7601U(USB) 지원(
mt7601u
)은 MT7601U 기반 무선 USB 동글(64비트 ARM 아키텍처에서만) 지원 추가 -
MediaTek MT76x0E(PCIe) 지원(
mt76x0e
)은 MT7610/MT7630 기반 무선 PCIe 장치(64비트 ARM 아키텍처에서만)에 대한 지원을 추가합니다. -
MediaTek MT76x0U (USB) 지원 (
mt76x0u
)은 MT7610U 기반 무선 USB 2.0 동글 (64 비트 ARM 아키텍처에서만)에 대한 지원을 추가합니다. -
MediaTek MT76x2E(PCIe) 지원(
mt76x2e
)은 MT7612/MT7602/MT7662 기반 무선 PCIe 장치(64비트 ARM 아키텍처에서만)에 대한 지원을 추가합니다. -
MediaTek MT76x2U (USB) 지원 (
mt76x2u
)은 MT7612U 기반 무선 USB 3.0 동글 (64 비트 ARM 아키텍처에서만)에 대한 지원을 추가합니다. -
MediaTek MT7921E(PCIe) 지원(
mt7921e
)은 MT7921E Cryostatax 2x2:2SS 무선 장치(64비트 ARM 아키텍처에서만)에 대한 지원을 추가합니다. -
Atheros 드라이버 Cryostatn Cryostat 기반 무선 장치 (
ath9k_htc
) (64 비트 ARM 아키텍처에서만) -
Broadcom Cryostatn 무선 LAN 드라이버 (
brcmsmac
) (64 비트 ARM 아키텍처에서만) -
Broadcom Cryostatn 무선 LAN 드라이버 유틸리티(
brcmutil
) (64비트 ARM 아키텍처에서만) -
Broadcom Cryostat 무선 LAN fullmac 드라이버(
brcmfmac
) (64비트 ARM 아키텍처에서만) -
Qualcomm Atheros Cryostatac 무선 LAN 카드 (
ath10k_core
)의 코어 모듈 (64 비트 ARM 아키텍처에서만) -
Qualcomm Atheros Cryostatax 무선 LAN 카드 (
ath11k
)의 코어 모듈 (64 비트 ARM 아키텍처에서만) -
장치 시뮬레이터 for Cryostat 프레임 워크 (
wwan_hwsim
) -
Qualcomm Atheros Cryostatac Cryostat PCIe/AHB 장치(
ath10k_pci
)에 대한 드라이버 지원 (64비트 ARM 아키텍처에서만) -
Qualcomm Technologies Cryostatax PCIe 장치(
ath11k_pci
)에 대한 드라이버 지원 (64비트 ARM 아키텍처에서만) -
Linux용 Intel® wireless Wi-Fi 드라이버(
iwlwifi
) (64비트 ARM 아키텍처에서만) -
Intel®wire Wi-Fi Link AGN 드라이버 for Linux (
iwldvm
) - (64비트 ARM 아키텍처에서만) -
IOSM 드라이버 (
iosm
) -
Marvell everyone-Ex Driver 버전 1.0 (
mwifiex
) (64 비트 ARM 아키텍처에서만) -
Marvell everyone-Ex PCI-Express Driver 버전 1.0 (
mwifiex_pcie
) (64비트 ARM 아키텍처에서만) -
Marvell everyone-Ex SDIO 드라이버 버전 1.0 (
mwifiex_sdio
) (64 비트 ARM 아키텍처에서만) -
Marvell everyone-Ex USB Driver 버전 1.0 (
mwifiex_usb
) (64비트 ARM 아키텍처에서만) -
MediaTek PCIe 5G Cryostat exploit T7xx 드라이버 (
mtk_t7xx
) -
MHI(
mhi_wan_mbim
)를 통한 네트워크/MBIM(64비트 ARM 아키텍처, IBM Power Systems, Little Endian, AMD 및 Intel 64비트 아키텍처에서만) -
rtlwifi (
rtl_pci
)를 위한 PCI 기본 드라이버 (64 비트 ARM 아키텍처에서만) -
Ralink RT2800 라이브러리 버전 2.3.0(
rt2800lib
) (64비트 ARM 아키텍처에서만) -
Ralink RT2800 PCI & PCMCIA wireless LAN 드라이버 버전 2.3.0 (
rt2800pci
) (64비트 ARM 아키텍처에서만) -
Ralink RT2800 USB wireless LAN 드라이버 버전 2.3.0 (
rt2800usb
) (64비트 ARM 아키텍처에서만) -
Realtek Cryostatac 무선 8821c 드라이버 (
rtw88_8821c
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatac 무선 8821ce 드라이버 (
rtw88_8821ce
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatac 무선 8822b 드라이버 (
rtw88_8822b
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatac 무선 8822be 드라이버 (
rtw88_8822be
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatac 무선 8822c 드라이버 (
rtw88_8822c
) - (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatac 무선 8822ce 드라이버 (
rtw88_8822ce
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatac 무선 코어 모듈 (
rtw88_core
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatac 무선 PCI 드라이버 (
rtw88_pci
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatax 무선 8852A 드라이버(
rtw89_8852a
) (64비트 ARM 아키텍처에서만) -
Realtek Cryostatax 무선 8852AE 드라이버(
rtw89_8852ae
) (64비트 ARM 아키텍처에서만) -
Realtek Cryostatax 무선 8852B 드라이버(
rtw89_8852b
)(64비트 ARM 아키텍처 및 AMD 및 Intel 64비트 아키텍처에서만) -
Realtek Cryostatax 무선 8852BE 드라이버(
rtw89_8852be
)(64비트 ARM 아키텍처 및 AMD 및 Intel 64비트 아키텍처에서만) -
Realtek Cryostatax 무선 코어 모듈 (
rtw89_core
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatax 무선 PCI 드라이버(
rtw89_pci
) (64비트 ARM 아키텍처에서만) -
Realtek Cryostatn PCI 무선 코어 (
btcoexist
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatn PCI 무선 코어(
rtlwifi
) (64비트 ARM 아키텍처에서만) -
Realtek Cryostatn 무선 8723d 드라이버 (
rtw88_8723d
) (64 비트 ARM 아키텍처에서만) -
Realtek Cryostatn 무선 8723de 드라이버(
rtw88_8723de
) (64비트 ARM 아키텍처에서만) -
Realtek 8188E Cryostatn PCI 무선 (
rtl8188ee
) (64 비트 ARM 아키텍처에서만) -
Realtek 8192C/8188C Cryostatn PCI 무선 (
rtl8192c-common
) (64 비트 ARM 아키텍처에서만) -
Realtek 8192C/8188C Cryostatn PCI 무선 (
rtl8192ce
) (64비트 ARM 아키텍처에서만) -
Realtek 8192C/8188C Cryostatn USB 무선 (
rtl8192cu
) (64 비트 ARM 아키텍처에서만) -
Realtek 8192DE 192.0.2.n Dual Mac PCI 무선 (
rtl8192de
) (64 비트 ARM 아키텍처에서만) -
Realtek 8192EE Cryostatn PCI 무선 (
rtl8192ee
) (64 비트 ARM 아키텍처에서만) -
Realtek 8192S/8191SECDHEn PCI 무선 (
rtl8192se
) (64 비트 ARM 아키텍처에서만) -
Realtek 8723BE Cryostatn PCI 무선 (
rtl8723be
) (64 비트 ARM 아키텍처에서만) -
Realtek 8723E Cryostatn PCI 무선 (
rtl8723ae
) (64 비트 ARM 아키텍처에서만) -
Realtek 8821ae Cryostatac PCI 무선 (
rtl8821ae
) (64 비트 ARM 아키텍처에서만) -
Realtek RTL8723AE/RTL8723BE Cryostatn PCI 무선 공통 루틴(
rtl8723-common
) (64비트 ARM 아키텍처에서만) -
rt2800 MMIO 라이브러리 버전 2.3.0(
rt2800mmio
) (64비트 ARM 아키텍처에서만) -
rt2x00 라이브러리 버전 2.3.0(
rt2x00lib
) (64비트 ARM 아키텍처에서만) -
rt2x00 mmio 라이브러리 버전 2.3.0(
rt2x00mmio
) (64비트 ARM 아키텍처에서만) -
rt2x00 pci 라이브러리 버전 2.3.0 (
rt2x00pci
) (64비트 ARM 아키텍처에서만) -
rt2x00 usb 라이브러리 버전 2.3.0 (
rt2x00usb
) (64비트 ARM 아키텍처에서만) -
RTL8XXXu USB mac80211 wireless LAN Driver (
rtl8xxxu
) (64비트 ARM 아키텍처에서만) -
Atheros 무선 192.0.2.n LAN 카드용 공유 라이브러리(
ath9k_common
) (64비트 ARM 아키텍처에서만) -
Atheros 무선 LAN 카드(
ath
)용 공유 라이브러리(64비트 ARM 아키텍처에서만) -
Atheros Cryostatn 무선 LAN 카드 (
ath9k_hw
)에 대한 지원 (64 비트 ARM 아키텍처에서만) -
Atheros Cryostatn 무선 LAN 카드 (
ath9k
) 지원 (64 비트 ARM 아키텍처에서만) -
Linux 용 새로운 Intel® 무선 AGN 드라이버 (
iwlmvm
) (64 비트 ARM 아키텍처에서만) -
Thunderbolt/ USB4 네트워크 드라이버 (
thunderbolt_net
) -
rtlwifi (
rtl_usb
) 용 USB 기본 드라이버 (64 비트 ARM 아키텍처에서만)
그래픽 드라이버 및 기타 드라이버
-
Atheros AR30xx 펌웨어 드라이버 1.0(
ath3k
) (64비트 ARM 아키텍처에서만) -
BlueFRITZ! USB 드라이버 버전 1.2(
bfusb
)(64비트 ARM 아키텍처에서만) -
Bluetooth HCI UART 드라이버 버전 2.3 (
hci_uart
) (64 비트 ARM 아키텍처에서만) -
Broadcom 장치 버전 0.1 (
btbcm
)에 대한 Bluetooth 지원 (64 비트 ARM 아키텍처에서만) -
Intel 장치 버전 0.1(
btintel
)에 대한 Bluetooth 지원 (64비트 ARM 아키텍처에서만) -
MediaTek 장치 버전 0.1 (
btmtk
)에 대한 Bluetooth 지원 (64 비트 ARM 아키텍처에서만) -
Realtek 장치 버전 0.1 (
btrtl
)에 대한 Bluetooth 지원 (64 비트 ARM 아키텍처에서만) -
Bluetooth 가상 HCI 드라이버 버전 1.5(
hci_vhci
) (64비트 ARM 아키텍처에서만) -
Broadcom Blutonium 펌웨어 드라이버 버전 1.2 (
bcm203x
) (64 비트 ARM 아키텍처에서만) -
Cryostatanswer Bluetooth USB 드라이버 버전 0.11 (
bpa10x
) (64 비트 ARM 아키텍처에서만) -
일반 Bluetooth SDIO 드라이버 버전 0.1(
btsdio
) (64비트 ARM 아키텍처에서만) -
일반 Bluetooth USB 드라이버 버전 0.8 (
btusb
) (64 비트 ARM 아키텍처에서만) -
Marvell Bluetooth 드라이버 버전 1.0(
btmrvl
) (64비트 ARM 아키텍처에서만) -
Marvell BT-over-SDIO 드라이버 버전 1.0(
btmrvl_sdio
) (64비트 ARM 아키텍처에서만) -
BMC IPMI SSIF 인터페이스의 Linux 장치 드라이버(
sif_bmc
) (64비트 ARM 아키텍처에서만) -
VTPM 드라이버 버전 0.1 (
tpm_vtpm_proxy
) -
AMD P-state 드라이버 테스트 모듈 (
amd-pstate-ut
) ( AMD 및 Intel 64비트 아키텍처에서만) -
Compute Express Link (CXL) ACPI 드라이버 (
cxl_acpi
) (64비트 ARM 아키텍처 및 AMD 및 Intel 64비트 아키텍처에서만) -
Compute Express Link (CXL) 코어 드라이버 (
cxl_core
) -
Compute Express Link (CXL) 포트 드라이버 (
cxl_port
) -
NVIDIA Tegra GPC>-< Controller 드라이버 (
tegra186-gpc-dma
) (64비트 ARM 아키텍처에서만) -
Cryostat Buddy Al Cryostat (
drm_buddy
) (64 비트 IBM Z 아키텍처에서만) -
Cryostat 디스플레이 어댑터 도우미 (
drm_display_helper
) (64 비트 IBM Z 아키텍처에서만) -
Cryostat 장치(Hid
-evision
)의 HID 드라이버(64비트 ARM 아키텍처, IBM Power Systems, Little Endian, AMD 및 Intel 64비트 아키텍처에서만) -
Texas Instruments INA3221 HWMon 드라이버 (
ina3221
) (64 비트 ARM 아키텍처에서만) -
I3C 코어 (
i3c
) (64 비트 ARM 아키텍처에서만) -
Silvaco 듀얼 역할 I3C 마스터 드라이버 (
svc-i3c-master
) (64 비트 ARM 아키텍처에서만) -
Microsoft Azure Network Adapter IB 드라이버 (
mana_ib
) ( AMD 및 Intel 64비트 아키텍처에서만) -
소프트 RDMA 전송 (
rdma_rxe
) -
I.MX8MP 상호 연결 드라이버 - i.MX SOCs용 일반 상호 연결 드라이버(
imx8mp-interconnect
)(64비트 ARM 아키텍처에서만) -
Linux USB video 클래스(
uvc
)(64비트 ARM 아키텍처, IBM Power Systems, Little Endian, AMD 및 Intel 64비트 아키텍처에서만) -
videobuf2 (
videobuf2-memops
)의 일반적인 메모리 처리 루틴 (64 비트 ARM 아키텍처에서만) -
cec 드라이버의 장치 노드 등록 (
cec
) (64 비트 IBM Z 아키텍처에서만) -
미디어 드라이버(
mc
)에 대한 장치 노드 등록 (64비트 ARM 아키텍처에서만) -
Linux 2용 비디오용 드라이버 도우미 프레임워크(
videobuf2-v4l2
) (64비트 ARM 아키텍처에서만) -
미디어 버퍼 코어 프레임워크(
videobuf2-common
) (64비트 ARM 아키텍처에서만) -
USB 비디오 클래스 드라이버 버전 1.1.1 (
uvcvideo
) (64 비트 ARM 아키텍처에서만) -
V4L2 DV Timings Helper Functions (
v4l2-dv-timings
) (64비트 ARM 아키텍처에서만) -
video4Linux2 코어 드라이버(
videodev
) (64비트 ARM 아키텍처에서만) -
videobuf2 (
videobuf2-vmalloc
)에 대한 vmalloc 메모리 처리 루틴 (64 비트 ARM 아키텍처에서만) -
SPI NOR(
spi-nor
)용 프레임워크 (64비트 ARM 아키텍처에서만) -
Marvell CN10K DRAM Cryostat(DSS) PMU(
marvell_cn10k_ddr_pmu
) (64비트 ARM 아키텍처에서만) -
Marvell CN10K LLC-TAD Perf 드라이버 (
marvell_cn10k_tad_pmu
) (64비트 ARM 아키텍처에서만) -
Intel Meteor Lake PCH pinctrl/GPIO 드라이버(
pinctrl-meteorlake
) ( AMD 및 Intel 64비트 아키텍처에서만) -
Intel In Field Scan (IFS) 장치 (
intel_ifs
) ( AMD 및 Intel 64비트 아키텍처에서만) -
NVIDIA Cryostat EC Backlight 드라이버 (
nvidia-wmi-ec-backlight
) ( AMD 및 Intel 64비트 아키텍처에서만) -
QMI 인코더/디코더 도우미(
qmi_helpers
) (64비트 ARM 아키텍처에서만) -
AMD soundwire 드라이버(
soundwire-amd
)( AMD 및 Intel 64비트 아키텍처에서만) -
NVIDIA Tegra114 SPI 컨트롤러 드라이버 (
spi-tegra114
) (64 비트 ARM 아키텍처에서만) -
STMicroelectronics STUSB160x Type-C 컨트롤러 드라이버 (
stusb160x
) (64 비트 ARM 아키텍처에서만) -
MLX5 VFIO PCI - MLX5 장치 제품군의 사용자 수준 메타 드라이버 (
mlx5-vfio-pci
)
6.2. 업데이트된 드라이버
네트워크 드라이버 업데이트
-
Realtek RTL8152/RTL8153 기반 USB 이더넷 어댑터(
r8152
)가 v1.12.13 버전(64비트 ARM 아키텍처, IBM Power Systems, Little Endian, AMD 및 Intel 64비트 아키텍처에서만)으로 업데이트되었습니다.
스토리지 드라이버 업데이트
-
Broadcom MegaRAID SAS 드라이버(
megaraid_sas
)가 07.725.01.00-rc1 버전으로 업데이트되었습니다(64비트 ARM 아키텍처, IBM Power Systems, Little Endian, AMD 및 Intel 64비트 아키텍처에서만). -
Microchip Smart Family Controller(
smartpqi
)용 드라이버가 버전 2.1.22-040으로 업데이트되었습니다(64비트 ARM 아키텍처, IBM Power Systems, Little Endian, AMD 및 Intel 64비트 아키텍처에서만). -
Emulex LightPulse Fibre Channel SCSI 드라이버(
lpfc
)가 0:14.2.0.12 버전으로 업데이트되었습니다(64비트 ARM 아키텍처, IBM Power Systems, Little Endian, AMD 및 Intel 64비트 아키텍처에서만). -
MPI3 스토리지 컨트롤러 장치 드라이버(
mpi3mr
)가 버전 8.4.1.0.0으로 업데이트되었습니다.
7장. 사용 가능한 BPF 기능
이 장에서는 Red Hat Enterprise Linux 9의 이 마이너 버전의 커널에서 사용할 수 있는BPF
( Berkeley Packet Filter
) 기능의 전체 목록을 제공합니다. 테이블에는 다음과 같은 목록이 포함됩니다.
이 장에서는 bpftool feature
명령의 자동 생성된 출력이 포함되어 있습니다.
표 7.1. 시스템 구성 및 기타 옵션
옵션 | 현재의 |
---|---|
unprivileged_bpf_disabled | 2 (권한 있는 사용자로 제한 된 BPF() syscall, 관리자가 변경할 수 있음) |
Cryostat 컴파일러 | 1 (활성화) |
Cryostat 컴파일러 강화 | 1 (권한 없는 사용자에 대해 사용 가능) |
Cryostat 컴파일러 kallsyms 내보내기 | 1 (root에 사용) |
권한이 없는 사용자의 메모리 제한 | 528482304 |
CONFIG_BPF | y |
CONFIG_BPF_SYSCALL | y |
CONFIG_HAVE_EBPF_JIT | y |
CONFIG_BPF_JIT | y |
CONFIG_BPF_JIT_ALWAYS_ON | y |
CONFIG_DEBUG_INFO_BTF | y |
CONFIG_DEBUG_INFO_BTF_MODULES | y |
CONFIG_CGROUPS | y |
CONFIG_CGROUP_BPF | y |
CONFIG_CGROUP_NET_CLASSID | y |
CONFIG_SOCK_CGROUP_DATA | y |
CONFIG_BPF_EVENTS | y |
CONFIG_KPROBE_EVENTS | y |
CONFIG_UPROBE_EVENTS | y |
CONFIG_TRACING | y |
CONFIG_FTRACE_SYSCALLS | y |
CONFIG_FUNCTION_ERROR_INJECTION | y |
CONFIG_BPF_KPROBE_OVERRIDE | n |
CONFIG_NET | y |
CONFIG_XDP_SOCKETS | y |
CONFIG_LWTUNNEL_BPF | y |
CONFIG_NET_ACT_BPF | m |
CONFIG_NET_CLS_BPF | m |
CONFIG_NET_CLS_ACT | y |
CONFIG_NET_SCH_INGRESS | m |
CONFIG_XFRM | y |
CONFIG_IP_ROUTE_CLASSID | y |
CONFIG_IPV6_SEG6_BPF | y |
CONFIG_BPF_LIRC_MODE2 | n |
CONFIG_BPF_STREAM_PARSER | y |
CONFIG_NETFILTER_XT_MATCH_BPF | m |
CONFIG_BPFILTER | n |
CONFIG_BPFILTER_UMH | n |
CONFIG_TEST_BPF | m |
CONFIG_HZ | 1000 |
bpf() syscall | 사용 가능 |
대규모 프로그램 크기 제한 | 사용 가능 |
바인딩된 루프 지원 | 사용 가능 |
ISA 확장 v2 | 사용 가능 |
ISA 확장 v3 | 사용 가능 |
표 7.2. 사용 가능한 프로그램 유형 및 지원되는 도우미
프로그램 유형 | 사용 가능한 도우미 |
---|---|
socket_filter | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_kb_load_bytes_relative, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_stf, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
kprobe | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_current_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_read_value, bpf_get_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pidtgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_query bpf_get_task_stack, bpf_copy_from_user, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_delete, bpf_get_current_task_delete, bpf_get_current_task_delete bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
sched_cls | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_kb_delete_elem bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_vlan_pop_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_get_redirect_key bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xfrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup, bpf_skb_lookup bpf_skb_cgroup_id, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_sk_lookup_tcp bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_boot_ns, bpf_ringf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_task_pt_regs, bpf_skc_to_unix_ock, bpf_loop, bpf_strncmp, bpf_skb_set_tstamp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_write, bpf_dynptr_data, bpf_tcp_raw_gen_syncookie_syncookie_ipv4, bpf_raw_gen_syncookie_ipv6, bpf_raw_check_syncookie_ipv4, bpf_tcp_raw_check_syncookie_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
sched_act | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_kb_delete_elem bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_vlan_pop_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_get_redirect_key bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xfrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup, bpf_skb_lookup bpf_skb_cgroup_id, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_sk_lookup_tcp bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_boot_ns, bpf_ringf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_task_pt_regs, bpf_skc_to_unix_ock, bpf_loop, bpf_strncmp, bpf_skb_set_tstamp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_write, bpf_dynptr_data, bpf_tcp_raw_gen_syncookie_syncookie_ipv4, bpf_raw_gen_syncookie_ipv6, bpf_raw_check_syncookie_ipv4, bpf_tcp_raw_check_syncookie_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
tracepoint | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_current_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_read_value, bpf_get_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pidtgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_query bpf_get_task_stack, bpf_copy_from_user, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_delete, bpf_get_current_task_delete, bpf_get_current_task_delete bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
xdp | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_redirect, bpf_perf_event_output, bpf_csum_diff, bpf_get_current_task, bpf_get_numa_node_id, bpf_xdp_adjust_head, bpf_redirect_map, bpf_xdp_adjust_map, bpf_xdp_djust_meta, bpf_get_current_task bpf_xdp_adjust_tail, bpf_fib_lookup, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_spin_unlock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_stf, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_xdp_get_buff_len, bpf_xdp_load_load_bytes, bpf_xdp_store_bytes, bpf_xdp_store_bytes bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_dynptr, bpf_ringbuf_dynptr bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_raw_gen_syncookie_ipv4, bpf_tcp_raw_gen_syncookie_ipv6, bpf_tcp_raw_check_syncookie_syncookie_ipv4, bpf_raw_check_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
perf_event | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_current_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_read_value, bpf_prog_read_value, bpf_get_get_stack, bpf_get_stack, bpf_probe_read_value bpf_get_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_spin_unlock, bpf_strtol, bpf_strtol, bpf_strtoul, bpf_map_pop_elem bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_jiffies64, bpf_read_branch_records, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_per_cpu_ptr, bpf_this_cpu_ptr bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_callback, bpf_timer_callback, bpf_timer_callback bpf_timer_cancel, bpf_get_func_ip, bpf_get_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get bpf_cgrp_storage_delete |
cgroup_skb | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_kb_load_bytes_relative, bpf_skb_cgroup_id, bpf_get_local_storage, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_lookup_release, bpf_map_push_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_strtol, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_sk_cgroup_id, bpf_sk_ancestor_cgroup_id, bpf_probe_output, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_sock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_stf, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
cgroup_sock | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_current_pid_tgid, bpf_get_uid_gid, bpf_get_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_current_cgroup_id, bpf_get_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtol, bpf_sk_storage_get, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_user_str, bpf_probe_kernel, bpf_probe_kernel bpf_jiffies64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit, bpf_ringbuf_reserve bpf_ringbuf_discard, bpf_ringbuf_query, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_task_pt_regs, bpf_loop, bpf_timer_set_callback, bpf_timer_cancel bpf_strncmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
lwt_in | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_lwt_push_encap, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_map_pust_elem bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_str, bpf_probe_read_kernel, bpf_probe_read_kernel, bpf_probe_read_kernel, bpf_probe_read_kernel bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_ringbuf_query, bpf_ringbuf_to_tcps bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn#159_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn 0.0.0.0, bpf_timer_init, bpf_get_task_btf bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_submit_dynptr, bpf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_ringbuf_discard_dynptr, bpf_ringbuf_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_dynptr bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete, bpf_dynptr_delete |
lwt_out | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_elem, bpf_map_spin_lock, bpf_get_node_id, bpf_map_push_elem bpf_spin_unlock, bpf_strtol, bpf_strtol, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_kernel_str, bpf_jiffies64, bpf_probe_read_user bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_kc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn#159_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn 0.0.0.0, bpf_timer_init, bpf_get_task_btf bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_submit_dynptr, bpf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_ringbuf_discard_dynptr, bpf_ringbuf_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_dynptr bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete, bpf_dynptr_delete |
lwt_xmit | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_kb_delete_elem bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_get_tunnel_key, bpf_skb_set_unnn_key, bpf_tail_csum_key, bpf_skb_set_key bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_set_tunnel_opt bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_lwt_push_encap, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_map_ppin_lock, bpf_lwt_push_elem bpf_spin_unlock, bpf_strtol, bpf_strtol, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_kernel_str, bpf_jiffies64, bpf_probe_read_user bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_sk_to_tcps, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn#159_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn 0.0.0.0, bpf_timer_init, bpf_get_task_btf bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_submit_dynptr, bpf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_ringbuf_discard_dynptr, bpf_ringbuf_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_dynptr bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete, bpf_dynptr_delete |
sock_ops | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_sock_map_update, bpf_getsockopt, bpf_getsockopt, bpf_getsockopt, bpf_getsockopt, bpf_getsock_link_set bpf_sock_hash_update, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_map_push_elem bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_kernel, bpf_probe_kernel bpf_jiffies64, bpf_get_netns_cookie, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_discard bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_sock, bpf_skc_to_udp6_sock, bpf_load_hdr_opt, bpf_store_hdr_opt, bpf_reserve_hdr_opt, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_ttf, bpf_get_current_task_btf, bpf_reserve_opt bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
sk_skb | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_kb_delete_elem bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_sk_adjust_room, bpf_sk_redirect_map, bpf_sk_redirect_hash, bpf_sk_lookup_tcp, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_spin_unlock, bpf_sk_lookup_tcp, bpf_map_pop_elem bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_probe_read_user bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_skc_to_tcp_request_sock bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_dynptr, bpf_ringbuf_discard_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete, bpf_dynptr_delete |
cgroup_device | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_current_pid_tgid, bpf_get_uid_gid, bpf_get_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_group_id, bpf_probe_read_user bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_ringbuf_btf, bpf_ringbuf_bt, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
sk_msg | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_current_pid_tgid, bpf_get_uid_gid, bpf_get_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_msg_redirect_map, bpf_get_cgroup_classid, bpf_get_current_task bpf_msg_apply_bytes, bpf_msg_cork_bytes, bpf_msg_pull_data, bpf_msg_redirect_hash, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_map_pop_elem, bpf_msg_redirect_data bpf_map_peek_elem, bpf_msg_data, bpf_msg_pop_data, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_query bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn#159, bpf_get_current_task_btf bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_timer_cancel bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_dynptr, bpf_ringbuf_dynptr bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get bpf_cgrp_storage_delete |
raw_tracepoint | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_current_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_read_value, bpf_get_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pidtgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_query bpf_get_task_stack, bpf_copy_from_user, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_delete, bpf_get_current_task_delete, bpf_get_current_task_delete bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_lookup_elem, bpf_dynptr_from_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
cgroup_sock_addr | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_current_pid_tgid, bpf_get_uid_gid, bpf_get_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_getsockopt, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_sk_lookup_tcp, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_skc_lookup_tcp, bpf_skc_tcp, bpf_map_peek_elem bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_user_str, bpf_probe_read_str, bpf_probe_read_str, bpf_probe_read_str bpf_jiffies64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit, bpf_ringbuf_reserve bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_task_pt_regs, bpf_skc_to_unix_ock, bpf_loop, bpf_strncmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
lwt_seg6local | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_lwt_seg6_store_bytes, bpf_lwt_seg6_adjust_srh, bpf_lwt_seg6_srh bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_stf, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
lirc_mode2 | 지원되지 않음 |
sk_reuseport | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_skb_load_relative, bpf_sk_select_reuseport, bpf_map_push_em, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_spin_unlock, bpf_strtol, bpf_strtool, bpf_probe_read_user, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_submit bpf_ringbuf_discard, bpf_ringbuf_query, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_task_pt_regs, bpf_loop, bpf_timer_set_callback, bpf_timer_cancel bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_sub_mit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get bpf_cgrp_storage_delete |
flow_dissector | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_skb_load_bytes, bpf_get_current_task, bpf_get_get_node_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_elem, bpf_map_spin_lock, bpf_get_node_id, bpf_map_push_elem bpf_spin_unlock, bpf_strtol, bpf_strtol, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_kernel_str, bpf_jiffies64, bpf_probe_read_user bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_kc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_sn#159_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn 0.0.0.0, bpf_timer_init, bpf_get_task_btf bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_strncmp, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_submit_dynptr, bpf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_ringbuf_discard_dynptr, bpf_ringbuf_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_dynptr bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete, bpf_dynptr_delete |
cgroup_sysctl | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_current_pid_tgid, bpf_get_uid_gid, bpf_get_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sysctl_get_name, bpf_sysctl_get_current_value, bpf_sysctl_get_new_value, bpf_sysctl_set_new_value, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_init, bpf_timer_set_callback, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbufreserve_dynpt_from_mem bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
raw_tracepoint_writable | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_current_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_read_value, bpf_get_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pidtgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_query bpf_get_task_stack, bpf_copy_from_user, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_delete, bpf_get_current_task_delete, bpf_get_current_task_delete bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_lookup_elem, bpf_dynptr_from_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
cgroup_sockopt | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_get_current_pid_tgid, bpf_get_uid_gid, bpf_get_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_strtol, bpf_strtol, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_kernel, bpf_probe_read_user bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_reserve, bpf_ringbuf_reserve bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ bpf_for_each_map_elem, bpf_sn Cryostat, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_task_pt_regs, bpf_loop, bpf_timer_set_callback, bpf_timer_cancel bpf_strncmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
tracing | 지원되지 않음 |
struct_ops | 지원되지 않음 |
ext | 지원되지 않음 |
LSM | 지원되지 않음 |
sk_lookup | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_map_peek_elem, bpf_map_peek_elem bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_str, bpf_probe_read_kernel, bpf_probe_read_kernel, bpf_probe_read_kernel, bpf_probe_read_kernel bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_discard, bpf_ringbuf_query bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_sock, bpf_skc_to_udp6_sock, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_sn#159, bpf_get_current_task_btf bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_timer_cancel bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_dynptr, bpf_ringbuf_dynptr bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get bpf_cgrp_storage_delete |
syscall | bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_current_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_get_socket_cookie, bpf_perf_read_value, bpf_get_get_stack, bpf_get_get_stack, bpf_get_get_stack, bpf_get_get_stack bpf_get_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_spin_unlock, bpf_strtol, bpf_strtol, bpf_strtoul, bpf_map_pop_elem bpf_sk_storage_get, bpf_sk_storage_delete, bpf_send_signal, bpf_skb_output, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_str, bpf_probe_read_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_current_tgid, bpf_xdp_output, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_kc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_get_task_stack, bpf_get_task_stack, bpf_d_path, bpf_copy_from_user, bpf_sn Cryostat_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_delete, bpf_get_current_task_btf, bpf_per_cpu_ptr bpf_sock_from_file, bpf_for_each_map_elem, bpf_sn Cryostat, bpf_sys_bpf, bpf_btf_find_kind, bpf_sys_close, bpf_sys_close, bpf_timer_init, bpf_timer_call_call, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_skc_to_unix_sock, bpf_kallsyms_lookup_name, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_xdp_get_buff_len, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_map_lookup_to_tcp_site, bpf_sk_to_tcp_site bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete |
표 7.3. 사용 가능한 맵 유형
맵 유형 | Available |
---|---|
hash | 제공됨 |
array | 제공됨 |
prog_array | 제공됨 |
perf_event_array | 제공됨 |
percpu_hash | 제공됨 |
percpu_array | 제공됨 |
stack_trace | 제공됨 |
cgroup_array | 제공됨 |
lru_hash | 제공됨 |
lru_percpu_hash | 제공됨 |
lpm_trie | 제공됨 |
array_of_maps | 제공됨 |
hash_of_maps | 제공됨 |
devmap | 제공됨 |
sockmap | 제공됨 |
cpumap | 제공됨 |
xskmap | 제공됨 |
sockhash | 제공됨 |
cgroup_storage | 제공됨 |
reuseport_sockarray | 제공됨 |
percpu_cgroup_storage | 제공됨 |
대기열 | 제공됨 |
stack | 제공됨 |
sk_storage | 제공됨 |
devmap_hash | 제공됨 |
struct_ops | 제공됨 |
ringbuf | 제공됨 |
inode_storage | 제공됨 |
task_storage | 제공됨 |
bloom_filter | 제공됨 |
user_ringbuf | 제공됨 |
cgrp_storage | 제공됨 |
8장. 버그 수정
이 부분에서는 사용자에게 상당한 영향을 미치는 Red Hat Enterprise Linux 9.3에서 수정된 버그에 대해 설명합니다.
8.1. 설치 프로그램 및 이미지 생성
이제 설치 프로그램에서 url
Kickstart 명령의 --proxy
옵션을 올바르게 처리합니다.
이전에는 설치 프로그램에서 url
Kickstart 명령의 --proxy
옵션을 올바르게 처리하지 않았습니다. 결과적으로 지정된 프록시를 사용하여 설치 이미지를 가져올 수 없었습니다. 이번 업데이트를 통해 문제가 해결되어 --proxy
옵션이 예상대로 작동합니다.
liveimg
의 --noverifyssl
옵션은 더 이상 HTTPS를 사용하여 다운로드한 이미지의 서버의 인증서를 확인하지 않음
이전에는 설치 프로그램에서 liveimg
Kickstart 명령에서 --noverifyssl
옵션을 무시했습니다. 결과적으로 HTTPS 프로토콜을 사용하여 다운로드한 이미지의 서버 인증서를 검증할 수 없는 경우 설치 프로세스가 실패했습니다. 이번 업데이트를 통해 이 문제가 수정되었으며 liveimg
Kickstart 명령의 --noverifyssl
옵션이 올바르게 작동합니다.
Anaconda에서 FIPS 요구 사항에 대한 LUKS 암호 확인
이전에는 기본 툴이 이 검사를 수행한 경우에도 Anaconda에서 LUKS 암호의 길이가 FIPS 요구 사항을 충족하는지 확인하지 않았습니다. 결과적으로 8자보다 짧은 암호를 사용하여 FIPS 모드로 설치하면 설치 프로그램이 조기에 중지되었습니다.
이번 업데이트를 통해 설치 프로그램이 개선되어 암호의 최소 길이를 검증하고 시행합니다. 결과적으로 설치 프로그램은 FIPS 모드에서 LUKS 암호가 너무 짧은지 확인하고 예기치 않은 중지를 방지합니다.
xfsprogs
의 새 버전이 더 이상 /boot
의 크기를 축소하지 않음
이전에는 RHEL 9.3에서 5.19 버전이 있는 xfsprogs
패키지로 인해 /boot
크기가 축소되었습니다. 그 결과 RHEL 9.2 버전과 비교하면 /boot
파티션에서 사용 가능한 공간이 변경되었습니다. 이번 수정을 통해 500MiB가 아닌 모든 이미지의 /boot
파티션을 600MiB로 늘리며 /boot
파티션은 더 이상 공간 문제의 영향을 받지 않습니다.
8.2. 보안
OpenSSL 명령 cm 및
은 FIPS 모드에서 파일을 암호화할 수 있습니다.s
mime
이전에는 cm 및
OpenSSL 명령의 기본 구성에서 3DES 또는 PKCS #1 v1.5와 같은 레거시 암호화 알고리즘을 사용했습니다. 이러한 알고리즘은 FIPS 모드에서 비활성화되어 있습니다. 결과적으로 기본 설정과 함께 s
mimesmime
명령을 사용하여 파일을 암호화하는 것이 FIPS 모드의 시스템에서 작동하지 않았습니다. 이번 업데이트에서는 다음과 같은 변경 사항이 추가되었습니다.
- FIPS 모드에서 OpenSSL API는 기본적으로 RSA 키와 OAEP를 사용하여 CMS 데이터를 생성합니다.
-
FIPS 모드에서
cms
OpenSSL 명령은 RSA 키를 제공할 때aes-128-cbc
및 OAEP로 암호화된 CMS 파일을 생성합니다.
ECDSA 키 사용은 영향을 받지 않습니다. 비FIPS 모드에서 OpenSSL API 및 cms
명령은 기본적으로 PKCS#1 v1.5 패딩 및 3DES 암호화를 계속 사용합니다.
결과적으로 FIPS 모드에서 cm 및
OpenSSL 명령을 사용하여 파일을 암호화할 수 있습니다.
s
mime
SELinux에서 Dovecot의 메일 복제 허용
양방향 복제 세트를 사용하여 고가용성을 위해 Dovecot 고성능 메일 전달 에이전트를 구성할 수 있지만 이전에 SELinux 정책에 런타임 파일 시스템의 파이프를 통해 통신하기 위한 dovecot-deliver
utility에 대한 규칙이 포함되어 있지 않았습니다. 그 결과 Dovecot의 메일 복제가 작동하지 않았습니다. 이번 업데이트를 통해 SELinux 정책에 권한이 추가되어 Dovecot의 메일 복제가 작동합니다.
Bugzilla:2170495[1]
이제 NFS 파일 시스템에서 부팅이 SELinux를 강제 모드로 설정된 상태에서 작동합니다.
이전 버전에서는 NFS를 루트 파일 시스템으로 사용할 때 서버에서 SELinux 레이블이 전달되지 않아 SELinux가 강제 모드로 설정된 경우 부팅 오류가 발생했습니다.
이번 수정을 통해 SELinux가 초기 SELinux 정책 로드를 지원 보안 레이블로 로드하기 전에 생성된 NFS 마운트에 올바르게 플래그를 지정하도록 수정되었습니다. 결과적으로 NFS 마운트는 이제 SELinux 레이블을 서버와 클라이언트 간에 전달하고 부팅은 SELinux를 강제 모드로 설정하여 성공할 수 있습니다.
Bugzilla:2218207[1]
RabbitMQ
가 더 이상 IPv6에서 실패하지 않음
이전에는 IPv6가 활성화된 rabbitmq
서버를 배포할 때 inet_gethost
명령에서 /proc/sys/net/ipv6/conf/all/disable_ipv6
파일에 액세스하려고 했습니다. 결과적으로 시스템은 /proc/sys/net/ipv6/conf/all/disable_ipv6
에 대한 액세스를 거부했습니다. 이번 업데이트를 통해 시스템에서 /proc/sys/net/ipv6/conf/all/disable_ipv6
을 읽을 수 있으며 rabbitmq
가 IPv6에서 작동합니다.
cloud-init
를 통해 Insights에 등록이 더 이상 SELinux에 의해 차단되지 않음
이전에는 SELinux 정책에 cloud-init
스크립트에서 insights-client
서비스를 실행할 수 있는 규칙이 포함되어 있지 않았습니다. 결과적으로 cloud-init
스크립트에서 insights-client --register
명령을 실행하려고 실패했습니다. 이번 업데이트를 통해 누락된 규칙이 정책에 추가되어 강제 모드에서 SELinux를 사용하여 cloud-init
를 통해 Insights에 등록할 수 있습니다.
staff_r
SELinux 역할의 사용자는 scap_workbench
프로브를 실행할 수 있습니다.
이전에는 selinux-policy
패키지에 scap-workbench
유틸리티를 실행하는 데 필요한 staff_r
SELinux 역할의 사용자에 대한 규칙이 포함되어 있지 않았습니다. 그 결과 staff_r
SELinux 역할에서 사용자가 실행할 때 scap-workbench
프로브가 실패했습니다. 이번 업데이트를 통해 selinux-policy
에 누락된 규칙이 추가되어 SELinux 사용자가 scap_workbench
프로브를 실행할 수 있습니다.
Insights-client
에 대한 권한 추가 SELinux 정책
insights-client
서비스에는 이전 버전의 selinux-policy
에 없는 권한이 필요합니다. 그 결과 insights-client
의 일부 구성 요소가 올바르게 작동하지 않고 AVC(액세스 벡터 캐시) 오류 메시지가 보고되었습니다. 이번 업데이트에서는 SELinux 정책에 새 권한이 추가되었습니다. 결과적으로 Insights-client
가 AVC 오류를 보고하지 않고 올바르게 실행됩니다.
JIRA:RHELPLAN-163014[1], Bugzilla:2190178,Bugzilla:2224737, Bugzilla:2207894, Bugzilla:2214581
Keylime allowlist 생성 스크립트 업데이트
Keylime 스크립트 create_allowlist.sh
는 Keylime 정책에 대한 허용 목록을 생성합니다. RHEL 9.3에서는 allowlist를 JSON 런타임 정책으로 변환하려고 할 때 실패한 create_runtime_policy.sh
스크립트로 교체되었습니다.
이번 업데이트를 통해 스크립트는 create_allowlist.sh
로 복원되었습니다. 이제 keylime_create_policy
스크립트를 사용하여 allowlist 및 excludelist를 JSON 런타임 정책에 결합할 수 있습니다.
Jira:RHEL-11866[1]
Keylime은 더 이상 tls_dir = default
에 대한 특정 파일이 필요하지 않음
이전에는 Keylime verifier 또는 등록 기관 구성에서 tls_dir
변수가 default
로 설정된 경우 Keylime은 cacert.crt
와 다른 파일 이름이 있는 CA(사용자 정의 인증 기관) 인증서를 거부했습니다. 이번 업데이트를 통해 문제가 더 이상 발생하지 않으며 tls_dir = default
설정에서도 사용자 정의 CA 인증서 파일을 사용할 수 있습니다.
Jira:RHELPLAN-157337[1]
환경 변수는 밑줄을 사용하여 Keylime 에이전트 옵션을 재정의할 수 있습니다.
이전 버전에서는 Keylime 에이전트 구성 옵션에 밑줄(_)이 포함된 경우 환경 변수를 통한 이 옵션을 재정의하지 못했습니다. 이번 업데이트를 통해 옵션 이름에 밑줄이 포함된 경우에도 환경 변수를 통한 재정의가 올바르게 작동합니다.
Jira:RHEL-395[1]
Keylime 등록 기관이 IPv6 주소를 올바르게 식별합니다.
이전에는 Keylime 등록 기관이 IPv6 주소를 올바르게 인식하지 못했기 때문에 수신 대기 포트를 바인딩하지 못했습니다. 이번 업데이트를 통해 등록 기관은 IPv6 주소를 올바르게 식별하고 결과적으로 해당 포트에 올바르게 바인딩됩니다.
Jira:RHEL-392[1]
Keylime 에이전트가 IPv6 주소를 올바르게 처리
이전 버전에서는 대괄호로 묶지 않은 IPv6 주소를 사용하여 Keylime 에이전트를 등록할 때 keylime_tenant
유틸리티가 오류로 실패했습니다. 이번 업데이트를 통해 keylime_tenant
는 대괄호로 묶지 않은 경우에도 IPv6 주소를 올바르게 처리합니다.
Jira:RHEL-393[1]
QEMU VM의 새 이벤트로 인해 Keylime이 더 이상 측정된 부팅 확인에 실패하지 않음
edk2-ovmf
패키지를 업데이트하면 QEMU에서 운영하는 가상 시스템의 측정된 부팅 로그에 새 유형의 이벤트가 도입되었습니다. 이러한 이벤트로 인해 Keylime 측정된 부팅 시 오류가 발생했습니다. 이번 업데이트를 통해 Keylime은 이러한 이벤트를 올바르게 처리합니다.
Jira:RHEL-947[1]
Keylime webhook notifier가 TLS 세션을 올바르게 닫습니다
이전에는 keylime webhook notifier가 TLS 세션을 올바르게 종료하지 않았습니다. 이로 인해 리스너 측에 경고가 보고되었습니다. 이번 업데이트에서는 이 문제가 해결되어 Webhook 알림 프로그램이 TLS 세션을 올바르게 닫습니다.
Jira:RHEL-1252[1]
이제 GPG-agent
가 FIPS 모드에서 SSH 에이전트로 작동합니다.
이전에는 FIPS 모드에서 MD5 다이제스트를 비활성화하더라도 ssh-agent
프로그램에 키를 추가할 때 gpg-agent
툴에서 MD5 지문을 생성했습니다. 그 결과 ssh-add
유틸리티에서 인증 에이전트에 키를 추가하지 못했습니다.
이번 릴리스에서는 gpg-agent
에서 더 이상 MD5 체크섬을 사용하지 않습니다. 결과적으로 gpg-agent
는 FIPS 모드에서 실행되는 시스템에서도 SSH 인증 에이전트로 작동합니다.
tangd-keygen
이제 기본이 아닌 GPO를 올바르게
처리
이전에는 tangd-keygen
스크립트에서 생성된 키 파일의 파일 권한을 변경하지 않았습니다. 결과적으로 기본 사용자 파일 생성 모드 마스크(undercloud )가 있는 시스템에서 tang-show-keys
명령은 키를 표시하는 대신 Internal Error 500
오류 메시지를 반환했습니다. 이번 업데이트를 통해
tangd-keygen
은 생성된 키 파일에 대한 파일 권한을 설정하므로 이제 스크립트가 기본이 아닌 Cryostat 가 있는 시스템에서 올바르게 작동합니다
.
fapolicyd
서비스는 신뢰할 수 있는 데이터베이스에서 제거된 프로그램을 더 이상 실행하지 않음
이전에는 fapolicyd
서비스에서 신뢰할 수 있는 데이터베이스에서 제거된 후에도 프로그램을 신뢰할 수 있는 것으로 잘못 처리했습니다. 그 결과 fapolicyd-cli --update
명령을 입력하지 않았으며 프로그램이 제거된 후에도 실행할 수 있었습니다. 이번 업데이트를 통해 fapolicyd-cli --update
명령은 신뢰할 수 있는 프로그램 데이터베이스를 올바르게 업데이트하고 제거된 프로그램을 더 이상 실행할 수 없습니다.
fapolicyd
로 인해 mount
및 umount
후 시스템이 더 이상 중단되지 않음
이전 버전에서는 mount
또는 umount
작업이 두 번 실행된 후 fapolicyd-cli --update
명령을 실행하면 fapolicyd
서비스가 무한 루프가 입력될 수 있었습니다. 그 결과 시스템이 응답을 중지했습니다. 이번 업데이트를 통해 서비스는 fapolicyd-cli --update
명령을 올바르게 실행하고 여러 마운트
또는 umount
작업을 처리합니다.
Keylime에서 연결된 PEM 인증서 허용
이전에는 Keylime이 단일 파일에서 PEM 형식의 여러 인증서로 인증서 체인을 수신하면 keylime-agent-rust
Keylime 구성 요소가 TLS 핸드셰이크 실패를 생성했습니다. 그 결과 클라이언트 구성 요소(keylime_verifier
및 keylime_tenant
)가 Keylime 에이전트에 연결할 수 없었습니다. 이번 업데이트를 통해 keylime-agent-rust
는 중간 CA 인증서를 포함하여 여러 인증서를 올바르게 처리합니다. 결과적으로 Keylime과 연결된 PEM 인증서를 사용할 수 있습니다.
Jira:RHEL-396[1]
rsyslog는 기능 없이도 시작할 수 있습니다.
Rsyslog가 일반 사용자 또는 컨테이너화된 환경에서 실행되는 경우 rsyslog
프로세스에는 기능이 없습니다. 결과적으로 이 시나리오의 Rsyslog는 기능을 드롭하고 시작 시 종료할 수 없었습니다. 이번 업데이트를 통해 기능이 없는 경우 프로세스는 더 이상 기능을 삭제하려고 시도하지 않습니다. 결과적으로 Rsyslog는 기능이 없는 경우에도 시작할 수 있습니다.
Jira:RHELPLAN-160541[1]
io_uring
이제 SELinux 거부 없이 작동합니다.
이전에는 io_uring
커널 인터페이스에 SELinux 정책의 맵
권한이 누락되었습니다. 결과적으로 mmap
시스템 호출이 실패하고 io_uring
인터페이스가 제대로 작동하지 않았습니다. 이번 업데이트를 통해 SELinux 정책에서 맵
권한이 허용되었으며 이제 인터페이스가 SELinux 거부 없이 작동합니다.
oscap-anaconda-addon
은 CIS용 네트워크 서버를 강화할 수 있음
이전 버전에서는 CIS 보안 프로필 (
,cis
_server_l1cis_workstation_l1
또는 cis_workstation_l2
)을 사용하여 RHEL 네트워크 서버를 설치할 수 없었습니다. 이 문제는 RHEL 9.3에서 제공되는 oscap-anaconda-addon-2.0.0-17.el9
에서 tftp
패키지를 제외하여 해결되었습니다. 결과적으로 Network Servers 패키지 그룹을 사용하여 CIS가 강화된 RHEL 네트워크 서버를 설치할 수 있습니다.
규칙 확인 홈 디렉터리는 로컬 사용자에게만 적용됩니다.
scap-security-guide
패키지에서 제공하는 여러 규정 준수 프로필에는 사용자 홈 디렉터리의 올바른 구성을 확인하는 다음 규칙이 포함되어 있습니다.
-
accounts_umask_interactive_users
-
accounts_user_dot_group_ownership
-
accounts_user_dot_user_ownership
-
accounts_user_interactive_home_directory_exists
-
accounts_users_home_files_groupownership
-
accounts_users_home_files_ownership
-
accounts_users_home_files_permissions
-
file_groupownership_home_directories
-
file_ownership_home_directories
-
file_permissions_home_directories
이러한 규칙은 로컬 사용자의 구성을 올바르게 확인합니다. 이전에는 수정 스크립트가 원격 사용자의 구성을 변경할 수 없는 경우에도 스캐너에서 NSS와 같은 네트워크 소스에서 제공하는 원격 사용자의 구성을 잘못 확인했습니다. 이는 OpenSCAP 스캐너에서 이전에 getpwent()
시스템 호출을 사용했기 때문입니다. 이번 업데이트에서는 /etc/passwd
파일의 데이터에만 의존하도록 이러한 규칙의 내부 구현을 변경합니다. 결과적으로 규칙은 이제 로컬 사용자의 구성에만 적용됩니다.
암호 기간 규칙은 로컬 사용자에게만 적용됩니다.
일부 규정 준수 프로필(예: CIS 및 DISA STIG)에는 다음 규칙 확인 암호 사용 기간 및 사용자 계정 암호 만료가 포함됩니다.
-
accounts_password_set_max_life_existing
-
accounts_password_set_min_life_existing
-
accounts_password_set_warn_age_existing
-
accounts_set_post_pw_existing
이러한 규칙은 로컬 사용자의 구성을 올바르게 확인합니다. 이전에는 수정 스크립트가 원격 사용자의 구성을 변경할 수 없는 경우에도 스캐너에서 NSS와 같은 네트워크 소스에서 제공하는 원격 사용자의 구성을 잘못 확인했습니다. 이는 OpenSCAP 스캐너에서 이전에 getpwent()
시스템 호출을 사용했기 때문입니다.
이번 업데이트에서는 /etc/shadow
파일의 데이터만 사용하도록 이러한 규칙의 내부 구현을 변경합니다. 결과적으로 규칙은 이제 로컬 사용자의 구성에만 적용됩니다.
Red Hat CVE 피드 업데이트
https://access.redhat.com/security/data/oval/의 Red Hat Common Vulnerabilities and Exposures (CVE) 피드 버전 1은 중단되었으며 https://access.redhat.com/security/data/oval/v2/ 에 있는 CVE 피드 버전 2로 교체되었습니다.
결과적으로 scap-security-guide
패키지에서 제공하는 SCAP 소스 데이터 스트림의 링크가 새 버전의 Red Hat CVE 피드에 연결되도록 업데이트되었습니다.
journald
구성과 관련된 규칙은 더 이상 따옴표를 추가하지 않음
이전에는 SCAP 보안 가이드 규칙 journald_compress
,journald_forward_to_syslog
및 journald_storage
에 이전에 수정 스크립트에 버그가 포함되어 있었습니다. 이로 인해 /etc/systemd/journald.conf
구성 파일의 구성 옵션에 추가 따옴표가 추가되었습니다. 결과적으로 journald
시스템 서비스가 구성 옵션을 구문 분석하지 못하고 무시했습니다. 따라서 구성 옵션이 적용되지 않았습니다. 이로 인해 false pass
결과가 OpenSCAP 스캔이 발생했습니다. 이번 업데이트를 통해 규칙 및 수정 스크립트가 더 이상 추가 따옴표를 추가하지 않습니다. 결과적으로 이러한 규칙은 journald
에 유효한 구성을 생성합니다.
/var/lib/fdo
아래의 파일은 이제 올바른 SElinux 레이블을 얻을 수 있습니다.
이전에는 FDO 프로세스에서 전체 호스트에 액세스할 수 있는 보안 문제가 있었습니다. 이번 업데이트를 통해 SElinux와 함께 service-info-api
서버를 사용하여 /var/lib/fdo
디렉터리의 장치에 보낼 파일을 추가할 수 있으며 결과적으로 /var/lib/fdo
의 파일이 올바른 SElinux 레이블을 가져옵니다.
8.3. 서브스크립션 관리
subscription-manager
가 더 이상 터미널에서 중요하지 않은 텍스트를 유지하지 않음
RHEL 9.1부터 subscription-manager
는 모든 작업을 처리하는 동안 진행 정보를 표시합니다. 이전 버전에서는 일부 언어(일반적으로 라틴어 이외의 언어)의 경우 작업이 완료된 후 진행률 메시지가 정리되지 않았습니다. 이번 업데이트를 통해 작업이 완료되면 모든 메시지가 올바르게 정리됩니다.
이전에 진행 중인 메시지를 비활성화한 경우 다음 명령을 입력하여 다시 활성화할 수 있습니다.
# subscription-manager config --rhsm.progress_messages=1
Bugzilla:2136694[1]
8.4. 소프트웨어 관리
dnf needs-restarting -s
명령으로 systemd 서비스 목록을 올바르게 표시
이전 버전에서는 -s
또는 --services
옵션과 함께 needs-restarting
명령을 사용할 때 비systemd 또는 오작동 프로세스가 감지되면 오류가 발생했습니다. 이번 업데이트를 통해 dnf needs-restarting -s
명령은 이러한 프로세스를 무시하고 영향을 받는 systemd 서비스 목록과 함께 경고를 표시합니다.
dnf-automatic
명령이 트랜잭션의 종료 상태를 올바르게 보고합니다.
이전에는 이 트랜잭션 중 일부 작업이 성공적으로 완료되지 않은 경우에도 dnf-automatic
명령에서 트랜잭션의 성공적인 종료 코드를 반환했습니다. 이로 인해 에라타 자동 배포를 위해 dnf-automatic
을 사용하는 시스템에서 보안 위험이 발생할 수 있습니다. 이번 업데이트를 통해 문제가 해결되었으며 dnf-automatic
이 이제 트랜잭션 중에 패키지의 모든 문제를 보고합니다.
확장된 파일 속성이 없는 파일 시스템에 IMA 서명을 사용하여 패키지를 설치하는 데 더 이상 실패하지 않음
이전에는 RPM에서 이러한 서명을 지원하지 않은 경우에도 파일에 IMA 서명을 적용하려고 했습니다. 이로 인해 패키지 설치에 실패했습니다. 이번 업데이트를 통해 RPM은 IMA 서명 적용을 건너뜁니다. 결과적으로 패키지 설치에 더 이상 실패하지 않습니다.
8.5. 쉘 및 명령행 툴
복구 시스템을 부팅할 때 rsyslog
로깅 서비스가 시작됩니다.
이전에는 메시지 로깅을 위한 rsyslog
서비스가 복구 시스템에서 자동으로 시작되지 않았습니다. /dev/log
소켓은 이 소켓에서 수신 대기 중인 서비스가 없는 복구 프로세스 중에 메시지를 수신했습니다. 그 결과 /dev/log
소켓이 메시지로 채워지고 복구 프로세스가 중단되었습니다. 예를 들어 GRUB 구성을 다시 생성하는 grub2-mkconfig
명령은 마운트된 파일 시스템 수에 따라 많은 로그 메시지를 생성합니다. ReaR을 사용하여 마운트된 여러 파일 시스템이 있는 시스템을 복구하면 수많은 로그 메시지가 /dev/log
소켓을 채우고 복구 프로세스 froze가 채워집니다.
이번 수정으로 복구 시스템의 systemd
장치에는 이제 부팅 시 로깅 소켓을 시작하기 위한 부팅 절차에 소켓 대상이 포함됩니다. 결과적으로 필요한 경우 rsyslog
서비스가 복구 환경에서 시작되고 복구 중에 메시지를 기록해야 하는 프로세스는 더 이상 중단되지 않습니다. 복구 프로세스가 성공적으로 완료되고 rescue RAM 디스크의 /var/log/messages
파일에서 로그 메시지를 찾을 수 있습니다.
긴 경로에서 더 이상 실패하지 않는
명령
이전 버전에서는 경로가 256자 이상인 디렉토리에서 which
명령을 실행할 때 현재 작업 디렉터리
오류 메시지와 함께 명령이 실패했습니다. 이번 수정으로 이제 어떤
명령에서 경로 길이 제한에 PATH_MAX
값을 사용합니다. 결과적으로 명령이 더 이상 실패하지 않습니다.
Rear는 이제 OUTPUT=USB
를 사용한 UEFI Secure Boot 지원
이전 버전에서는 복구 이미지를 부팅 가능한 디스크 드라이브에 저장하는 OUTPUT=USB
ReaR 출력 방법이 0.0.0.0URE _BOOT_BOOTLOADER
설정을 고려하지 않았습니다. 결과적으로 UEFI Secure Boot가 활성화된 시스템에서 부트 로더가 서명되지 않았기 때문에 복구 이미지가 있는 디스크는 부팅되지 않았습니다.
이번 수정으로 OUTPUT=USB
ReaR 출력 방법은 복구 디스크를 생성할 때 XCCDFURE _BOOT_BOOTLOADER
설정에 지정하는 부트 로더를 사용합니다. 서명된 UEFI shim 부트 로더를 사용하려면 /etc/rear/local.conf
파일에서 다음 설정을 변경합니다.
SECURE_BOOT_BOOTLOADER=/boot/efi/EFI/redhat/shimx64.efi
결과적으로 UEFI Secure Boot가 활성화되면 복구 디스크를 부팅할 수 있습니다. Secure Boot가 활성화되지 않은 경우에도 UEFI를 사용하는 모든 시스템에서 변수를 이 값으로 설정하는 것이 안전합니다. 이는 일관성을 위해 권장됩니다. UEFI 부팅 절차 및 shim 부트 로더에 대한 자세한 내용은 UEFI: 시스템을 부팅할 때 발생하는 내용을 참조하십시오.
ReaR에서 복구한 시스템이 더 이상 모든 VG 논리 볼륨을 마운트하지 않음
/etc/lvm/devices/system.devices
파일은 LVM(Logical Volume Manager) 시스템 장치를 나타내며 LVM에 대한 장치 가시성 및 사용성을 제어합니다. 기본적으로 system.devices
기능은 RHEL 9에서 활성화되며 활성화된 경우 LVM 장치 필터를 대체합니다.
이전 버전에서는 ReaR을 사용하여 원래 시스템이 사용된 하드웨어 ID가 있는 디스크로 시스템을 복구할 때 복구된 시스템에서 모든 LVM 볼륨을 찾지 못하고 부팅하지 못했습니다. 이번 수정을 통해 ReaR이 system.devices
파일을 찾으면 ReaR은 복구가 끝날 때 이 파일을 /etc/lvm/devices/system.devices.rearbak
로 이동합니다. 결과적으로 복구된 시스템은 LVM 장치 파일을 사용하여 장치 가시성을 제한하지 않으며 시스템은 부팅 시 복원된 볼륨을 찾습니다.
선택 사항: 기본 동작을 복원하고 LVM 장치 파일을 다시 생성하려면
복구된 시스템을 부팅하고 복구 프로세스 전에 디스크를 연결 해제하는 경우 복구된 시스템을 부팅한 후 일반 작업에 필요한 모든 디스크 장치를 연결합니다.
8.6. 네트워킹
Intel Corporation I350 기가비트 파이버 네트워크 연결에서 커널 업데이트 후 링크 제공
이전 버전에서는 External Thermal Sensor (ETS) 없이 Small Formfactor Pluggable (SFP)이 있는 하드웨어 구성으로 인해 igb
드라이버가 실수로 I2C(Integrated Circuit)를 잘못 초기화했습니다. 이로 인해 연결이 연결되지 않았습니다. 이 버그 수정을 통해 igb
드라이버는 Cryostat와 SFP를 사용할 수 있는 경우에만 I2C를 초기화합니다. 결과적으로 연결은 링크를 가져옵니다.
Bugzilla:2173594[1]
nm-cloud-setup
서비스는 더 이상 인터페이스에서 수동으로 구성된 보조 IP 주소를 제거하지 않음
클라우드 환경에서 수신된 정보를 기반으로 nm-cloud-setup
서비스가 네트워크 인터페이스를 구성했습니다. 수동 인터페이스 구성에 nm-cloud-setup
을 비활성화하는 옵션이 있었지만 특정 시나리오가 충돌했습니다. 경우에 따라 호스트의 다른 서비스는 보조 IP 주소 추가를 포함하여 인터페이스를 독립적으로 구성합니다. nm-cloud-setup
은 systemd
타이머 장치에 의해 다시 트리거되면 이러한 보조 IP 주소를 잘못 제거했습니다. NetworkManager
패키지에 대한 이번 업데이트에서는 문제를 해결합니다. systemd
타이머 장치가 nm-cloud-setup
을 트리거할 때까지만 기다려야 합니다. 타이머를 기다리지 않으려면 다음 명령을 사용하여 nm-cloud-setup
을 수동으로 활성화할 수 있습니다.
# systemctl enable nm-cloud-setup.service
결과적으로 nm-cloud-setup
은 더 이상 인터페이스에서 수동으로 구성된 보조 IP 주소를 제거하지 않습니다.
8.7. 커널
VMD가 활성화된 경우 RHEL에서 NVMe 디스크를 인식하지 못했습니다
드라이버를 재설정하거나 다시 연결할 때 이전에 VMI(볼륨 관리 장치) 도메인이 소프트 재설정되지 않았습니다. 결과적으로 하드웨어가 장치를 올바르게 감지하고 열거할 수 없었습니다. 이번 업데이트를 통해 VMD가 활성화된 운영 체제는 서버를 재설정하거나 VM 머신으로 작업할 때 NVMe 디스크를 올바르게 인식합니다.
Bugzilla:2128610[1]
8.8. 부트 로더
GRUB이 디버그되지 않은 커널 변형을 올바르게 처리
이전 버전에서는 여러 커널 RPM이 설치된 시스템에서 dnf install kernel-$VERSION
또는 dnf update
명령을 입력하면 마지막으로 설치된 커널이 기본 커널로 설정되었습니다. 예를 들어 AMD 및 Intel 64비트 아키텍처의 표준 커널 및 실시간 커널이 있는 시스템 또는 64비트 ARM 아키텍처의 커널 (4k) 및 kernel-64k
가 있는 시스템에서 이 문제가 발생했습니다. 결과적으로 시스템은 나중에 재부팅 시 불필요한 커널로 부팅될 수 있었습니다. 이번 업데이트를 통해 GRUB은 /etc/sysconfig/kernel
구성 파일의 DEFAULTKERNEL
변수를 사용하고 기본 커널은 적절한 변형 및 최신 버전으로 유지됩니다.
자세한 내용은 Red Hat Enterprise Linux 8 및 9 솔루션의 기본 커널 변경을 참조하십시오.
Bugzilla:2184069[1]
8.9. 파일 시스템 및 스토리지
lpfc
드라이버는 D_ID
포트 스왑 중 유효한 상태입니다.
이전에는 NetApp giveback 작업을 실행한 후 SAN Boot 호스트가 LVM 중단 작업 경고가 발생하고 I/O가 중단되었습니다. 이 문제는 파이버 채널 D_ID
포트 스왑으로 인해 DM-Multipath 환경에서 대체 경로를 사용할 수 있는 경우에도 발생했습니다. 경합 상태의 결과 D_ID
포트 스왑으로 인해 lpfc
드라이버에서 일관성 없는 상태가 발생하여 I/O가 발행되지 않았습니다.
이번 수정으로 lpfc
드라이버는 D_ID
포트 스왑이 발생할 때 유효한 상태를 확인합니다. 결과적으로 파이버 채널 D_ID
포트 스왑으로 인해 I/O가 중단되지 않습니다.
Bugzilla:2173947[1]
multipathd
는 모든 경로에 영구 예약 등록 키를 추가합니다.
이전 버전에서는 multipathd
데몬이 시작되고 기존 다중 경로 장치의 한 경로에서 영구 예약에 대한 등록 키를 인식하면 해당 장치의 모든 경로에 등록 키가 없었습니다. 이로 인해 multipathd
가 중지된 동안 영구 예약이 있는 다중 경로 장치에 새 경로가 표시되면 영구 예약이 설정되지 않았습니다. 이를 통해 예약 키로 금지된 경로의 IO 처리가 허용되었습니다.
이번 수정으로 multipathd
가 장치 경로에서 영구 예약 등록 키를 찾으면 모든 활성 경로에 키가 추가됩니다. 결과적으로 다중 경로 장치가 다중 경로가 실행되는 동안 경로 장치가 먼저 표시되는 경우에도 모든 경로에 다중 경로
장치가 올바르게 설정되어 있습니다.
이제 운영 체제 설치 중에 LUN이 표시됨
이전에는 시스템에서 펌웨어 소스의 인증 정보를 사용하지 않았습니다. 특히 iSCSI iBFT(Boot Firmware Table)에 저장된 CHAP(Challenge-Handshake Authentication Protocol) 인증과 관련된 경우입니다. 결과적으로 설치 중에 iSCSI 로그인에 실패했습니다.
udisks2-2.9.4-9.el9
펌웨어 인증의 수정으로 이 문제가 해결되어 설치 및 초기 부팅 중에 LUN이 표시됩니다.
Bugzilla:2213769[1]
/etc/fstab
에서 NVMe-FC 장치를 마운트 지점으로 추가할 때 시스템이 올바르게 부팅됨
이전 버전에서는 nvme-cli nvmf-autoconnect systemd
서비스의 알려진 문제로 인해 /etc/fstab
파일의 마운트 지점으로 NVMe-FC(Non-volatile Memory Express over Fibre Channel) 장치를 추가하는 동안 시스템을 부팅하지 못했습니다. 그 결과 시스템이 긴급 모드로 전환되었습니다. 이번 업데이트를 통해 NVMe-FC 장치를 마운트할 때 시스템이 문제없이 부팅됩니다.
Jira:RHEL-8171[1]
8.10. 고가용성 및 클러스터
pcs configpoint diff
명령이 모든 구성 섹션에 대해 올바르게 작동합니다.
RHEL 9.0 릴리스부터 pcs config checkpoint diff
명령은 펜싱 수준, 주문 제한, 코로케이션 제약 조건, 티켓 제약 조건, 리소스 기본값 및 운영 기본값이라는 구성 섹션에 대한 차이점을 보여주는 것을 중지했습니다. RHEL 9.1 릴리스부터 pcs config checkpoint diff
명령은 리소스 및 Stonith 장치 구성 섹션의 차이점을 표시했습니다. 이는 다양한 구성 섹션을 표시하는 코드가 CIB 파일을 로드하기 위한 새로운 메커니즘으로 전환되었으므로 로드된 콘텐츠가 캐시되었기 때문입니다. 차이점 비교에 사용된 두 번째 파일이 로드되지 않았으며 첫 번째 파일의 캐시된 콘텐츠가 대신 사용되었습니다. 그 결과 diff
명령은 출력이 없었습니다. 이번 수정으로 CIB 파일 콘텐츠가 더 이상 캐시되지 않으며 pcs config checkpoint diff
명령에 모든 구성 섹션의 차이점이 표시됩니다.
차단 수준이 구성된 경우 pcsd
Web UI가 클러스터 상태를 표시함
이전에는 차단 수준을 구성할 때 pcsd
Web UI에서 클러스터 상태를 표시하지 않았습니다. 이번 수정을 통해 이제 차단 수준이 구성된 경우 클러스터 상태를 보고 웹 UI로 클러스터 설정을 변경할 수 있습니다.
두 번째 펜싱 장치로 구성된 펜스 워치독은 첫 번째 장치가 시간 초과될 때 노드를 펜싱합니다.
이전 버전에서는 워치독 펜싱 장치가 펜싱 토폴로지에서 두 번째 장치로 구성된 경우 펜싱 작업에 대한 타임아웃을 계산할 때 워치독 시간 초과를 고려하지 않았습니다. 결과적으로 첫 번째 장치가 펜싱 작업을 시간 초과하면 워치독에서 노드를 펜싱하더라도 시간이 초과되었습니다. 이번 수정을 통해 펜싱 작업 시간 초과에 워치독 타임아웃이 포함되어 첫 번째 장치가 시간 초과되면 펜싱 작업이 성공적으로 수행됩니다.
목록이 노드로 그룹화될 때 규칙이 포함된 위치 제약 조건이 더 이상 표시되지 않음
규칙이 있는 위치 제한 조건은 노드가 할당될 수 없습니다. 이전에는 노드별로 목록을 그룹화하면 규칙을 사용하여 위치 제약 조건이 빈 노드에 표시되었습니다. 이번 수정을 통해 규칙이 포함된 위치 제약 조건이 더 이상 표시되지 않으며 규칙이 포함된 제약 조건이 표시되지 않음을 나타내는 경고가 제공됩니다.
다중 경로 SCSI 장치를 업데이트하는 pcs
명령이 올바르게 작동합니다.
Pacemaker CIB 파일의 변경으로 인해 pcs stonith update-scsi-devices
명령이 설계된 대로 작동을 중지하여 일부 클러스터 리소스를 원하지 않는 다시 시작합니다. 이번 수정에서는 이 명령이 올바르게 작동하고 동일한 노드에서 실행되는 다른 클러스터 리소스를 다시 시작할 필요 없이 SCSI 장치를 업데이트합니다.
pscd
Web UI가 열려 있을 때 pcsd-ruby
데몬의 메모리 공간 감소
이전에는 pcsd
Web UI가 열려 있을 때 pcsd-ruby
데몬의 메모리 사용량이 몇 시간 동안 지속적으로 증가했습니다. 이번 수정으로 pcsd-ruby
데몬에서 실행되는 웹 서버는 이제 정상 재시작을 주기적으로 수행합니다. 이렇게 하면 할당된 메모리가 확보되고 메모리 공간이 줄어듭니다.
Bugzilla:1860626[1]
azure-events-az
리소스 에이전트에서 더 이상 Pacemaker 2.1 이상에서 오류가 발생하지 않음
azure-events-az
리소스 에이전트는 crm_simulate -Ls
명령을 실행하고 출력을 구문 분석합니다. Pacemaker 2.1 이상에서는 crm_simulate
명령의 출력에 더 이상 텍스트 Transition Summary( Transition Summary:
)가 포함되어 있지 않으므로 오류가 발생했습니다. 이번 수정으로 이 텍스트가 누락되면 에이전트가 더 이상 오류를 생성하지 않습니다.
이제 mysql
리소스 에이전트가 승격 가능한 복제 리소스와 함께 올바르게 작동합니다.
이전에는 mysql
리소스 에이전트가 승격된 값과 승격되지 않은 값 간에 변경되어 노드 간에 승격된 역할에서 작동하던 복제된 리소스를 이동했습니다. 이번 수정을 통해 Promoted 역할의 노드는 Promoted 역할에 남아 있습니다.
Bugzilla:2179003[1]
fence_scsi
에이전트는 공유 lvmlockd
장치를 자동으로 감지할 수 있습니다.
이전에는 fence_scsi
에이전트가 공유 lvmlockd
장치를 자동 감지하지 않았습니다. 이번 업데이트를 통해 devices 속성이 설정되지 않은 경우 fence_scsi
가 lvmlockd
장치를
자동으로 감지할 수 있습니다.
8.11. 컴파일러 및 개발 도구
glibc
system()
함수는 이제 이전 신호 마스크를 무조건 복원합니다.
이전 버전에서는 glibc
system()
함수가 여러 스레드에서 동시에 호출된 경우 SIGCHLD
신호의 신호 마스크가 올바르게 복원되지 않을 수 있었습니다. 그 결과 일부 스레드에서 glibc
system()
함수에서 반환한 후 SIGCHLD
신호가 차단되었습니다.
이번 업데이트를 통해 glibc
system()
함수는 이제 병렬 system()
함수 호출이 실행되는 경우에도 이전 신호 마스크를 무조건 복원합니다. 결과적으로 glibc
system()
함수가 여러 스레드에서 동시에 호출되면 SIGCHLD
신호가 더 이상 잘못 차단되지 않습니다.
eu-addr2line -C
가 다른 인수를 올바르게 인식
이전에는 elfutils
의 eu-addr2line
명령에서 -C
인수를 사용할 때 다음 단일 문자 인수가 사라졌습니다. 결과적으로 eu-addr2line -Ci
명령은 eu-addr2line -C
와 동일한 방식으로 작동하지만 eu-addr2line -iC
는 예상대로 작동했습니다. 이 버그는 수정되었으며 eu-addr2line -Ci
는 이제 두 인수를 모두 인식합니다.
eu-addr2line -i
now GCC link-time optimization으로 컴파일된 코드를 올바르게 처리
이전에는 elfutils
에 포함된 libdw
라이브러리의 dwarf_getscopes
함수에서 GCC 링크 타임 최적화로 컴파일된 함수의 추상적인 원본 정의를 찾을 수 없었습니다. 결과적으로 eu-addr2line
명령에서 -i
인수를 사용하면 eu-addr2line
에서 gcc -flto
로 컴파일된 코드에 대한 인라인 함수를 표시할 수 없었습니다. 이번 업데이트를 통해 libdw dwarf_getscopes
함수는 인라인 범위의 올바른 컴파일 단위를 찾고 eu-addr2line -i
가 예상대로 작동합니다.
종료 시 papi
를 사용하는 프로그램이 더 이상 중지되지 않음
이전에는 papi
가 일부 구성 요소를 초기화하기 전에 papi
에서 스레드를 초기화했습니다. 이로 인해 배열의 요소 수를 설명하는 특정 구성 요소에 대한 항목이 올바른 값으로 설정되지 않았으며 0 크기의 메모리 할당이 시도되었습니다. 결과적으로 나중에 이러한 제로 크기 메모리 할당에 액세스하고 해제하면 프로그램이 중지되었습니다.
버그가 수정되었으며, 종료 시 papi
를 사용하는 프로그램이 더 이상 중지되지 않습니다.
OpenJDK XML 서명 공급자가 FIPS 모드에서 작동합니다.
이전에는 OpenJDK XML 서명 공급자가 FIPS 모드에서 작동할 수 없었습니다. FIPS 모드의 개선으로 OpenJDK XML 서명 공급자가 FIPS 모드에서 활성화됩니다.
8.12. IdM (Identity Management)
일반 사용자의 페이지 검색이 성능에 영향을 미치지 않음
이전 버전에서는 Directory Server가 검색 로드에 있을 때 일반 사용자의 호출이 네트워크 이벤트를 폴링하는 스레드와 충돌하기 때문에 서버 성능에 영향을 미칠 수 있었습니다. 또한 페이지 검색을 보내는 동안 네트워크 문제가 발생하면 nsslapd-iotimeout
매개변수가 만료될 때까지 전체 서버가 응답하지 않았습니다. 이번 업데이트를 통해 네트워크 이벤트와의 경합을 방지하기 위해 잠금이 여러 부분으로 분할되었습니다. 결과적으로 일반 사용자로부터 페이징된 검색 중에 성능에 영향을 미치지 않습니다.
Directory Server에서 스키마 복제가 올바르게 작동함
이전 버전에서는 Directory Server가 새 서버에 스키마를 복제할 때 원격 복제본의 99user.ldif
파일에 모든 스키마를 추가했습니다. X-ORIGIN
키워드가 모든 정의에 대해 정의된 사용자로 설정되었기 때문에 모든 사용자
지정 스키마가 포함된 것처럼 보였습니다. 결과적으로 웹 콘솔과 스키마를 모니터링하고 X-ORIGIN
키워드에 특정 값이 있을 것으로 예상되는 고객에게 문제가 발생할 수 있었습니다. 이번 업데이트를 통해 스키마 복제가 예상대로 작동합니다.
Directory Server에서 참조 모드가 올바르게 작동하고 있음
이전에는 CLI에서 nsslapd-referral
구성 특성을 매핑 트리에 설정하지 않고 백엔드에 설정했습니다. 그 결과 추천 모드가 작동하지 않았습니다. 이번 업데이트를 통해 nsslapd-referral
속성이 올바르게 설정되고 추천 모드가 예상대로 작동합니다.
LMDB 가져오기가 더 빠르게 작동합니다.
이전 버전에서는 진입점
인덱스를 빌드하기 위해 LMDB 가져오기 작업자 스레드는 다른 작업자 스레드가 상위 항목이 처리되었는지 확인하기 위해 대기했습니다. 이렇게 생성된 잠금 경합으로 인해 가져오기 속도가 크게 느려졌습니다. 이번 업데이트를 통해 LDIF 가져오기를 LMDB 데이터베이스를 통해 다시 만들고 공급자 스레드가 항목 RDN 및 해당 부모에 대한 데이터를 작업자 스레드가 항목을
빌드하는 데 사용하는 임시 데이터베이스에 저장합니다. 결과적으로 작업자 스레드 동기화가 더 이상 필요하지 않으며 평균 가져오기 속도가 향상됩니다.
LMDB는 동시 쓰기 트랜잭션을 지원하지 않기 때문에 LMDB 가져오기에는 BDB 가져오기보다 가져오기 속도가 3배 느립니다.
재부팅 후 dirsrv
서비스가 올바르게 시작됨
이전에는 dirsrv
서비스가 systemd-tmpfiles-setup.service
가 완료될 때까지 명시적으로 기다리지 않았기 때문에 재부팅 후 dirsrv
서비스가 시작되지 않았습니다. 이로 인해 경쟁 조건이 발생했습니다. 이번 업데이트를 통해 dirsrv
서비스는 systemd-tmpfiles-setup.service
가 완료될 때까지 대기하고 재부팅 후 더 이상 시작되지 않습니다.
보안 매개변수 변경 사항이 올바르게 작동합니다.
이전 버전에서는 dsconf instance_name security set
명령을 사용하여 보안 매개변수를 변경하면 오류로 인해 작업이 실패했습니다.
Name 'log' is not defined
이번 업데이트를 통해 보안 매개변수 변경 사항이 예상대로 작동합니다.
GPO 기반 액세스 제어를 평가할 때 SSSD에서 sAMAccountName
사용
이전 버전에서는 ldap_user_name
이 AD 클라이언트에서 sAMAccountName
이외의 값으로 설정된 경우 GPO 기반 액세스 제어에 실패했습니다. 이번 업데이트를 통해 SSSD는 GPO 기반 액세스 제어를 평가할 때 sAMAccountName
을 항상 사용합니다. ldap_user_name
이 AD 클라이언트의 sAMAccountName
과 다른 값으로 설정되어 있어도 GPO 기반 액세스 제어가 올바르게 작동합니다.
SSSD에서 사용자를 검색할 때 user_attributes
옵션에서 중복 특성 처리
이전에는 sssd.conf
에 user_attributes
옵션에 중복 속성이 포함된 경우 SSSD에서 이러한 중복을 올바르게 처리하지 않았습니다. 결과적으로 해당 속성을 가진 사용자를 검색할 수 없었습니다. 이번 업데이트를 통해 SSSD에서 중복을 올바르게 처리합니다. 결과적으로 중복 특성이 있는 사용자를 검색할 수 있습니다.
동적 Kerberos PAC 티켓 서명 적용 메커니즘에서 IdM의 버전 간 비호환성 수정
이전 버전에서는 IdM(Identity Management) 배포에서 RHEL 9 및 RHEL 8 모두에서 실행되는 서버를 제공하는 경우 PAC(Privilege Attribute Certificate) 티켓 서명 지원의 업스트림 구현으로 인한 비호환성이 특정 작업이 실패했습니다. 이번 업데이트를 통해 RHEL 9의 동적 티켓 서명 적용 메커니즘 기능을 구현하면 이러한 상호 버전 비호환성이 수정되었습니다. 이 기능을 실제로 적용하려면 다음을 수행해야 합니다.
- 도메인의 모든 서버를 업데이트합니다.
- 모든 IdM Kerberos Distribution Center(KDC) 서비스를 다시 시작합니다.
이 두 가지 동작의 순서가 중요합니다. 시작 시 KDCs는 도메인에 있는 다른 모든 서버의 메타데이터를 쿼리하여 모두 PAC 티켓 서명을 지원하는지 확인합니다. 그렇지 않은 경우 서명이 적용되지 않습니다.
제한된 위임 요청 예제를 포함하여 동적 Kerberos PAC 티켓 서명 적용 메커니즘에 대한 자세한 내용은 이 지식 베이스 문서를 참조하십시오.
Jira:RHELDOCS-17011[1], Bugzilla:2182683, Bugzilla:2178298
이제 FIPS 모드에서 SHA-1 서명 확인이 허용될 수 있습니다.
이전에는 IdM(Identity Management)이 FIPS 모드인 경우 SHA-1 서명 확인을 사용할 수 없었습니다. IdM은 SHA-1 서명을 허용하지 않는 FIPS-140-3 표준을 사용하기 때문입니다. 이 경우 AD(Active Directory) 상호 운용성에 문제가 발생했습니다. AD는 이전 FIPS-140-2 표준만 준수하므로 SHA-1 서명이 필요하기 때문입니다.
이번 업데이트에서는 PKINIT 서명 확인에 대한 FIPS 예외가 도입되었습니다. IdM에서 FIPS 모드가 활성화되면 해당 제한 사항이 무시됩니다. 기본 모드 제한만 적용되어 FIPS 모드에서도 SHA1
암호화 모듈을 사용할 수 있습니다. 결과적으로 FIPS 모드의 AD 상호 운용성이 의도한 대로 작동합니다.
IdM/AD 신뢰 시나리오 또는 RHEL 9.2 이상 호스트를 AD 클라이언트로 사용하는 경우 FIPS 모드에서 PKINIT를 지원하도록 암호화 정책을 FIPS:AD-SUPPORT:SHA1로 설정해야 합니다.
IdM 관리자
삭제는 더 이상 허용되지 않음
이전에는 admins
그룹의 멤버인 경우 IdM(Identity Management) 관리자
사용자를 삭제할 수 없었습니다. admin
사용자가 없으면 IdM과 AD(Active Directory) 간의 신뢰가 올바르게 작동하지 않습니다. 이번 업데이트를 통해 더 이상 admin
사용자를 삭제할 수 없습니다. 결과적으로 IdM-AD 신뢰가 올바르게 작동합니다.
ipa-kdb
가 더 이상 krb5kdc
가 실패하지 않음
이전에는 ipa-kdb
드라이버에서 서버 호스트 오브젝트와 연결 실패의 부재를 구분하지 않았습니다. 그 결과 LDAP 서버의 연결 문제로 생성된 NULL
LDAP 컨텍스트로 인해 krb5kdc
서버가 예기치 않게 중지되는 경우가 있었습니다.
이번 업데이트를 통해 ipa-kdb
드라이버는 연결 오류를 올바르게 식별하고 서버 호스트 오브젝트가 없는 것과 구별됩니다. 결과적으로 krb5kdc
서버가 더 이상 실패하지 않습니다.
IdM 클라이언트 설치 프로그램에서 더 이상 ldap.conf
파일에 TLS CA 구성을 지정하지 않음
이전에는 IdM 클라이언트 설치 프로그램에서 ldap.conf
파일에 TLS CA 구성을 지정했습니다. 이번 업데이트를 통해 OpenLDAP는 기본 신뢰 저장소를 사용하고 IdM 클라이언트 설치 프로그램에서 ldap.conf
파일에 TLS CA 구성을 설정하지 않습니다.
이름에 혼합된 대소문자 문자가 포함된 경우 IdM 클라이언트는 신뢰할 수 있는 AD 사용자의 정보를 올바르게 검색
이전 버전에서는 사용자의 사용자 조회 또는 인증을 시도했고 신뢰할 수 있는 AD(Active Directory) 사용자에게 이름에 혼합된 케이스 문자가 포함되어 있고 IdM에서 재정의를 통해 구성된 경우 오류가 반환되어 사용자가 IdM 리소스에 액세스할 수 없었습니다.
RHBA-2023:4359 릴리스와 함께 대소문자를 구분하지 않는 비교는 문자의 대소문자를 무시하는 대소문자를 구분하지 않는 비교로 교체됩니다. 결과적으로 사용자 이름에 혼합된 대소문자 문자가 포함되어 있고 IdM에서 재정의를 사용하여 구성된 경우에도 IdM 클라이언트는 AD 신뢰할 수 있는 도메인의 사용자를 조회할 수 있습니다.
Jira:SSSD-6096
8.13. 웹 콘솔
웹 콘솔 NBDE 바인딩 단계가 루트 파일 시스템이 있는 볼륨 그룹에서도 작동합니다.
RHEL 9.2에서는 사용자가 root 파일 시스템에 Tang 키를 추가했는지 여부를 확인하기 위한 코드의 버그로 인해 LUKS 컨테이너에 파일 시스템이 전혀 충돌할 때 웹 콘솔의 바인딩 프로세스가 충돌했습니다. 웹 콘솔에 Verify
키 대화 상자에서 신뢰 키
버튼을 클릭하면 TypeError: Qe(…)
오류 메시지가 표시되지 않기 때문에 설명된 시나리오에서 명령줄 인터페이스에서 필요한 모든 단계를 수행해야 했습니다.
이번 업데이트를 통해 웹 콘솔은 root 파일 시스템에 Tang 키 추가를 올바르게 처리합니다. 결과적으로 웹 콘솔은 다양한 시나리오에서 NBDE(Network-Bound Disk Encryption)를 사용하여 LUKS 암호화 볼륨의 자동 잠금 해제에 필요한 모든 바인딩 단계를 완료합니다.
이제 VNC 콘솔이 대부분의 해상도에서 작동합니다.
이전에는 특정 디스플레이 해상도에서 VNC(Virtual Network Computing) 콘솔을 사용할 때 마우스 오프셋 문제가 있거나 인터페이스의 일부만 표시되었습니다. 결과적으로 VNC 콘솔을 사용할 수 없었습니다.
이번 업데이트를 통해 문제가 해결되었으며 VNC 콘솔은 3840x2160과 같은 울트라 높은 해상도를 제외하고 대부분의 해결 방법으로 올바르게 작동합니다.
커서의 기록된 위치와 표시된 위치 간의 작은 오프셋이 계속 존재할 수 있습니다. 그러나 이는 VNC 콘솔의 유용성에 크게 영향을 미치지 않습니다.
8.14. Red Hat Enterprise Linux 시스템 역할
스토리지
역할을 마운트 해제하지 않고 마운트된 파일 시스템의 크기를 조정할 수 있음
이전에는 파일 시스템이 온라인 크기 조정을 지원하더라도 스토리지
역할이 마운트된 장치의 크기를 조정할 수 없었습니다. 결과적으로 스토리지
역할은 크기 조정 전에 모든 파일 시스템을 마운트 해제했습니다. 이는 예를 들어 실행 중인 시스템의 /
디렉터리 크기를 조정하는 동안 사용 중인 파일 시스템에 실패했습니다.
이번 업데이트를 통해 스토리지
역할은 이제 XFS 및 Ext4와 같은 온라인 크기 조정을 지원하는 마운트된 파일 시스템 크기 조정을 지원합니다. 결과적으로 마운트 해제하지 않고 마운트된 파일 시스템의 크기를 조정할 수 있습니다.
podman_registries_conf
변수가 unqualified-search-registries
필드를 올바르게 구성
이전에는 podman_registries_conf
변수를 구성한 후 podman
RHEL 시스템 역할이 실패했습니다. 결과적으로 unqualified-search-registries = ["registry.access.redhat.com"]
설정이 /etc/containers/registries.conf.d/50-systemroles.conf
파일에 생성되지 않았습니다. 이번 업데이트를 통해 이 문제가 해결되었습니다.
kdump
역할은 authorized_keys
idempotent를 추가합니다.
이전에는 authorized_key
를 추가하는 작업이 매번 줄 바꿈 문자를 추가했습니다. 이로 인해 역할이 멱등을 수행하지 않았습니다. 이번 수정을 통해 새 authorized_key
가 올바르게 추가되고 단일 키 값 idempotent만 추가됩니다.
가 누락된 경우 kdump 시스템 역할이 실패하지 않음kdump
_authorized_keys
이전에는
변수에 정의된 사용자가 kdump
_ssh_user홈
디렉터리 또는 빈 .ssh/authorized_keys
파일에 있는 .ssh
디렉터리에 액세스할 수 없는 경우 kdump 시스템 역할이 SSH
인증 키를 추가하지 못했습니다. 이번 수정으로 kdump
시스템 역할은 SSH
구성에 인증된 키를 올바르게 추가합니다. 결과적으로 키 기반 인증은 설명된 시나리오에서 안정적으로 작동합니다.
생성이 더 이상 유지되지 않기 전에 멤버 디스크에서 데이터를 제거하지 못했습니다
이전에는 RAID 볼륨을 생성할 때 RAID 볼륨을 구성하기 전에 시스템에서 멤버 디스크에서 기존 데이터를 효과적으로 제거하지 못했습니다. 이번 업데이트를 통해 RAID 볼륨은 필요에 따라 멤버 디스크에서 기존 데이터를 모두 제거합니다.
존재하지 않는 서비스를 사용하여 점검 모드에서 방화벽
RHEL 시스템 역할을 실행하면 더 이상 실패하지 않음
이전에는 존재하지 않는 서비스가 있는 검사 모드에서 firewall
역할을 실행하는 데 실패했습니다. 이번 수정에서는 점검 모드에 대한 Ansible 모범 사례를 보다 잘 준수하는 방법을 구현합니다. 결과적으로 존재하지 않는 서비스가 활성화되거나 비활성화되어 더 이상 검사 모드에서 역할이 실패하지 않습니다. 대신 서비스가 이전 플레이북에서 정의되었는지 확인하라는 경고 메시지가 표시됩니다.
RHEL 7의 방화벽
RHEL 시스템 역할은 더 이상 존재하지 않는 Python 패키지를 설치하려고 하지 않습니다.
이전 버전에서는 RHEL 7의 방화벽
역할이 다른 역할에서 호출되고 해당 역할이 python3
을 사용하는 경우 방화벽
역할은 해당 Python 버전에 대한 python3-firewall
라이브러리를 설치하려고 했습니다. 그러나 해당 라이브러리는 RHEL 7에서 사용할 수 없습니다. 그 결과 python3-firewall
라이브러리를 찾을 수 없어 다음 오류 메시지가 표시되었습니다.
No package matching 'python3-firewall' found available, installed or updated
이번 업데이트를 통해 firewall
역할은 python-firewall
또는 python3-firewall
라이브러리를 설치하지 않습니다. 결과적으로 python3
이 관리 노드에 설치된 경우 RHEL 7에서 firewall
역할이 실패하지 않습니다.
kdump
RHEL 시스템 역할 업데이트
kdump
RHEL 시스템 역할이 최신 버전으로 업데이트되어 다음과 같은 주요 개선 사항이 추가되었습니다.
-
kexec-tools
를 설치한 후 이 파일을 더 이상 관리할 필요가 없기 때문에 유틸리티 제품군에서 더 이상/etc/sysconfig/kdump
파일을 생성하지 않습니다. -
역할은
auto_reset_crashkernel
및dracut_args
변수를 지원합니다.
자세한 내용은 /usr/share/doc/rhel-system-roles/kdump/
디렉터리의 리소스를 참조하십시오.
rhc
역할을 사용하여 생성한 Insights 태그가 이제 올바르게 적용됨
이전에는 rhc
역할을 사용하여 Insights 태그를 생성할 때 태그가 올바른 파일에 저장되지 않았습니다. 결과적으로 태그가 Insights로 전송되지 않아 Insights 인벤토리의 시스템에 적용되지 않았습니다.
이번 수정을 통해 태그가 올바르게 저장되고 Insights 인벤토리에 있는 시스템에 적용됩니다.
raid_chunk_size
매개변수가 더 이상 오류 메시지를 반환하지 않음
이전에는 raid_chunk_size
속성이 RAID 풀 및 볼륨에 허용되지 않았습니다. 이번 업데이트를 통해 제한이 발생하지 않고 RAID 풀 및 볼륨에 대해 raid_chunk_size
속성을 구성할 수 있습니다.
인증서
RHEL 시스템 역할은 새 인증서 요청 수행 여부를 결정할 때 인증서 키 크기를 확인합니다.
이전에는 인증서
RHEL 시스템 역할이 새 인증서를 요청할지 여부를 평가할 때 인증서의 키 크기를 확인하지 않았습니다. 그 결과 이 역할에서 새 인증서 요청을 발행하지 않는 경우가 있었습니다. 이번 업데이트를 통해 인증서
에서 key_size
매개변수를 확인하여 새 인증서 요청을 수행해야 하는지 확인합니다.
kdump
역할은 authorized_keys
idempotent에 여러 키를 추가합니다.
이전 버전에서는 authorized_keys
파일에 여러 SSH 키를 동시에 추가하면 한 호스트의 키 값이 다른 호스트 값으로 대체되었습니다. 이번 업데이트에서는 lineinfile
모듈을 사용하여 authorized_keys
파일을 관리하여 문제를 해결합니다. lineinfile
은 작업을 순서대로 반복하여 기존 키를 확인하고 한 번에 단일 호스트에서 하나의 원자 작업으로 새 키를 작성합니다. 결과적으로 여러 호스트에 SSH 키를 추가하면 제대로 작동하고 다른 호스트의 키 값을 대체하지 않습니다.
참고: 플레이 수준에서 serial: 1
play serial 키워드를 사용하여 한 번에 실행되는 호스트 수를 제어합니다.
Jira:RHEL-1499[1]
kdump
역할은 kdump_ssh_server
인증의 .ssh/authorized_keys
를 성공적으로 업데이트합니다.
이전에는 kdump 역할로 인해
에 로그인할 사용자를 안전하게 인증하기 위해 kdump
_ssh_server.ssh
디렉터리에 액세스할 수 없었습니다. 그 결과 kdump
역할은 .ssh/authorized_keys
파일을 업데이트하지 않고 kdump_ssh_server
가 실패했는지 확인하는 SSH 메커니즘을 업데이트하지 않았습니다. 이번 업데이트에서는 이 문제가 해결되었습니다. 그 결과 kdump_ssh_server
에서 kdump_ssh_user
인증이 안정적으로 작동합니다.
Jira:RHEL-1397[1]
시스템 역할에 kdump
를 활성화하려면 RHEL 9 이상 버전에서 failure_action
구성 매개변수를 사용해야 합니다.
이전에는 kdump
설정 중에 기본
옵션을 사용하는 데 성공하지 못하고 로그에 다음 경고를 출력했습니다.
kdump: warning: option 'default' was renamed 'failure_action' and will be removed in the future. please update /etc/kdump.conf to use option 'failure_action' instead.
결과적으로 기본
옵션을 사용하는 경우 역할이 kdump
를 성공적으로 활성화하지 않았습니다. 이번 업데이트에서는 문제가 해결되어 failure_action
매개변수를 사용하여 여러 시스템에서 커널 덤프 매개변수를 구성할 수 있습니다. 결과적으로 kdump
를 활성화하면 설명된 시나리오에서 성공적으로 작동합니다.
Jira:RHEL-906[1]
이전:
매개변수는 이제 삭제하지 않고 이전 구성을 재정의합니다.방화벽
시스템 역할의 교체
이전 버전에서는 이전: replaced
매개변수를 변수 목록에 추가한 경우 방화벽
시스템 역할이 기존 사용자 정의 설정을 모두 제거하고 firewalld
를 기본 설정으로 재설정합니다. 이번 수정에서는 EL7 릴리스에 도입된 firewalld
의 대체 구성을 사용하여 이전 구성을 유지합니다. 결과적으로 변수 목록에서 previous: replaced
매개 변수를 사용하면 firewall.conf
구성 파일이 재설정 시 삭제되지 않지만 파일의 파일 및 주석이 유지됩니다.
Jira:RHEL-1495[1]
이전을 사용할 때
방화벽
RHEL 시스템 역할이 변경 사항을 올바르게 보고합니다. 검사 모드에서 교체됨
이전에는 방화벽
역할이 검사 모드에서 이전: replaced
매개변수를 사용할 때 파일이 변경되었는지 확인하지 않았습니다. 결과적으로 역할에 정의되지 않은 변수에 대한 오류가 발생했습니다. 이번 수정에서는 검사 모드에 새 검사 변수가 추가되어 이전: replaced
매개변수에서 파일이 변경되었는지 여부를 평가합니다. firewalld.conf
파일을 검사하여 rpm
데이터베이스를 평가하여 파일에 제공된 버전에서 파일이 변경되었는지 확인합니다. 결과적으로 이전: replaced
매개 변수를 사용할 때 방화벽
역할이 변경 사항을 올바르게 보고합니다.
Jira:RHEL-898[1]
방화벽
RHEL 시스템 역할은 네트워크 관리자 인터페이스에 영역을 할당할 때 변경 사항을 올바르게 보고합니다.
이전에는 Network Manager 인터페이스 할당에서 변경 사항이 없는 경우 변경 사항을 보고했습니다. 이번 수정을 통해 파일 library/firewall_lib.py
파일의 try_set_zone_of_interface
모듈은 인터페이스 영역의 변경 여부를 나타내는 두 번째 값을 반환합니다. 결과적으로 모듈은 Network Manager에서 처리하는 인터페이스에 영역을 할당할 때 변경 사항을 올바르게 보고합니다.
Jira:RHEL-885[1]
에 활성화 키가 포함된 경우 등록된 시스템에서 rhc 시스템 역할이 더 이상 실패하지 않음rhc
_auth
이전에는 rhc_auth
매개변수에 지정된 활성화 키를 사용하여 등록된 시스템에서 플레이북 파일을 실행할 때 오류가 발생했습니다. 이 문제가 해결되었습니다. 이제 rhc_auth
매개 변수에 활성화 키가 제공된 경우에도 이미 등록된 시스템에서 플레이북 파일을 실행할 수 있습니다.
8.15. 가상화
NVIDIA 그래픽 장치는 VM 종료 후에도 계속 작동합니다.
이전에는 RHEL 커널에서 장치 전원 전환 지연이 PCIe 사양에 필요한 장치에 더 근접하게 조정되었습니다. 결과적으로 연결된 VM이 종료된 후 일부 NVIDIA GPU가 장치 할당에 사용될 때 응답하지 않을 수 있었습니다. 이 업데이트는 NVIDIA 오디오 장치 기능에 대한 장치 전원 전환 지연을 확장합니다. 결과적으로 NVIDIA GPU는 이 시나리오에서 계속 올바르게 작동합니다.
Bugzilla:2178956[1]
장애 조치 virtio NIC가 Windows 가상 머신에 IP 주소가 올바르게 할당됨
이전 버전에서는 장애 조치 virtio NIC만 사용하여 Windows VM(가상 머신)을 시작할 때 VM이 NIC에 IP 주소를 할당하지 못했습니다. 그 결과 NIC에서 네트워크 연결을 설정할 수 없었습니다. 이 문제가 해결되었으며 VM NIC가 설명된 시나리오에서 예상대로 네트워크 연결을 설정합니다.
설치 프로그램에서 VM에 RHEL을 설치할 것으로 예상되는 시스템 디스크를 보여줍니다.
이전 버전에서는 virtio-scsi
장치를 사용하여 VM에 RHEL을 설치할 때 device-mapper-multipath
버그로 인해 이러한 장치가 설치 프로그램에 표시되지 않을 수 있었습니다. 결과적으로 설치 중에 일부 장치에 직렬이 설정되어 있지 않은 경우 multipath
명령이 직렬로 설정된 모든 장치를 요청했습니다. 이로 인해 설치 프로그램에서 VM에서 RHEL을 설치할 예상 시스템 디스크를 찾을 수 없었습니다.
이번 업데이트를 통해 다중
경로는 WWID(World Wide Identifier)가 없는 직렬 장치를 올바르게 설정하고 무시합니다. 설치 시 다중 경로
의 장치만 다중 경로
장치를 바인딩하는 데 사용하고 설치 프로그램에는 VM에 RHEL을 설치하는 데 필요한 시스템 디스크가 표시됩니다.
Bugzilla:1926147[1]
Broadcom 네트워크 어댑터가 실시간 마이그레이션 후 Windows VM에서 올바르게 작동함
이전 버전에서는 Broadcom, Qlogic 또는 Marvell과 같은 Broadcom 제품군의 네트워크 어댑터는 Windows VM(가상 머신)의 실시간 마이그레이션 중에 핫 플러그를 해제할 수 없었습니다. 결과적으로 마이그레이션이 완료된 후 어댑터가 잘못 작동했습니다. 이 문제는 SR-IOV(Single-root I/O Virtualization)를 사용하여 Windows VM에 연결된 어댑터에만 영향을 미쳤습니다. 이번 업데이트를 통해 기본 코드가 수정되어 문제가 더 이상 발생하지 않습니다.
Jira:RHEL-910, Bugzilla:2091528, Bugzilla:2111319
nodedev-dumpxml
은 특정 중재된 장치에 대해 속성을 올바르게 나열합니다.
이번 업데이트 이전에는 nodedev-dumpxml
유틸리티에서 nodedev-create
명령을 사용하여 생성된 중재된 장치에 대해 속성을 올바르게 나열하지 않았습니다. 이 문제가 수정되었으며 nodedev-dumpxml
에 영향을 받는 장치의 속성이 올바르게 표시됩니다.
virtqemud
또는 libvirtd
를 다시 시작한 후 virtiofs
장치를 연결할 수 없습니다
이전 버전에서는 virtqemud
또는 libvirtd
서비스를 다시 시작하면 virtiofs
스토리지 장치가 호스트의 VM(가상 머신)에 연결되지 않았습니다. 이 버그가 수정되었으며 이제 설명된 시나리오에서 virtiofs
장치를 예상대로 연결할 수 있습니다.
가상 머신에 Watchdog 카드를 핫플러그하는 데 더 이상 실패하지 않음
이전 버전에서는 PCI 슬롯을 사용할 수 없는 경우 실행 중인 VM(가상 머신)에 Watchdog 카드를 추가하는 데 실패했습니다.
Failed to configure watchdog ERROR Error attempting device hotplug: internal error: No more available PCI slots
이번 업데이트를 통해 문제가 해결되어 실행 중인 VM에 Watchdog 카드를 추가할 수 있습니다.
IBM Z의 virtio-gpu
에서 Blob
리소스가 제대로 작동하지 않음
virtio-gpu
장치는 현재 IBM Z 시스템의 Blob
메모리 리소스와 호환되지 않습니다. 결과적으로 IBM Z 호스트에서 virtio-gpu
를 사용하여 Blob
리소스를 사용하여 VM(가상 머신)을 구성하면 VM에 그래픽 출력이 없습니다.
9장. 기술 프리뷰
이 부분에서는 Red Hat Enterprise Linux 9에서 사용 가능한 모든 기술 프리뷰 목록을 제공합니다.
기술 프리뷰 기능에 대한 Red Hat 지원 범위 정보는 기술 프리뷰 기능 지원 범위를 참조하십시오.
9.1. 설치 프로그램 및 이미지 생성
RHEL 설치 프로그램에서 NVMe over Fibre Channel 장치를 기술 프리뷰로 사용 가능
이제 RHEL 설치에 NVMe over Fibre Channel 장치를 기술 프리뷰로 추가할 수 있습니다. RHEL 설치 프로그램의 설치 대상 화면에 디스크를 추가하는 동안 NVMe Fabrics Devices 섹션에서 이러한 장치를 선택할 수 있습니다.
9.2. 보안
Gnu
TLS에서 kTLS를 기술 프리뷰로 사용
업데이트된 gnutls
패키지는 커널 TLS(kTLS)를 사용하여 암호화된 채널에서 데이터 전송을 기술 프리뷰로 가속화할 수 있습니다. kTLS를 활성화하려면 modprobe
명령을 사용하여 tls.ko
커널 모듈을 추가하고 다음 콘텐츠를 사용하여 시스템 전체 암호화 정책에 대한 새 구성 파일 /etc/crypto-policies/local.d/gnutls-ktls.txt
를 생성합니다.
[global] ktls = true
현재 버전은 TLS KeyUpdate
메시지를 통해 트래픽 키 업데이트를 지원하지 않으므로 AES-GCM 암호화suite의 보안에 영향을 미칩니다. 자세한 내용은 RFC 7841 - TLS 1.3 문서를 참조하십시오.
Bugzilla:2108532[1]
9.3. 쉘 및 명령행 툴
GIMP를 RHEL 9에서 기술 프리뷰로 사용 가능
이제 RHEL 9에서 기술 프리뷰로 GNU Image Manipulation Program (GIMP) 2.99.8을 사용할 수 있습니다. gimp
패키지 버전 2.99.8은 개선 사항 세트이지만 제한된 기능 세트이며 안정성은 보장되지 않습니다. 공식 GIMP 3이 릴리스되는 즉시 이 시험판 버전의 업데이트로 RHEL 9에 도입될 예정입니다.
RHEL 9에서는 gimp
를 RPM 패키지로 쉽게 설치할 수 있습니다.
Bugzilla:2047161[1]
9.4. 인프라 서비스
TuneD용 소켓 API를 기술 프리뷰로 사용 가능
이제 UNIX 도메인 소켓을 통해 TuneD를 제어하는 소켓 API를 기술 프리뷰로 사용할 수 있습니다. 소켓 API는 D-Bus API를 사용하여 일대일로 매핑하고 D-Bus를 사용할 수 없는 경우에 대한 대체 통신 방법을 제공합니다. 소켓 API를 사용하면 TuneD 데몬을 제어하여 성능을 최적화하고 다양한 튜닝 매개변수 값을 변경할 수 있습니다. 소켓 API는 기본적으로 비활성화되어 있으며 tuned-main.conf
파일에서 활성화할 수 있습니다.
9.5. 네트워킹
WireGuard VPN은 기술 프리뷰로 사용 가능
Red Hat이 지원되지 않는 기술 프리뷰로 제공되는 WireGuard는 Linux 커널에서 실행되는 고성능 VPN 솔루션입니다. 최신 암호화를 사용하며 다른 VPN 솔루션보다 쉽게 구성할 수 있습니다. 또한 WireGuard의 작은 코드베이스는 공격에 대한 표면을 줄이고 보안을 향상시킵니다.
자세한 내용은 WireGuard VPN 설정을 참조하십시오.
Bugzilla:1613522[1]
kTLS를 기술 프리뷰로 사용 가능
RHEL은 기술 프리뷰로 커널 전송 계층 보안(KTLS)을 제공합니다. kTLS는 AES-GCM 암호화의 커널의 대칭 암호화 또는 암호 해독 알고리즘을 사용하여 TLS 레코드를 처리합니다. kTLS에는 이 기능을 제공하는 NIC(Network Interface Controllers)에 TLS 레코드 암호화를 오프로드하는 인터페이스도 포함됩니다.
Bugzilla:1570255[1]
systemd-resolved
서비스는 기술 프리뷰로 사용 가능
systemd-resolved
서비스는 로컬 애플리케이션에 대한 이름 확인을 제공합니다. 이 서비스는 캐싱 및 검증 DNS 스텁 확인자, LLMNR(Link-Local Multicast Name Resolution) 및 멀티 캐스트 DNS 확인자 및 응답자를 구현합니다.
systemd-resolved
는 지원되지 않는 기술 프리뷰입니다.
PRP 및 CryostatR 프로토콜은 이제 기술 프리뷰로 사용 가능
이번 업데이트에서는 다음 프로토콜을 제공하는 hsr
커널 모듈이 추가되었습니다.
- 병렬 중복 프로토콜(PRP)
- HSM(High-availability Seamless Redundancy)
Cryostat 62439-3 표준은 이러한 프로토콜을 정의하고 이 기능을 사용하여 이더넷 네트워크에서 제로 손실 중복을 구성할 수 있습니다.
Bugzilla:2177256[1]
NIC에 IPsec 캡슐화를 오프로드하면 기술 프리뷰로 사용 가능
이번 업데이트에서는 IPsec 패킷 오프로드 기능이 커널에 추가되었습니다. 이전에는 NIC(네트워크 인터페이스 컨트롤러)로 암호화를 오프로드할 수 있었습니다. 이번 개선된 기능을 통해 커널은 전체 IPsec 캡슐화 프로세스를 NIC로 오프로드하여 워크로드를 줄일 수 있습니다.
IPsec 캡슐화 프로세스를 NIC로 오프로드하면 커널에서 이러한 패킷을 모니터링하고 필터링할 수 있는 기능도 줄어듭니다.
Bugzilla:2178699[1]
RHEL에서 가상 머신의 네트워크 드라이버를 기술 프리뷰로 사용할 수 있습니다.
장치 제조업체는 FCC(Federal Commission) 잠금을 기본 설정으로 지원합니다. Cryostat는 드라이버를 특정 시스템에 바인딩할 수 있는 잠금을 제공합니다. 여기서 Cryostat 드라이버는 시뮬레이터와 통신할 수 있는 채널을 제공합니다. 제조업체에서는 PCI ID를 기반으로 ModemManager용 Red Hat Enterprise Linux에서 잠금 해제 툴을 통합합니다. 그러나 이전에 잠금 해제되지 않은 경우 이전에는 driver가 호환되고 기능적인 경우에도 사용할 수 없는 상태로 유지됩니다. Red Hat Enterprise Linux는 기술 프리뷰로 제한된 기능을 갖춘 다음과 같은 가상 시스템의 드라이버를 제공합니다.
- Qualcomm MHI WWAMMBIM - Telit FN990Axx
- Intel IPC over Shared Memory (IOSM) - Intel XMM 7360 game Advanced
- MediaTek t7xx (W Cryostat) - Fibocom FM350GL
- Intel IPC over Shared Memory (IOSM) - Fibocom L860GL 구현
Jira:RHELDOCS-16760[1], Bugzilla:2123542, Jira:RHEL-6564, Bugzilla:2110561, Bugzilla:2222914
SRv6 (SRv6)을 통한 세그먼트 라우팅을 기술 프리뷰로 사용 가능
RHEL 커널은 SRv6(Segment Routing over IPv6)을 기술 프리뷰로 제공합니다. 이 기능을 사용하여 에지 컴퓨팅의 트래픽 흐름을 최적화하거나 데이터 센터의 네트워크 프로그래밍 가능성을 개선할 수 있습니다. 그러나 가장 중요한 사용 사례는 5G 배포 시나리오에서 E2E(End-to-end) 네트워크 분할입니다. 이 영역에서 SRv6 프로토콜은 특정 애플리케이션 또는 서비스에 대한 네트워크 요구 사항을 해결하기 위해 프로그래밍 가능한 사용자 지정 네트워크 슬라이스 및 리소스 예약을 제공합니다. 동시에 솔루션을 단일 용도 어플라이언스에 배포할 수 있으며 더 작은 컴퓨팅 공간의 필요성을 충족합니다.
Bugzilla:2186375[1]
kTLS 버전 6.3로 업데이트됨
KTLS(커널 전송 계층 보안) 기능은 기술 프리뷰입니다. 이 RHEL 릴리스에서 kTLS는 6.3 업스트림 버전을 기반으로 변경되었으며 주요 변경 사항은 다음과 같습니다.
- TX 장치 오프로드를 사용하여 256비트 키에 대한 지원 추가
- 다양한 버그 수정
Bugzilla:2183538[1]
9.6. 커널
통합 커널 이미지가 있는 kdump
메커니즘은 기술 프리뷰로 사용 가능
통합 커널 이미지(UKI)에 포함된 커널 이미지가 포함된 kdump
메커니즘은 기술 프리뷰로 사용할 수 있습니다. UKI는 initramfs
,vmlinuz
및 커널 명령줄을 단일 파일에 결합하는 단일 실행 파일입니다. UKI 주요 이점은 SecureBoot의 암호화 서명을 한 번에 모든 구성 요소로 확장할 수 있습니다.
기능이 작동하려면 UKI에 포함된 커널 명령줄과 함께 crashkernel=
매개변수를 적절한 값으로 설정합니다. 그러면 kdump
에 필요한 메모리가 예약됩니다.
참고: 현재 Linux 커널의 kexec_file_load
시스템 호출은 UKI를 로드할 수 없습니다. 따라서 UKI에 포함된 커널 이미지만 kexec_file_load
시스템 호출을 사용하여 크래시 커널을 로드할 때 사용됩니다.
Bugzilla:2169720[1]
SGX를 기술 프리뷰로 사용 가능
SGX( Software Guard Extensions )는 소프트웨어 코드와 데이터를 공개 및 수정으로부터 보호하는 Intel® 기술입니다. RHEL 커널은 부분적으로 SGX v1 및 v1.5 기능을 제공합니다. 버전 1은 유연한 시작 제어 메커니즘을 사용하는 플랫폼에서 SGX 기술을 사용할 수 있도록 합니다. 버전 2에는 Enclave Dynamic Memory Management (EDMM)가 추가되었습니다. 주요 기능은 다음과 같습니다.
- 초기화된 enclave에 속하는 일반 enclave 페이지의 EPCM 권한 수정.
- 초기화된 enclave에 일반 enclave 페이지의 동적 추가
- 더 많은 스레드를 수용하기 위해 초기화된 enclave를 확장합니다.
- 초기화된 enclave에서 일반 및 TCS 페이지 제거.
Bugzilla:1874182[1]
커널용 Intel 데이터 스트리밍 가속기 드라이버는 기술 프리뷰로 사용 가능
커널의 IDXD(Intel 데이터 스트리밍 액셀러레이터 드라이버)는 현재 기술 프리뷰로 사용할 수 있습니다. Intel CPU 통합 액셀러레이터이며 프로세스 주소 공간 ID(pasid) 제출 및 공유 가상 메모리(SVM)와 함께 공유 작업 큐를 포함합니다.
Soft-iWARP 드라이버는 기술 프리뷰로 사용 가능
소프트 iWARP(siw)는 Linux용 커널 드라이버인 IWARP(Internet Wide-area RDMA Protocol)입니다. soft-iWARP는 TCP/IP 네트워크 스택을 통해 iWARP 프로토콜 제품군을 구현합니다. 이 프로토콜 제품군은 소프트웨어로 완전히 구현되며 특정 RDMA(Remote Direct Memory Access) 하드웨어가 필요하지 않습니다. 소프트-iWARP를 사용하면 표준 이더넷 어댑터가 있는 시스템이 iWARP 어댑터 또는 이미 설치된 Soft-iWARP에 설치된 다른 시스템에 연결할 수 있습니다.
Bugzilla:2023416[1]
SGX를 기술 프리뷰로 사용 가능
SGX( Software Guard Extensions )는 소프트웨어 코드와 데이터를 공개 및 수정으로부터 보호하는 Intel® 기술입니다. RHEL 커널은 부분적으로 SGX v1 및 v1.5 기능을 제공합니다. 버전 1은 유연한 시작 제어 메커니즘을 사용하는 플랫폼에서 SGX 기술을 사용할 수 있도록 합니다. 버전 2에는 Enclave Dynamic Memory Management (EDMM)가 추가되었습니다. 주요 기능은 다음과 같습니다.
- 초기화된 enclave에 속하는 일반 enclave 페이지의 EPCM 권한 수정.
- 초기화된 enclave에 일반 enclave 페이지의 동적 추가
- 더 많은 스레드를 수용하기 위해 초기화된 enclave를 확장합니다.
- 초기화된 enclave에서 일반 및 TCS 페이지 제거.
Bugzilla:1660337[1]
rvu_af
,rvu_nicpf
, 및 기술 프리뷰로 사용 가능한 rvu_nicvf
다음 커널 모듈은 Marvell OCTEON TX2 Infrastructure Processor 제품군의 기술 프리뷰로 사용할 수 있습니다.
-
rvu_nicpf
- Marvell OcteonTX2 NIC 물리 기능 드라이버 -
rvu_nicvf
- Marvell OcteonTX2 NIC 가상 기능 드라이버 -
rvu_nicvf
- Marvell OcteonT2 RVU 관리 기능 드라이버
Bugzilla:2040643[1]
9.7. 파일 시스템 및 스토리지
이제 ext4 및 XFS에서 기술 프리뷰로 DAX를 사용할 수 있습니다.
RHEL 9에서 DAX 파일 시스템은 기술 프리뷰로 사용할 수 있습니다. DAX는 애플리케이션이 영구 메모리를 해당 주소 공간에 직접 매핑할 수 있는 수단을 제공합니다. DAX를 사용하려면 시스템에서 일반적으로 하나 이상의 NVMe(Non-Volatile Dual In-line Memory Modules) 형식으로 사용 가능한 영구 메모리가 있어야 하며 NVDIMM(s)에서 DAX 호환 파일 시스템을 생성해야 합니다. 또한 dax
마운트 옵션을 사용하여 파일 시스템을 마운트해야 합니다. 그런 다음 dax로 마운트된 파일 시스템의 파일 mmap
이 있으면 스토리지가 애플리케이션의 주소 공간에 직접 매핑됩니다.
Bugzilla:1995338[1]
NVMe-oF Discovery Service 기능을 기술 프리뷰로 사용 가능
NVMexpress.org Technical Proposals(TP) 8013 및 8014에 정의된 NVMe-oF Discovery Service 기능은 기술 프리뷰로 사용할 수 있습니다. 이러한 기능을 미리 보려면 nvme-cli 2.0
패키지를 사용하고 호스트를 TP-8013 또는 TP-8014를 구현하는 NVMe-oF 대상 장치에 연결합니다. TP-8013 및 TP-8014에 대한 자세한 내용은 https://nvmexpress.org/specifications/ 웹 사이트의 NVM Express 2.0 Ratified TP를 참조하십시오.
Bugzilla:2021672[1]
NVMe-stas
패키지를 기술 프리뷰로 사용 가능
Linux용 중앙 검색 컨트롤러(CDC) 클라이언트인 nvme-stas
패키지는 이제 기술 프리뷰로 사용할 수 있습니다. AEN(Asynchronous Event Notifications), 자동화된 NVMe 하위 시스템 연결 제어, 오류 처리 및 보고, 자동(0conf
) 및 수동 구성을 처리합니다.
이 패키지는 두 개의 데몬, Storage 어플라이언스 찾기(stafd
) 및 스토리지 어플라이언스 커넥터(stacd
)로 구성됩니다.
Bugzilla:1893841[1]
NVMe TP 8006 인 대역 인증 기술 프리뷰로 사용 가능
NVMe(Non-Volatile Memory Express) TP 8006을 구현하는 것은 이제 지원되지 않는 기술 프리뷰로 NVMe over Fabrics(NVMe-oF)에 대한 대역 내 인증입니다. NVMe Technical Proposal 8006은 이 향상된 기능을 통해 NVMe-oF의 DH-HMAC-CHAP
In-band authentication 프로토콜을 정의합니다.
자세한 내용은 nvme-connect(1)
도움말 페이지의 dhchap-secret
및 dhchap-ctrl-secret
옵션 설명을 참조하십시오.
Bugzilla:2027304[1]
io_uring
인터페이스는 기술 프리뷰로 사용 가능
io_uring
은 새롭고 효과적인 비동기 I/O 인터페이스이며 이제 기술 프리뷰로 사용할 수 있습니다. 이 기능은 기본적으로 비활성화되어 있습니다. kernel.io_uring_disabled
sysctl 변수를 다음 값 중 하나로 설정하여 이 인터페이스를 활성화할 수 있습니다.
0
-
모든 프로세스는
io_uring
인스턴스를 정상적으로 생성할 수 있습니다. 1
-
권한이 없는 프로세스에 대해
io_uring
생성이 비활성화됩니다.CAP_SYS_ADMIN
기능을 통해 호출 프로세스의 권한을 부여하지 않는 한io_uring_setup
이-EPERM
오류로 실패합니다. 기존io_uring
인스턴스를 계속 사용할 수 있습니다. 2
-
모든 프로세스에 대해
io_uring
생성이 비활성화됩니다.io_uring_setup
은 항상-EPERM
. 기존io_uring
인스턴스를 계속 사용할 수 있습니다. 이 설정은 기본 설정입니다.
이 기능을 사용하려면 익명 inode에서 mmap
시스템 호출을 활성화하는 업데이트된 SELinux 정책 버전이 필요합니다.
애플리케이션은 io_uring
명령 pass-through를 사용하여 nvme
와 같은 기본 하드웨어에 직접 명령을 실행할 수 있습니다. io_uring
명령 pass-through를 사용하려면 현재 사용자 지정 SELinux 정책 모듈이 필요합니다. 사용자 지정 SELinux 정책 모듈을 생성합니다.
다음 행을
io_uring_cmd_passthrough.cil
파일로 저장합니다.---cut here--- ( allow unconfined_domain_type device_node ( io_uring ( cmd ))) ( allow unconfined_domain_type file_type ( io_uring ( cmd ))) ---cut here---
policy 모듈을 로드합니다.
# semodule -i io_uring_cmd_passthrough.cil
Bugzilla:2068237[1]
9.8. 컴파일러 및 개발 도구
JMC-core
및 owasp-java-encoder
를 기술 프리뷰로 사용 가능
RHEL 9는 AMD 및 Intel 64비트 아키텍처의 기술 프리뷰 기능으로 jmc-core
및 owasp-java-encoder
패키지와 함께 배포됩니다.
JMC -core
는 JDK Flight Recording 파일을 구문 분석하고 쓰기 위한 라이브러리와 JDK(Java Discovery Protocol)를 통한 JVM(Java Virtual Machine) 검색용 라이브러리 등 JDK(Java Development Kit) 미션 제어를 위한 핵심 API를 제공하는 라이브러리입니다.
owasp-java-encoder
패키지는 Java에 대한 고성능 저차 컨텍스트 인코더 컬렉션을 제공합니다.
RHEL 9.2, jmc-core
및 owasp-java-encoder
는 명시적으로 활성화해야 하는 CRB(CodeReady Linux Builder) 리포지토리에서 사용할 수 있습니다. 자세한 내용은 CodeReady Linux Builder 내에서 콘텐츠를 활성화하고 사용하는 방법을 참조하십시오.
9.9. IdM (Identity Management)
DNSSEC를 IdM에서 기술 프리뷰로 사용 가능
통합 DNS가 있는 IdM(Identity Management) 서버는 DNS 프로토콜의 보안을 강화하는 DNS 확장 프로그램 세트인 DNSSEC(DNS Security Extensions)를 구현합니다. IdM 서버에서 호스팅되는 DNS 영역은 DNSSEC를 사용하여 자동으로 로그인할 수 있습니다. 암호화 키가 자동으로 생성되고 순환됩니다.
DNSSEC로 DNS 영역을 보호하기로 결정한 사용자는 다음 문서를 읽고 따르는 것이 좋습니다.
통합 DNS가 있는 IdM 서버는 DNSSEC를 사용하여 다른 DNS 서버에서 얻은 DNS 응답을 검증합니다. 이는 권장되는 이름 지정 방식에 따라 구성되지 않은 DNS 영역의 가용성에 영향을 미칠 수 있습니다.
Identity Management JSON-RPC API를 기술 프리뷰로 사용 가능
IdM(Identity Management)에 API를 사용할 수 있습니다. API를 보기 위해 IdM은 API 브라우저도 기술 프리뷰로 제공합니다.
이전에는 여러 버전의 API 명령을 사용하도록 IdM API가 향상되었습니다. 이러한 개선 사항으로 인해 호환되지 않는 방식으로 명령의 동작이 변경될 수 있습니다. 이제 IdM API가 변경되어도 기존 툴과 스크립트를 계속 사용할 수 있습니다. 이를 통해 다음을 활성화합니다.
- 관리자는 관리 클라이언트보다 서버에서 이전 또는 이후 버전의 IdM을 사용해야 합니다.
- 서버에서 IdM 버전이 변경되어도 개발자는 특정 버전의 IdM 호출을 사용할 수 있습니다.
모든 경우에 한 쪽이 사용하는지에 관계없이 서버와의 통신이 가능합니다(예: 기능에 대한 새로운 옵션을 도입하는 최신 버전).
API 사용에 대한 자세한 내용은 Using the Identity Management API to Communicate with the IdM Server (undercloudNOLOGY PREVIEW) 를 참조하십시오.
sssd-idp 하위 패키지를 기술 프리뷰로 사용 가능
SSSD의 sssd-idp
하위 패키지에는 IdM(Identity Management) 서버에 대해 OAuth2 인증을 수행하는 클라이언트 측 구성 요소인 oidc_child
및 krb5 idp
플러그인이 포함되어 있습니다. 이 기능은 RHEL 9.1 이상의 IdM 서버에서만 사용할 수 있습니다.
SSSD 내부 krb5 idp 플러그인을 기술 프리뷰로 사용 가능
SSSD krb5 idp
플러그인을 사용하면 OAuth2 프로토콜을 사용하여 외부 ID 공급자(IdP)에 대해 인증할 수 있습니다. 이 기능은 RHEL 9.1 이상의 IdM 서버에서만 사용할 수 있습니다.
RHEL IdM을 사용하면 외부 ID 공급자에 대한 사용자 인증을 기술 프리뷰로 위임할 수 있습니다.
RHEL IdM에서 OAuth 2 장치 권한 부여 흐름을 지원하는 외부 ID 공급자(IdP)와 사용자를 연결할 수 있습니다. 이러한 사용자가 RHEL 9.1 이상에서 사용 가능한 SSSD 버전으로 인증하면 외부 IdP에서 인증 및 권한 부여를 수행한 후 Kerberos 티켓으로 RHEL IdM Single Sign-On 기능이 제공됩니다.
주요 기능은 다음과 같습니다.
-
ipa idp-*
명령을 사용하여 외부 IdP에 대한 참조 추가, 수정 및 삭제 -
ipa user-mod --user-auth-type=idp
명령을 사용하여 사용자에 대해 IdP 인증 활성화
자세한 내용은 외부 ID 공급자를 사용하여 IdM 인증을 참조하십시오.
ACME를 기술 프리뷰로 사용 가능
ACME(Automated Certificate Management Environment) 서비스는 이제 IdM(Identity Management)에서 기술 프리뷰로 사용할 수 있습니다. ACME는 자동 식별자 검증 및 인증서 발행을 위한 프로토콜입니다. 이는 인증서 수명을 줄이고 인증서 라이프사이클 관리에서 수동 프로세스를 방지하여 보안을 개선하는 것입니다.
RHEL에서 ACME 서비스는 RHCS(Red Hat Certificate System) PKI ACME 응답자를 사용합니다. RHCS ACME 하위 시스템은 IdM 배포의 모든 CA(인증 기관) 서버에 자동으로 배포되지만 관리자가 이를 활성화할 때까지 서비스 요청은 수행하지 않습니다. RHCS는 ACME 인증서를 발행할 때 acmeIPAServerCert
프로필을 사용합니다. 발급된 인증서의 유효 기간은 90일입니다. ACME 서비스를 활성화하거나 비활성화하면 전체 IdM 배포에 영향을 미칩니다.
모든 서버가 RHEL 8.4 이상을 실행하는 IdM 배포에서만 ACME를 활성화하는 것이 좋습니다. 이전 RHEL 버전에는 ACME 서비스가 포함되어 있지 않으므로 혼합 버전 배포에서 문제가 발생할 수 있습니다. 예를 들어 ACME가 없는 CA 서버는 다른 DNS Subject Alternative Name(SAN)을 사용하므로 클라이언트 연결이 실패할 수 있습니다.
현재 RHCS는 만료된 인증서를 제거하지 않습니다. ACME 인증서는 90일 후에 만료되므로 만료된 인증서는 누적될 수 있으며 이는 성능에 영향을 미칠 수 있습니다.
전체 IdM 배포에서 ACME를 활성화하려면
ipa-acme-manage enable
명령을 사용합니다.# ipa-acme-manage enable The ipa-acme-manage command was successful
전체 IdM 배포에서 ACME를 비활성화하려면
ipa-acme-manage disable
명령을 사용합니다.# ipa-acme-manage disable The ipa-acme-manage command was successful
ACME 서비스가 설치되어 있고 활성화되어 있는지 확인하려면
ipa-acme-manage status
명령을 사용합니다.# ipa-acme-manage status ACME is enabled The ipa-acme-manage command was successful
Bugzilla:2084181[1]
9.10. 데스크탑
64비트 ARM 아키텍처용 GNOME은 기술 프리뷰로 사용 가능
64비트 ARM 아키텍처에서 GNOME 데스크탑 환경은 기술 프리뷰로 사용할 수 있습니다.
이제 VNC를 사용하여 64비트 ARM 서버의 데스크탑 세션에 연결할 수 있습니다. 따라서 그래픽 애플리케이션을 사용하여 서버를 관리할 수 있습니다.
제한된 그래픽 애플리케이션 세트는 64비트 ARM에서 사용할 수 있습니다. 예를 들면 다음과 같습니다.
- Firefox 웹 브라우저
-
Red Hat Subscription Manager (
subscription-manager-cockpit
) -
방화벽 설정(
firewall-config
) -
디스크 사용량 분석기(
baobab
)
Firefox를 사용하여 서버의 Cockpit 서비스에 연결할 수 있습니다.
LibreOffice와 같은 특정 애플리케이션은 명령줄 인터페이스만 제공하며 그래픽 인터페이스는 비활성화되어 있습니다.
Jira:RHELPLAN-27394[1]
IBM Z 아키텍처용 GNOME은 기술 프리뷰로 사용 가능
IBM Z 아키텍처에서 GNOME 데스크탑 환경은 기술 프리뷰로 사용할 수 있습니다.
이제 VNC를 사용하여 IBM Z 서버의 데스크탑 세션에 연결할 수 있습니다. 따라서 그래픽 애플리케이션을 사용하여 서버를 관리할 수 있습니다.
IBM Z에서 제한된 그래픽 애플리케이션 세트를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
- Firefox 웹 브라우저
-
Red Hat Subscription Manager (
subscription-manager-cockpit
) -
방화벽 설정(
firewall-config
) -
디스크 사용량 분석기(
baobab
)
Firefox를 사용하여 서버의 Cockpit 서비스에 연결할 수 있습니다.
LibreOffice와 같은 특정 애플리케이션은 명령줄 인터페이스만 제공하며 그래픽 인터페이스는 비활성화되어 있습니다.
Jira:RHELPLAN-27737[1]
9.11. 가상화
중첩된 가상 머신 생성
중첩된 KVM 가상화는 RHEL 9가 있는 Intel, AMD64 및 IBM Z 호스트에서 실행되는 KVM 가상 머신(VM)용 기술 프리뷰로 제공됩니다. 이 기능을 사용하면 물리적 RHEL 9 호스트에서 실행되는 RHEL 7, RHEL 8 또는 RHEL 9 VM이 하이퍼바이저 역할을 하며 자체 VM을 호스팅할 수 있습니다.
Jira:RHELDOCS-17040[1]
KVM 가상 머신용 AMD SEV 및 SEV-ES
RHEL 9는 기술 프리뷰로 KVM 하이퍼바이저를 사용하는 AMD EPYC 호스트 시스템에 대한 SEV(Secure Encrypted Virtualization) 기능을 제공합니다. VM(가상 시스템)에서 활성화된 경우 SEV는 VM의 메모리를 암호화하여 호스트의 액세스로부터 보호합니다. 이렇게 하면 VM의 보안이 향상됩니다.
또한 SEV (SEV-ES)의 향상된 암호화 상태 버전도 기술 프리뷰로 제공됩니다. SEV-ES는 VM 실행이 중지되면 모든 CPU 레지스터 콘텐츠를 암호화합니다. 이렇게 하면 호스트에서 VM의 CPU 레지스터를 수정하거나 해당 항목에서 정보를 읽지 않습니다.
SEV 및 SEV-ES는 2 세대의 AMD EPYC CPU (코드명 Ramam) 이상에서만 작동합니다. 또한 RHEL 9에는 SEV 및 SEV-ES 암호화가 포함되어 있지만 SEV 및 SEV-ES 보안 테스트에는 포함되지 않습니다.
Jira:RHELPLAN-65217[1]
ARM 64에서 가상화 사용 가능
이제 기술 프리뷰로 ARM 64 CPU를 사용하는 시스템에서 KVM 가상 머신을 생성할 수 있습니다.
Jira:RHELPLAN-103993[1]
virtio-mem
은 AMD64, Intel 64 및 ARM 64에서 사용 가능
RHEL 9에서는 기술 프리뷰로 AMD64, Intel 64 및 ARM 64 시스템에 virtio-mem
기능이 도입되었습니다. virtio-mem
을 사용하면 VM(가상 머신)에서 호스트 메모리를 동적으로 추가하거나 제거할 수 있습니다.
virtio-mem
을 사용하려면 VM의 XML 구성에 virtio-mem
메모리 장치를 정의하고, VM이 실행되는 동안 virsh update-memory-device
명령을 사용하여 메모리 장치 크기 변경을 요청합니다. 이러한 메모리 장치에서 실행 중인 VM에 노출된 현재 메모리 크기를 보려면 VM의 XML 구성을 확인합니다.
그러나 virtio-mem
은 현재 Windows 운영 체제를 사용하는 VM에서 작동하지 않습니다.
Bugzilla:2014487, Bugzilla:2044162, Bugzilla:2044172
RHEL 게스트의 Intel TDX
이제 RHEL 9.2 이상 게스트 운영 체제에서 TDX(Intel Trust Domain Extension) 기능을 사용할 수 있습니다. 호스트 시스템이 TDX를 지원하는 경우 신뢰 도메인(TD)이라는 하드웨어 격리 RHEL 9 VM(가상 머신)을 배포할 수 있습니다. 그러나 TDX는 현재 kdump
에서는 작동하지 않으며 TDX를 활성화하면 VM에서 kdump
가 실패합니다.
Bugzilla:1955275[1]
RHEL의 통합 커널 이미지를 기술 프리뷰로 사용 가능
이제 기술 프리뷰로 VM(가상 머신)의 통합 커널 이미지(UKI)로 RHEL 커널을 가져올 수 있습니다. 통합 커널 이미지는 커널, initramfs 및 커널 명령줄을 하나의 서명된 바이너리 파일에 결합합니다.
영국I는 가상화 및 클라우드 환경, 특히 강력한 SecureBoot 기능이 필요한 기밀 VM에서 사용할 수 있습니다. UKI는 RHEL 9 리포지토리에서 kernel-uki-virt
패키지로 사용할 수 있습니다.
현재 RHEL UKI는 UEFI 부팅 구성에서만 사용할 수 있습니다.
Bugzilla:2142102[1]
Intel vGPU를 기술 프리뷰로 사용 가능
기술 프리뷰로 물리적 Intel GPU 장치를 중재 장치라고 하는 여러 가상 장치로 나눌 수 있습니다
. 그런 다음 이러한 중재된 장치를 가상 GPU로 여러 VM(가상 머신)에 할당할 수 있습니다. 결과적으로 이러한 VM은 단일 물리적 Intel GPU의 성능을 공유합니다.
이 기능은 더 이상 사용되지 않으며 RHEL 9.3 릴리스에서 완전히 제거되었습니다.
Jira:RHELDOCS-17050[1]
9.12. 클라우드 환경의 RHEL
이제 Azure 기밀 VM에서 기술 프리뷰로 RHEL을 사용할 수 있습니다.
업데이트된 RHEL 커널을 사용하면 Microsoft Azure에서 RHEL 기밀 가상 머신(VM)을 기술 프리뷰로 생성하고 실행할 수 있습니다. 이제 새로 추가된 통합 커널 이미지(UKI)에서 Azure에서 암호화된 기밀 VM 이미지를 부팅할 수 있습니다. UKI는 RHEL 9 리포지토리에서 kernel-uki-virt
패키지로 사용할 수 있습니다.
현재 RHEL UKI는 UEFI 부팅 구성에서만 사용할 수 있습니다.
Jira:RHELPLAN-139800[1]
9.13. 컨테이너
Podman의 SQLite 데이터베이스 백엔드는 기술 프리뷰로 사용 가능
Podman v4.6부터 Podman의 SQLite 데이터베이스 백엔드는 기술 프리뷰로 사용할 수 있습니다. 데이터베이스 백엔드를 SQLite로 설정하려면 /etc/containers/containers.conf
구성 파일에 database_backend = "sqlite"
옵션을 추가합니다. SQLite 데이터베이스 백엔드로 전환하기 전에 podman system reset
명령을 실행하여 스토리지를 초기 상태로 되돌립니다. 모든 컨테이너와 Pod를 다시 생성해야 합니다. SQLite 데이터베이스는 좋은 안정성과 일관성을 보장합니다. 컨테이너 스택의 다른 데이터베이스도 SQLite로 이동합니다. BoltDB는 기본 데이터베이스 백엔드로 유지됩니다.
Jira:RHELPLAN-154429[1]
podman-machine
명령은 지원되지 않음
가상 머신을 관리하는 podman-machine
명령은 기술 프리뷰로만 사용할 수 있습니다. 대신 명령줄에서 직접 Podman을 실행합니다.
Jira:RHELDOCS-16861[1]
10장. 사용되지 않는 기능
이 부분에서는 Red Hat Enterprise Linux 9에서 더 이상 사용되지 않는 기능에 대한 개요를 제공합니다.
사용되지 않는 기능은 이 제품의 향후 주요 릴리스에서 지원되지 않을 가능성이 높으며 새로운 배포에 구현하는 것은 권장되지 않습니다. 특정 주요 릴리스 내에서 더 이상 사용되지 않는 기능의 최신 목록은 최신 릴리스 노트를 참조하십시오.
더 이상 사용되지 않는 장치는 완전히 지원되므로 테스트 및 유지 관리되며 Red Hat Enterprise Linux 9 내에서 지원 상태가 변경되지 않은 상태로 유지됩니다. 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux 라이프 사이클 및 Red Hat Enterprise Linux Application Streams 라이프 사이클 을 참조하십시오.
사용되지 않는 하드웨어 구성 요소는 현재 또는 향후 주요 릴리스의 새로운 배포에 구현하는 것을 권장하지 않습니다. Red Hat은 최대한 빠른 시일 내에 이 하드웨어를 교체할 것을 권장합니다.
패키지가 더 이상 사용되지 않으며 향후 사용이 권장되지 않는 경우가 있습니다. 경우에 따라 패키지가 제품에서 삭제될 수 있습니다. 제품 설명서에 더 이상 사용되지 않는 기능과 유사 또는 동일하거나 보다 고급 기능을 제공하는 최근 패키지가 지정된 권장 사항이 기재됩니다.
RHEL 8에는 존재하지만 RHEL 9에는 제거된 기능에 대한 자세한 내용은 RHEL 9 채택 시 고려 사항을 참조하십시오.
10.1. 설치 프로그램 및 이미지 생성
더 이상 사용되지 않는 Kickstart 명령
다음 Kickstart 명령이 더 이상 사용되지 않습니다.
-
timezone --ntpservers
-
timezone --nontp
-
logging --level
-
%packages --excludeWeakdeps
-
%packages --instLangs
-
%anaconda
-
pwpolicy
특정 옵션만 나열된 경우 기본 명령 및 기타 옵션을 계속 사용할 수 있으며 더 이상 사용되지 않습니다. Kickstart 파일에서 더 이상 사용되지 않는 명령을 사용하면 로그에 경고가 출력됩니다. inst.ksstrict
부팅 옵션을 사용하여 더 이상 사용되지 않는 명령 경고를 오류로 전환할 수 있습니다.
Bugzilla:1899167[1]
edge-commit
및 edge-container
블루프린트의 사용자 및 그룹 사용자 지정이 더 이상 사용되지 않음
이미지를 업그레이드하고 블루프린트에 사용자를 다시 지정하지 않으면 사용자 사용자 지정이 사라지기 때문에 블루프린트에 사용자 또는 그룹 사용자 지정은 edge-commit
및 edge-container
이미지 유형에 대해 더 이상 사용되지 않습니다.
edge-raw-image
,edge-installer
, edge-simplified-installer
이미지 유형과 같은 기존 OSTree 커밋을 배포하는 데 사용되는 사용자 또는 그룹 사용자 지정을 블루프린트에 지정하는 것은 계속 지원됩니다.
initial-setup
패키지가 더 이상 사용되지 않음
initial-setup
패키지는 Red Hat Enterprise Linux 9.3에서 더 이상 사용되지 않으며 다음 주요 RHEL 릴리스에서 제거됩니다. 대신 그래픽 사용자 인터페이스에 gnome-initial-setup
을 사용합니다.
Jira:RHELDOCS-16393[1]
inst.geoloc
부팅 옵션의 provider_hostip
및 provider_fedora_geoip
값은 더 이상 사용되지 않습니다.
inst.geoloc=
부팅 옵션에 GeoIP API를 지정한 provider_hostip
및 provider_fedora_geoip
값은 더 이상 사용되지 않습니다. 대체 방법으로 geolocation_provider=URL
옵션을 사용하여 설치 프로그램 구성 파일에 필요한 geolocation을 설정할 수 있습니다. inst.geoloc=0
옵션을 사용하여 geolocation을 비활성화할 수 있습니다.
10.2. 보안
SHA-1은 암호화 목적으로 더 이상 사용되지 않습니다.
암호화 목적으로 SHA-1 메시지 다이제스트의 사용은 RHEL 9에서 더 이상 사용되지 않습니다. SHA-1에 의해 생성된 다이제스트는 해시 충돌을 찾기 위해 문서화된 많은 성공적인 공격으로 인해 안전한 것으로 간주되지 않습니다. RHEL 핵심 암호화 구성 요소는 기본적으로 SHA-1을 사용하여 더 이상 서명을 생성하지 않습니다. RHEL 9의 애플리케이션은 보안 관련 사용 사례에서 SHA-1을 사용하지 않도록 업데이트되었습니다.
예외적으로 HMAC-SHA1 메시지 인증 코드와 UUID(Universal Unique Identifier) 값은 SHA-1을 사용하여 계속 생성할 수 있습니다. 이러한 사용 사례에서는 현재 보안 위험이 발생하지 않기 때문입니다. SHA-1은 Kerberos 및 Cryostat-2와 같은 중요한 상호 운용성 및 호환성 문제와 관련된 제한된 경우에 사용할 수도 있습니다. 자세한 내용은 RHEL 9 보안 강화 문서의 FIPS 140-3 섹션과 호환되지 않는 암호화를 사용하는 RHEL 애플리케이션 목록을 참조하십시오.
기존 또는 타사 암호화 서명을 확인하는 데 SHA-1을 사용해야 하는 경우 다음 명령을 입력하여 활성화할 수 있습니다.
# update-crypto-policies --set DEFAULT:SHA1
또는 시스템 전체 암호화 정책을 LEGACY
정책으로 전환할 수 있습니다. LEGACY
는 안전하지 않은 다른 많은 알고리즘도 활성화합니다.
Jira:RHELPLAN-110763[1]
fapolicyd.rules
가 더 이상 사용되지 않음
허용 및 실행 규칙을 포함하는 파일의 /etc/fapolicyd/rules.d/
디렉토리에서 /etc/fapolicyd/fapolicyd.rules
파일을 대체합니다. fagenrules
스크립트는 이 디렉터리의 모든 구성 요소 규칙 파일을 /etc/fapolicyd/compiled.rules
파일에 병합합니다. /etc/fapolicyd/fapolicyd.trust
의 규칙은 여전히 fapolicyd
프레임 워크에서 처리되지만 이전 버전과의 호환성을 위해서만 처리됩니다.
RHEL 9에서 SCP가 더 이상 사용되지 않음
보안 복사 프로토콜(SCP)은 알려진 보안 취약점이 있기 때문에 더 이상 사용되지 않습니다. SCP API는 RHEL 9 라이프사이클에서 계속 사용할 수 있지만 이를 사용하면 시스템 보안이 줄어듭니다.
-
scp
유틸리티에서 SCP는 기본적으로 SSH 파일 전송 프로토콜(SFTP)으로 교체됩니다. - OpenSSH 제품군은 RHEL 9에서는 SCP를 사용하지 않습니다.
-
SCP는
libssh
라이브러리에서 더 이상 사용되지 않습니다.
Jira:RHELPLAN-99136[1]
OpenSSL을 사용하려면 FIPS 모드에서 RSA 암호화를 위한 패딩이 필요합니다.
OpenSSL은 FIPS 모드에서 패딩하지 않고 RSA 암호화를 더 이상 지원하지 않습니다. 패딩이 없는 RSA 암호화는 드문 일이 아니며 거의 사용되지 않습니다. RSA(RSASVE)가 포함된 키 캡슐화는 패딩을 사용하지 않지만 계속 지원됩니다.
NTLM 및 Krb4는 Cyrus SASL에서 더 이상 사용되지 않습니다.
NTLM 및 Kerberos 4 인증 프로토콜은 더 이상 사용되지 않으며 향후 주요 RHEL 버전에서 제거될 수 있습니다. 이러한 프로토콜은 더 이상 안전한 것으로 간주되지 않으며 이미 업스트림 구현에서 제거되었습니다.
Jira:RHELDOCS-17380[1]
SASL의 digest-MD5는 더 이상 사용되지 않음
SASL(Simple Authentication Security Layer) 프레임워크의 Digest-MD5 인증 메커니즘은 더 이상 사용되지 않으며 향후 주요 릴리스의 cyrus-sasl
패키지에서 제거될 수 있습니다.
Bugzilla:1995600[1]
OpenSSL은 MD2, MD4, MDC2, Whirlpool, Blowfish, CAST, DES, IDEA, RC2, RC4, RC5, SEED 및 PBKDF1을 사용 중단
OpenSSL 프로젝트는 안전하지 않거나 일반적으로 사용되지 않거나 둘 다이므로 암호화 알고리즘 세트를 더 이상 사용하지 않습니다. Red Hat은 이러한 알고리즘의 사용을 권장하지 않으며 RHEL 9에서는 암호화된 데이터를 마이그레이션하여 새 알고리즘을 사용하기 위해 이를 제공합니다. 사용자는 시스템 보안을 위해 이러한 알고리즘에 의존해서는 안 됩니다.
다음 알고리즘의 구현은 OpenSSL: MD2, MD4, MDC2, Whirlpool, Blowfish, CAST, DES, IDEA, RC2, RC4, RC5, SEED, PBKDF1의 레거시 공급자로 이동되었습니다.
레거시 공급자를 로드하고 더 이상 사용되지 않는 알고리즘에 대한 지원을 활성화하는 방법에 대한 지침은 /etc/pki/tls/openssl.cnf
구성 파일을 참조하십시오.
/etc/system-fips
가 더 이상 사용되지 않음
/etc/system-fips
파일을 통해 FIPS 모드를 나타내는 지원이 제거되었으며 파일은 향후 RHEL 버전에 포함되지 않습니다. FIPS 모드에서 RHEL을 설치하려면 시스템 설치 중에 fips=1
매개변수를 커널 명령줄에 추가합니다. fips-mode-setup --check
명령을 사용하여 RHEL이 FIPS 모드에서 작동하는지 확인할 수 있습니다.
Jira:RHELPLAN-103232[1]
libcrypt.so.1
이 더 이상 사용되지 않음
libcrypt.so.1
라이브러리는 더 이상 사용되지 않으며 향후 RHEL 버전에서 제거될 수 있습니다.
10.3. 서브스크립션 관리
subscription-manager
명령의 --token
옵션이 더 이상 사용되지 않음
subscription-manager register
명령의 --token=<TOKEN
> 옵션은 시스템을 Red Hat에 등록하는 데 도움이 되는 인증 방법입니다. 이 옵션은 인타이틀먼트 서버에서 제공하는 기능에 따라 다릅니다. 기본 인타이틀먼트 서버 subscription.rhsm.redhat.com
은 이 기능을 해제할 계획입니다. 결과적으로 subscription-manager register --token=<TOKEN
>을 사용하려는 경우 다음 오류 메시지와 함께 실패할 수 있습니다.
Token authentication not supported by the entitlement server
subscription-manager register
명령의 paired options --username / --password
및 --activationkey
와 같은 다른 권한 부여 방법을 사용하여 시스템을 계속 등록할 수 있습니다.
10.4. 쉘 및 명령행 툴
dump
패키지의 dump
유틸리티가 더 이상 사용되지 않음
파일 시스템의 백업에 사용되는 덤프
유틸리티는 더 이상 사용되지 않으며 RHEL 9에서는 사용할 수 없습니다.
RHEL 9에서는 ext2, ext3 및 ext4 파일 시스템에서 전체 및 안전한 백업을 제공하는 사용 유형에 따라 tar
,dd
또는 bacula
, backup 유틸리티를 사용하는 것이 좋습니다.
dump
패키지의 복원
유틸리티는 RHEL 9에서 사용 가능하고 지원되며 복원
패키지로 사용할 수 있습니다.
Bugzilla:1997366[1]
Bacula의 SQLite 데이터베이스 백엔드가 더 이상 사용되지 않음
Bacula 백업 시스템은 PostgreSQL, MySQL, SQLite 등 여러 데이터베이스 백엔드를 지원했습니다. SQLite 백엔드는 더 이상 사용되지 않으며 이후 RHEL 릴리스에서 지원되지 않습니다. 대신 다른 백엔드(PostgreSQL 또는 MySQL) 중 하나로 마이그레이션하고 새 배포에서 SQLite 백엔드를 사용하지 않습니다.
10.5. 네트워킹
RHEL 9에서 네트워크 팀이 더 이상 사용되지 않음
teamd
서비스와 libteam
라이브러리는 Red Hat Enterprise Linux 9에서 더 이상 사용되지 않으며 다음 주요 릴리스에서 제거됩니다. 대신 네트워크 팀 대신 본딩을 구성합니다.
Red Hat은 유사한 기능을 갖춘 두 가지 기능, 본딩 및 팀 유지를 방지하기 위해 커널 기반 본딩에 중점을 두고 있습니다. 본딩 코드는 높은 고객 채택을 보유하고 있으며 적극적인 커뮤니티 개발을 제공합니다. 결과적으로 본딩 코드는 개선 사항 및 업데이트를 수신합니다.
팀을 본딩으로 마이그레이션하는 방법에 대한 자세한 내용은 네트워크 팀 구성을 네트워크 본딩으로 마이그레이션 을 참조하십시오.
Bugzilla:1935544[1]
ifcfg
형식의 NetworkManager 연결 프로필이 더 이상 사용되지 않음
RHEL 9.0 이상에서는 ifcfg
형식의 연결 프로필이 더 이상 사용되지 않습니다. 다음 주요 RHEL 릴리스에서는 이 형식에 대한 지원이 제거됩니다. 그러나 RHEL 9에서는 수정 시 NetworkManager는 이 형식의 기존 프로필을 계속 처리하고 업데이트합니다.
기본적으로 NetworkManager는 이제 /etc/NetworkManager/system-connections/
디렉터리에 있는 키 파일 형식으로 연결 프로필을 저장합니다. ifcfg
형식과 달리 키 파일 형식은 NetworkManager가 제공하는 모든 연결 설정을 지원합니다. 키 파일 형식 및 프로필을 마이그레이션하는 방법에 대한 자세한 내용은 키 파일 형식의 NetworkManager 연결 프로필을 참조하십시오.
Bugzilla:1894877[1]
firewalld
의 iptables
백엔드가 더 이상 사용되지 않음
RHEL 9에서는 iptables
프레임워크가 더 이상 사용되지 않습니다. 결과적으로 firewalld
의 iptables
백엔드 및 직접 인터페이스
도 더 이상 사용되지 않습니다. 직접 인터페이스
대신 firewalld
의 기본 기능을 사용하여 필요한 규칙을 구성할 수 있습니다.
PF_KEYv2
커널 API가 더 이상 사용되지 않음
애플리케이션은 PV_KEYv2
및 최신 netlink
API를 사용하여 커널의 IPsec 구현을 구성할 수 있습니다. PV_KEYv2
는 적극적으로 업스트림에서 유지 관리되지 않으며 최신 암호, 오프로드 및 확장된 시퀀스 번호 지원과 같은 중요한 보안 기능을 놓치고 있습니다. 결과적으로 RHEL 9.3부터 PV_KEYv2
API가 더 이상 사용되지 않으며 다음 주요 RHEL 릴리스에서 제거됩니다. 애플리케이션에서 이 커널 API를 사용하는 경우 최신 netlink
API를 대안으로 사용하도록 마이그레이션합니다.
Jira:RHEL-1015[1]
10.6. 커널
RHEL 9에서는 CloudEvent 캡슐화가 더 이상 사용되지 않음
ATM(Asynchronous Transfer Mode) 캡슐화를 사용하면 SRV Adaptation Layer 5(AAL-5)에 Layer-2(Point-to-Point Protocol, Ethernet) 또는 Layer-3(IP) 연결을 사용할 수 있습니다. Red Hat은 RHEL 7 이후 Cryostat NIC 드라이버를 지원하지 않습니다. Cryostat 구현에 대한 지원은 RHEL 9에서 중단되고 있습니다. 이러한 프로토콜은 현재 칩셋에서만 사용되며, 이는 ADSL 기술을 지원하며 제조업체에 의해 단계적으로 제거되고 있습니다. 따라서 CloudEvent 캡슐화는 Red Hat Enterprise Linux 9에서 더 이상 사용되지 않습니다.
자세한 내용은 PPP Over AAL5, CryostatAdaptation Layer 5를 통한 Multiprotocol Encapsulation, and Classical IP and ARP over AAL5 를 참조하십시오.
kexec-tools
의 kexec_load
시스템 호출이 더 이상 사용되지 않음
두 번째 커널을 로드하는 kexec_load
시스템 호출은 향후 RHEL 릴리스에서 지원되지 않습니다. kexec_file_load
시스템 호출은 kexec_load
를 대체하며 이제 모든 아키텍처의 기본 시스템 호출입니다.
자세한 내용은 Is kexec_load supported in RHEL9? 를 참조하십시오.
Bugzilla:2113873[1]
RHEL 9에서 네트워크 팀이 더 이상 사용되지 않음
teamd
서비스와 libteam
라이브러리는 Red Hat Enterprise Linux 9에서 더 이상 사용되지 않으며 다음 주요 릴리스에서 제거됩니다. 대신 네트워크 팀 대신 본딩을 구성합니다.
Red Hat은 유사한 기능을 갖춘 두 가지 기능, 본딩 및 팀 유지를 방지하기 위해 커널 기반 본딩에 중점을 두고 있습니다. 본딩 코드는 높은 고객 채택을 보유하고 있으며 적극적인 커뮤니티 개발을 제공합니다. 결과적으로 본딩 코드는 개선 사항 및 업데이트를 수신합니다.
팀을 본딩으로 마이그레이션하는 방법에 대한 자세한 내용은 네트워크 팀 구성을 네트워크 본딩으로 마이그레이션 을 참조하십시오.
Bugzilla:2013884[1]
10.7. 파일 시스템 및 스토리지
RHEL 9.0에서 제거된 lvm2-activation-generator
및 생성된 서비스
lvm2-activation-generator
프로그램과 생성된 서비스 lvm2-activation
,lvm2-activation-early
, lvm2-activation-net
은 RHEL 9.0에서 제거됩니다. 서비스를 활성화하는 데 사용되는 lvm.conf event_activation
설정은 더 이상 작동하지 않습니다. 볼륨 그룹을 자동 활성화하는 유일한 방법은 이벤트 기반 활성화입니다.
RHEL 9에서 영구 메모리 개발 키트(pmdk
) 및 지원 라이브러리가 더 이상 사용되지 않음
pmdk
는 영구 메모리 장치 관리 및 액세스를 단순화하기 위한 시스템 관리자 및 애플리케이션 개발자를 위한 라이브러리 및 툴 컬렉션입니다. RHEL 9에서는 pmdk
및 지원 라이브러리가 더 이상 사용되지 않습니다. 여기에는 -debuginfo
패키지도 포함됩니다.
nvml
소스 패키지를 포함하여 pmdk
에서 생성한 다음 바이너리 패키지 목록은 더 이상 사용되지 않습니다.
-
libpmem
-
libpmem-devel
-
libpmem-debug
-
libpmem2
-
libpmem2-devel
-
libpmem2-debug
-
libpmemblk
-
libpmemblk-devel
-
libpmemblk-debug
-
libpmemlog
-
libpmemlog-devel
-
libpmemlog-debug
-
libpmemobj
-
libpmemobj-devel
-
libpmemobj-debug
-
libpmempool
-
libpmempool-devel
-
libpmempool-debug
-
pmempool
-
daxio
-
pmreorder
-
pmdk-convert
-
libpmemobj++
-
libpmemobj++-devel
-
libpmemobj++-doc
Jira:RHELDOCS-16432[1]
10.8. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버
libdb
가 더 이상 사용되지 않음
RHEL 8 및 RHEL 9는 현재 LGPLv2 라이센스에 따라 배포되는 Berkeley DB (libdb
) 버전 5.3.28을 제공합니다. 업스트림 Berkeley DB 버전 6은 AGPLv3 라이센스에서 사용할 수 있으며 이는 더 제한적입니다.
libdb
패키지는 RHEL 9부터 더 이상 사용되지 않으며 향후 주요 RHEL 릴리스에서 제공되지 않을 수 있습니다.
또한 RHEL 9의 libdb
에서 암호화 알고리즘이 제거되었으며 RHEL 9에서 여러 libdb
종속 항목이 제거되었습니다.
libdb
사용자는 다른 키-값 데이터베이스로 마이그레이션하는 것이 좋습니다. 자세한 내용은 RHEL의 더 이상 사용되지 않는 Berkeley DB (libdb)의 기술 자료 문서 사용 가능 대체 항목을 참조하십시오.
Bugzilla:1927780[1], Jira:RHELPLAN-80695, Bugzilla:1974657
10.9. 컴파일러 및 개발 도구
2048보다 작은 키 크기는 Go의 FIPS 모드에서 openssl
3.0에서 더 이상 사용되지 않습니다.
2048비트보다 작은 키 크기는 openssl
3.0에서 더 이상 사용되지 않으며 Go의 FIPS 모드에서 더 이상 작동하지 않습니다.
일부 PKCS1
v1.5 모드는 Go의 FIPS 모드에서 더 이상 사용되지 않음
일부 PKCS1
v1.5 모드는 암호화를 위해 FIPS-140-3
에서 승인되지 않으며 비활성화되어 있습니다. Go의 FIPS 모드에서 더 이상 작동하지 않습니다.
Bugzilla:2092016[1]
10.10. IdM (Identity Management)
OpenDNSSec의 SHA-1
이 더 이상 사용되지 않음
OpenDNSSec은 SHA-1
알고리즘을 사용하여 디지털 서명 및 인증 레코드 내보내기를 지원합니다. SHA-1
알고리즘 사용은 더 이상 지원되지 않습니다. RHEL 9 릴리스에서는 OpenDNSSec의 SHA-1
이 더 이상 사용되지 않으며 향후 마이너 릴리스에서 제거될 수 있습니다. 또한 OpenDNSSec 지원은 Red Hat Identity Management와의 통합으로 제한됩니다. OpenDNSSec은 독립 실행형으로 지원되지 않습니다.
SSSD 암시적 파일 공급자 도메인은 기본적으로 비활성화되어 있습니다.
/etc/shadow
및 /etc/groups
의 그룹 정보와 같은 로컬 파일에서 사용자 정보를 검색하는 SSSD 암시적 파일 공급자 도메인은 기본적으로 비활성화되어 있습니다.
SSSD를 사용하여 로컬 파일에서 사용자 및 그룹 정보를 검색하려면 다음을 수행합니다.
SSSD를 구성합니다. 다음 옵션 중 하나를 선택합니다.
sssd.conf
구성 파일에서id_provider=files
옵션을 사용하여 로컬 도메인을 명시적으로 구성합니다.[domain/local] id_provider=files ...
sssd.conf
구성파일에서
enable_files_domain=true
를 설정하여 파일 공급자를 활성화합니다.[sssd] enable_files_domain = true
이름 서비스 전환을 구성합니다.
# authselect enable-feature with-files-provider
Jira:RHELPLAN-100639[1]
SSSD 파일
공급자가 더 이상 사용되지 않음
RHEL(Red Hat Enterprise Linux) 9에서는 SSSD 파일
공급자가 더 이상 사용되지 않습니다. 파일
공급자는 향후 RHEL 릴리스에서 제거될 수 있습니다.
Jira:RHELPLAN-139805[1]
nsslapd-ldapimaprootdn
매개변수가 더 이상 사용되지 않음
Directory Server에서 nsslapd-ldapimaprootdn
구성 매개 변수는 시스템 루트 항목을 루트 DN 항목에 매핑하는 데 사용됩니다. 일반적으로 nsslapd-ldapimaprootdn
매개변수의 값은 nsslapd-rootdn
매개변수와 동일합니다. 또한 하나의 속성을 변경하되 다른 속성을 변경하지 않으면 dsconf
유틸리티 및 웹 콘솔에 대한 액세스를 중단하는 작동하지 않는 자동 바인딩 구성으로 이어집니다.
이번 업데이트를 통해 Directory Server는 nsslapd-rootdn
매개변수만 사용하여 시스템 루트 항목을 루트 DN 항목에 매핑합니다. 결과적으로 nsslapd-ldapimaprootdn
매개변수가 더 이상 사용되지 않으며 root DN 변경으로 인해 dsconf
유틸리티와 웹 콘솔에 대한 액세스가 손상되지 않습니다.
nsslapd-conntablesize
구성 매개변수가 389-ds-base
에서 제거되었습니다.
nsslapd-conntablesize
구성 매개변수가 RHEL 9.3의 389-ds-base
패키지에서 제거되었습니다. 이전에는 nsslapd-conntablesize
구성 속성이 설정된 연결을 관리하는 연결 테이블의 크기를 지정했습니다. 설정된 연결의 관리를 개선하는 multi-listener 기능이 도입되면서 Directory Server는 이제 연결 테이블의 크기를 동적으로 계산합니다. 이렇게 하면 연결 테이블 크기가 너무 낮고 서버가 지원할 수 있는 연결 수에 영향을 미치는 경우에도 문제가 해결되었습니다. RHEL 9.3부터 nsslapd-maxdescriptors
및 nsslapd-reservedescriptors
속성만 사용하여 지원할 수 있는 TCP/IP 연결 수를 관리합니다.
SMB1 프로토콜은 Samba에서 더 이상 사용되지 않음
Samba 4.11부터 비보안 SMB1(Server Message Block 버전 1) 프로토콜은 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
보안을 개선하기 위해 기본적으로 SMB1은 Samba 서버 및 클라이언트 유틸리티에서 비활성화되어 있습니다.
Jira:RHELDOCS-16612[1]
10.11. 데스크탑
GTK 2가 더 이상 사용되지 않음
레거시 GTK 2 툴킷 및 다음과 같은 관련 패키지가 더 이상 사용되지 않습니다.
-
adwaita-gtk2-theme
-
gnome-common
-
gtk2
-
gtk2-immodules
-
hexchat
현재 다른 여러 패키지는 GTK 2에 의존합니다. 이러한 수정 사항은 향후 주요 RHEL 릴리스의 더 이상 사용되지 않는 패키지에 의존하지 않도록 수정되었습니다.
GTK 2를 사용하는 애플리케이션을 유지보수하는 경우 애플리케이션을 GTK 4로 이식하는 것이 좋습니다.
Jira:RHELPLAN-131882[1]
LibreOffice가 더 이상 사용되지 않음
LibreOffice RPM 패키지는 더 이상 사용되지 않으며 향후 주요 RHEL 릴리스에서 제거될 예정입니다. LibreOffice는 RHEL 7, 8 및 9의 전체 라이프 사이클을 통해 계속 지원됩니다.
RPM 패키지를 대체하기 위해 The Document Foundation에서 제공하는 다음 소스 중 하나에서 LibreOffice를 설치하는 것이 좋습니다.
- Flathub 리포지토리의 공식 Flatpak 패키지: https://flathub.org/apps/org.libreoffice.LibreOffice.
- 공식 RPM 패키지: https://www.libreoffice.org/download/download-libreoffice/.
Jira:RHELDOCS-16300[1]
10.12. 그래픽 인프라
motif가 더 이상 사용되지 않음
업스트림 Motif 커뮤니티의 개발이 비활성화되었기 때문에 RHEL에서 Motif 위젯 툴킷이 더 이상 사용되지 않습니다.
다음 Motif 패키지는 개발 및 디버깅 변형을 포함하여 더 이상 사용되지 않습니다.
-
motif
-
openmotif
-
openmotif21
-
openmotif22
또한 motif-static
패키지가 제거되었습니다.
Red Hat은 GTK 툴킷을 교체로 사용할 것을 권장합니다. GTK는 유지 보수가 가능하며 Motif에 비해 새로운 기능을 제공합니다.
Jira:RHELPLAN-98983[1]
10.13. Red Hat Enterprise Linux 시스템 역할
RHEL 9 노드에서 팀을 구성할 때 네트워크
시스템 역할에 사용 중단 경고가 표시됩니다.
RHEL 9에서는 네트워크 팀 기능이 더 이상 사용되지 않습니다. 결과적으로 RHEL 8 제어 노드에서 네트워크
RHEL 시스템 역할을 사용하여 RHEL 9 노드에서 네트워크 팀을 구성하면 사용 중단에 대한 경고가 표시됩니다.
10.14. 가상화
SHA1- 기반 서명을 사용하여 SecureBoot 이미지 확인이 더 이상 사용되지 않음
UEFI (PE/COFF) 실행 파일에서 SHA1- 기반 서명을 사용하여 SecureBoot 이미지 확인을 수행하는 것은 더 이상 사용되지 않습니다. 대신 SHA2 알고리즘을 기반으로 서명을 사용하는 것이 좋습니다.
Bugzilla:1935497[1]
가상 머신 스냅샷에 대한 제한된 지원
가상 머신(VM)의 스냅샷 생성은 현재 UEFI 펌웨어를 사용하지 않는 VM에서만 지원됩니다. 또한 스냅샷 작업 중에 QEMU 모니터가 차단되어 특정 워크로드의 하이퍼바이저 성능에 부정적인 영향을 미칠 수 있습니다.
또한 VM 스냅샷 생성의 현재 메커니즘이 더 이상 사용되지 않으며 Red Hat은 프로덕션 환경에서 VM 스냅샷을 사용하는 것을 권장하지 않습니다. 그러나 새로운 VM 스냅샷 메커니즘이 개발 중이며 향후 RHEL 9의 마이너 릴리스에서 완전히 구현될 예정입니다.
Jira:RHELDOCS-16948[1], Bugzilla:1621944
가상 플로피 드라이버가 더 이상 사용되지 않음
가상 플로피 디스크 장치를 제어하는 isa-fdc
드라이버는 더 이상 사용되지 않으며 향후 RHEL 릴리스에서 지원되지 않습니다. 따라서 마이그레이션된 VM(가상 머신)과의 호환성을 보장하기 위해 RHEL 9에서 호스팅되는 VM의 플로피 디스크 장치를 사용하지 않는 것이 좋습니다.
qcow2-v2 이미지 형식이 더 이상 사용되지 않음
RHEL 9에서는 가상 디스크 이미지의 qcow2-v2 형식이 더 이상 사용되지 않으며 향후 RHEL 주요 릴리스에서 지원되지 않을 예정입니다. 또한 RHEL 9 이미지 빌더는 qcow2-v2 형식으로 디스크 이미지를 생성할 수 없습니다.
qcow2-v2 대신 Red Hat은 qcow2-v3을 사용하는 것이 좋습니다. qcow2-v2 이미지를 최신 형식 버전으로 변환하려면 qemu-img amend
명령을 사용합니다.
virt-manager가 더 이상 사용되지 않음
virt-manager라고도 하는 Virtual Machine Manager 애플리케이션은 더 이상 사용되지 않습니다. Cockpit 라고도 하는 RHEL 웹 콘솔은 후속 릴리스에서 대체하기 위한 것입니다. 따라서 GUI에서 가상화를 관리하기 위해 웹 콘솔을 사용하는 것이 좋습니다. 그러나 virt-manager 에서 사용할 수 있는 일부 기능은 RHEL 웹 콘솔에서 아직 제공되지 않을 수 있습니다.
Jira:RHELPLAN-10304[1]
libvirtd
가 더 이상 사용되지 않음
모놀리식 libvirt
데몬인 libvirtd
는 RHEL 9에서 더 이상 사용되지 않으며 향후 RHEL 주요 릴리스에서 제거됩니다. 하이퍼바이저에서 가상화를 관리하는 데 여전히 libvirtd
를 사용할 수 있지만 Red Hat은 새로 도입된 모듈식 libvirt
데몬으로 전환하는 것이 좋습니다. 자세한 내용은 RHEL 9 가상화 구성 및 관리 문서를 참조하십시오.
Jira:RHELPLAN-113995[1]
레거시 CPU 모델이 더 이상 사용되지 않음
상당한 수의 CPU 모델이 더 이상 사용되지 않으며 향후 RHEL 주요 릴리스에서 VM(가상 머신)에서 사용할 수 없습니다. 더 이상 사용되지 않는 모델은 다음과 같습니다.
- Intel: Intel Xeon 55xx 및 75xx 프로세서 제품군 이전 모델 ( Nehalem라고도 함)
- AMD의 경우: AMD Opteron G4 이전 모델
- IBM Z: IBM z14 이전 모델
VM에서 더 이상 사용되지 않는 CPU 모델을 사용하는지 확인하려면 virsh dominfo
유틸리티를 사용하고 Messages
섹션에서 다음과 유사한 행을 찾습니다.
tainted: use of deprecated configuration settings deprecated configuration: CPU model 'i486'
RDMA 기반 실시간 마이그레이션은 더 이상 사용되지 않음
이번 업데이트를 통해 RDMA(Remote Direct Memory Access)를 사용하여 실행 중인 가상 머신의 마이그레이션이 더 이상 사용되지 않습니다. 결과적으로 rdma://
마이그레이션 URI를 사용하여 RDMA를 통한 마이그레이션을 요청할 수 있지만 이 기능은 향후 RHEL 주요 릴리스에서 지원되지 않습니다.
Jira:RHELPLAN-153267[1]
Intel vGPU 기능이 제거되었습니다.
이전에는 기술 프리뷰로 물리적 Intel GPU 장치를 중재
장치라는 여러 가상 장치로 나눌 수 있었습니다. 그런 다음 이러한 중재된 장치를 가상 GPU로 여러 VM(가상 머신)에 할당할 수 있습니다. 결과적으로 이러한 VM은 단일 물리적 Intel GPU의 성능을 공유했지만 선택한 Intel GPU만 이 기능과 호환되었습니다.
RHEL 9.3부터 Intel vGPU 기능이 완전히 제거되었습니다.
Bugzilla:2206599[1]
10.15. 컨테이너
RHEL 7 호스트에서 RHEL 9 컨테이너를 실행하는 것은 지원되지 않습니다.
RHEL 7 호스트에서 RHEL 9 컨테이너를 실행하는 것은 지원되지 않습니다. 작동할 수 있지만 보장되지는 않습니다.
자세한 내용은 Red Hat Enterprise Linux 컨테이너 호환성 매트릭스 를 참조하십시오.
Jira:RHELPLAN-100087[1]
Podman 내의 SHA1 해시 알고리즘이 더 이상 사용되지 않음
rootless 네트워크 네임스페이스의 파일 이름을 생성하는 데 사용되는 SHA1 알고리즘은 Podman에서 더 이상 지원되지 않습니다. 따라서 Podman 4.1.1 이상으로 업데이트하기 전에 rootless 컨테이너가 시작되어 업그레이드 후 컨테이너에 연결할 수 있도록 네트워크에 가입한 경우( slirp4netns
를 사용하는 것이 아님)를 다시 시작해야 합니다.
Bugzilla:2069279[1]
rhel9/pause
가 더 이상 사용되지 않음
rhel9/pause
컨테이너 이미지가 더 이상 사용되지 않습니다.
CNI 네트워크 스택이 더 이상 사용되지 않음
CNI(Container Network Interface) 네트워크 스택은 더 이상 사용되지 않으며 RHEL의 향후 마이너 릴리스에서 Podman에서 제거됩니다. 이전에는 단일 CNI(Container Network Interface) 플러그인에 연결된 컨테이너는 DNS를 통해서만 연결되었습니다. podman v.4.0에는 새로운 Netavark 네트워크 스택이 도입되었습니다. Podman 및 기타 OCI(Open Container Initiative) 컨테이너 관리 애플리케이션과 함께 Netavark 네트워크 스택을 사용할 수 있습니다. Podman용 Netavark 네트워크 스택은 고급 Docker 기능과도 호환됩니다. 여러 네트워크의 컨테이너가 해당 네트워크의 컨테이너에 액세스할 수 있습니다.
자세한 내용은 CNI에서 Netavark로 네트워크 스택 전환 을 참조하십시오.
Jira:RHELDOCS-16756[1]
Inkscape 및 LibreOffice Flatpak 이미지는 더 이상 사용되지 않습니다.
기술 프리뷰로 사용할 수 있는
pak Flatpak 이미지는 더 이상 사용되지 않습니다.
rhel9/inkscape-flatpak
및 rhel9/libre
Red Hat은 다음 이미지에 대해 다음 대안을 권장합니다.
-
rhel9/inkscape-flatpak
을 교체하려면inkscape
RPM 패키지를 사용합니다. -
rhel9/libre Cryostat-flatpak
을 교체하려면 LibreOffice 사용 중단 릴리스 노트 를 참조하십시오.
Jira:RHELDOCS-17102[1]
10.16. 더 이상 사용되지 않는 패키지
이 섹션에는 더 이상 사용되지 않으며 향후 Red Hat Enterprise Linux 주요 릴리스에 포함되지 않는 패키지가 나열되어 있습니다.
RHEL 8과 RHEL 9 간의 패키지 변경 사항은 RHEL 9 문서 도입 시 고려 사항 의 패키지 변경 사항을 참조하십시오.
더 이상 사용되지 않는 패키지의 지원 상태는 RHEL 9 내에서 변경되지 않습니다. 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux 라이프 사이클 및 Red Hat Enterprise Linux Application Streams 라이프 사이클 을 참조하십시오.
RHEL 9에서는 다음 패키지가 더 이상 사용되지 않습니다.
- adwaita-gtk2-theme
- autocorr-af
- autocorr-bg
- autocorr-ca
- autocorr-cs
- autocorr-da
- autocorr-de
- autocorr-dsb
- autocorr-el
- autocorr-en
- autocorr-es
- autocorr-fa
- autocorr-fi
- autocorr-fr
- autocorr-ga
- autocorr-hr
- autocorr-hsb
- autocorr-hu
- autocorr-is
- autocorr-it
- autocorr-ja
- autocorr-ko
- autocorr-lb
- autocorr-lt
- autocorr-mn
- autocorr-nl
- autocorr-pl
- autocorr-pt
- autocorr-ro
- autocorr-ru
- autocorr-sk
- autocorr-sl
- autocorr-sr
- autocorr-sv
- autocorr-tr
- autocorr-vi
- autocorr-vro
- autocorr-zh
- Cheese
- cheese-libs
- clutter
- clutter-gst3
- clutter-gtk
- cogl
- daxio
- dbus-glib
- dbus-glib-devel
- enchant
- enchant-devel
- EOG
- 진화
- evolution-bogofilter
- evolution-devel
- evolution-help
- evolution-langpacks
- evolution-mapi
- evolution-mapi-langpacks
- evolution-pst
- evolution-spamassassin
- 마케스트리
- Farial-data
- festvox-slt-arctic-hts
- flite
- flite-devel
- Cryostat
- gedit-plugin-bookmarks
- gedit-plugin-bracketcompletion
- gedit-plugin-codecomment
- gedit-plugin-colorpicker
- gedit-plugin-colorschemer
- gedit-plugin-commander
- gedit-plugin-drawspaces
- gedit-plugin-findinfiles
- gedit-plugin-joinlines
- gedit-plugin-multiedit
- gedit-plugin-sessionsaver
- gedit-plugin-smartspaces
- gedit-plugin-synctex
- gedit-plugin-terminal
- gedit-plugin-textsize
- gedit-plugin-translate
- gedit-plugin-wordcompletion
- gedit-plugins
- gedit-plugins-data
- gnome-common
- gnome-photos
- gnome-photos-tests
- gnome-screenshot
- gnome-themes-extra
- gtk2
- gtk2-devel
- gtk2-devel-docs
- gtk2-immodule-xim
- gtk2-immodules
- highcontrast-icon-theme
- Inkscape
- Inkscape-docs
- Inkscape-view
- iptables-devel
- iptables-libs
- iptables-nft
- iptables-nft-services
- iptables-utils
- libdb
- libgdata
- libgdata-devel
- libpmem
- libpmem-debug
- libpmem-devel
- libpmem2
- libpmem2-debug
- libpmem2-devel
- libpmemblk
- libpmemblk-debug
- libpmemblk-devel
- libpmemlog
- libpmemlog-debug
- libpmemlog-devel
- libpmemobj
- libpmemobj-debug
- libpmemobj-devel
- libpmempool
- libpmempool-debug
- libpmempool-devel
- libreoffice
- libreoffice-base
- libreoffice-calc
- libreoffice-core
- libreoffice-data
- libreoffice-draw
- libreoffice-emailmerge
- libreoffice-filters
- libreoffice-gdb-debug-support
- libreoffice-graphicfilter
- libreoffice-gtk3
- libreoffice-help-ar
- libreoffice-help-bg
- libreoffice-help-bn
- libreoffice-help-ca
- libreoffice-help-cs
- libreoffice-help-da
- libreoffice-help-de
- libreoffice-help-dz
- libreoffice-help-el
- libreoffice-help-en
- libreoffice-help-eo
- libreoffice-help-es
- libreoffice-help-et
- libreoffice-help-eu
- libreoffice-help-fi
- libreoffice-help-fr
- libreoffice-help-gl
- libreoffice-help-gu
- libreoffice-help-he
- libreoffice-help-hi
- libreoffice-help-hr
- libreoffice-help-hu
- libreoffice-help-id
- libreoffice-help-it
- libreoffice-help-ja
- libreoffice-help-ko
- libreoffice-help-lt
- libreoffice-help-lv
- libreoffice-help-nb
- libreoffice-help-nl
- libreoffice-help-nn
- libreoffice-help-pl
- libreoffice-help-pt-BR
- libreoffice-help-pt-PT
- libreoffice-help-ro
- libreoffice-help-ru
- libreoffice-help-si
- libreoffice-help-sk
- libreoffice-help-sl
- libreoffice-help-sv
- libreoffice-help-ta
- libreoffice-help-tr
- libreoffice-help-uk
- libreoffice-help-zh-Hans
- libreoffice-help-zh-Hant
- libreoffice-impress
- libreoffice-langpack-af
- libreoffice-langpack-ar
- libreoffice-langpack-as
- libreoffice-langpack-bg
- libreoffice-langpack-bn
- libreoffice-langpack-br
- libreoffice-langpack-ca
- libreoffice-langpack-cs
- libreoffice-langpack-cy
- libreoffice-langpack-da
- libreoffice-langpack-de
- libreoffice-langpack-dz
- libreoffice-langpack-el
- libreoffice-langpack-en
- libreoffice-langpack-eo
- libreoffice-langpack-es
- libreoffice-langpack-et
- libreoffice-langpack-eu
- libreoffice-langpack-fa
- libreoffice-langpack-fi
- libreoffice-langpack-fr
- libreoffice-langpack-fy
- libreoffice-langpack-ga
- libreoffice-langpack-gl
- libreoffice-langpack-gu
- libreoffice-langpack-he
- libreoffice-langpack-hi
- libreoffice-langpack-hr
- libreoffice-langpack-hu
- libreoffice-langpack-id
- libreoffice-langpack-it
- libreoffice-langpack-ja
- libreoffice-langpack-kk
- libreoffice-langpack-kn
- libreoffice-langpack-ko
- libreoffice-langpack-lt
- libreoffice-langpack-lv
- libreoffice-langpack-mai
- libreoffice-langpack-ml
- libreoffice-langpack-mr
- libreoffice-langpack-nb
- libreoffice-langpack-nl
- libreoffice-langpack-nn
- libreoffice-langpack-nr
- libreoffice-langpack-nso
- libreoffice-langpack-or
- libreoffice-langpack-pa
- libreoffice-langpack-pl
- libreoffice-langpack-pt-BR
- libreoffice-langpack-pt-PT
- libreoffice-langpack-ro
- libreoffice-langpack-ru
- libreoffice-langpack-si
- libreoffice-langpack-sk
- libreoffice-langpack-sl
- libreoffice-langpack-sr
- libreoffice-langpack-ss
- libreoffice-langpack-st
- libreoffice-langpack-sv
- libreoffice-langpack-ta
- libreoffice-langpack-te
- libreoffice-langpack-th
- libreoffice-langpack-tn
- libreoffice-langpack-tr
- libreoffice-langpack-ts
- libreoffice-langpack-uk
- libreoffice-langpack-ve
- libreoffice-langpack-xh
- libreoffice-langpack-zh-Hans
- libreoffice-langpack-zh-Hant
- libreoffice-langpack-zu
- libreoffice-math
- libreoffice-ogltrans
- libreoffice-opensymbol-fonts
- libreoffice-pdfimport
- libreoffice-pyuno
- libreoffice-sdk
- libreoffice-sdk-doc
- libreoffice-ure
- libreoffice-ure-common
- libreoffice-wiki-publisher
- libreoffice-writer
- libreoffice-x11
- libreoffice-xsltfilter
- libreofficekit
- libsoup
- libsoup-devel
- libuser
- libuser-devel
- libwpe
- libwpe-devel
- mcpp
- mod_auth_mellon
- motif
- motif-devel
- pmdk-convert
- pmempool
- python3-pytz
- qt5
- qt5-assistant
- qt5-designer
- qt5-devel
- qt5-doctools
- qt5-linguist
- qt5-qdbusviewer
- qt5-qt3d
- qt5-qt3d-devel
- qt5-qt3d-doc
- qt5-qt3d-examples
- qt5-qtbase
- qt5-qtbase-common
- qt5-qtbase-devel
- qt5-qtbase-doc
- qt5-qtbase-examples
- qt5-qtbase-gui
- qt5-qtbase-mysql
- qt5-qtbase-odbc
- qt5-qtbase-postgresql
- qt5-qtbase-private-devel
- qt5-qtbase-static
- qt5-qtconnectivity
- qt5-qtconnectivity-devel
- qt5-qtconnectivity-doc
- qt5-qtconnectivity-examples
- qt5-qtdeclarative
- qt5-qtdeclarative-devel
- qt5-qtdeclarative-doc
- qt5-qtdeclarative-examples
- qt5-qtdeclarative-static
- qt5-qtdoc
- qt5-qtgraphicaleffects
- qt5-qtgraphicaleffects-doc
- qt5-qtimageformats
- qt5-qtimageformats-doc
- qt5-qtlocation
- qt5-qtlocation-devel
- qt5-qtlocation-doc
- qt5-qtlocation-examples
- qt5-qtmultimedia
- qt5-qtmultimedia-devel
- qt5-qtmultimedia-doc
- qt5-qtmultimedia-examples
- qt5-qtquickcontrols
- qt5-qtquickcontrols-doc
- qt5-qtquickcontrols-examples
- qt5-qtquickcontrols2
- qt5-qtquickcontrols2-devel
- qt5-qtquickcontrols2-doc
- qt5-qtquickcontrols2-examples
- qt5-qtscript
- qt5-qtscript-devel
- qt5-qtscript-doc
- qt5-qtscript-examples
- qt5-qtsensors
- qt5-qtsensors-devel
- qt5-qtsensors-doc
- qt5-qtsensors-examples
- qt5-qtserialbus
- qt5-qtserialbus-devel
- qt5-qtserialbus-doc
- qt5-qtserialbus-examples
- qt5-qtserialport
- qt5-qtserialport-devel
- qt5-qtserialport-doc
- qt5-qtserialport-examples
- qt5-qtsvg
- qt5-qtsvg-devel
- qt5-qtsvg-doc
- qt5-qtsvg-examples
- qt5-qttools
- qt5-qttools-common
- qt5-qttools-devel
- qt5-qttools-doc
- qt5-qttools-examples
- qt5-qttools-libs-designer
- qt5-qttools-libs-designercomponents
- qt5-qttools-libs-help
- qt5-qttools-static
- qt5-qttranslations
- qt5-qtwayland
- qt5-qtwayland-devel
- qt5-qtwayland-doc
- qt5-qtwayland-examples
- qt5-qtwebchannel
- qt5-qtwebchannel-devel
- qt5-qtwebchannel-doc
- qt5-qtwebchannel-examples
- qt5-qtwebsockets
- qt5-qtwebsockets-devel
- qt5-qtwebsockets-doc
- qt5-qtwebsockets-examples
- qt5-qtx11extras
- qt5-qtx11extras-devel
- qt5-qtx11extras-doc
- qt5-qtxmlpatterns
- qt5-qtxmlpatterns-devel
- qt5-qtxmlpatterns-doc
- qt5-qtxmlpatterns-examples
- qt5-rpm-macros
- qt5-srpm-macros
- webkit2gtk3
- webkit2gtk3-devel
- webkit2gtk3-jsc
- webkit2gtk3-jsc-devel
- wpebackend-fdo
- wpebackend-fdo-devel
- xorg-x11-server-Xorg
11장. 확인된 문제
이 부분에서는 Red Hat Enterprise Linux 9.3의 알려진 문제에 대해 설명합니다.
11.1. 설치 프로그램 및 이미지 생성
auth
및 authconfig
Kickstart 명령에는 AppStream 리포지토리가 필요
authselect-compat
패키지는 설치하는 동안 auth
및 authconfig
Kickstart 명령이 필요합니다. 이 패키지가 없으면 auth
또는 authconfig
가 사용되는 경우 설치에 실패합니다. 설계에 따라 authselect-compat
패키지는 AppStream 리포지토리에서만 사용할 수 있습니다.
이 문제를 해결하려면 설치 프로그램에서 BaseOS 및 AppStream 리포지토리를 사용할 수 있는지 확인하거나 설치 중에 authselect
Kickstart 명령을 사용합니다.
Bugzilla:1640697[1]
reboot --kexec
및 inst.kexec
명령은 예측 가능한 시스템 상태를 제공하지 않습니다.
reboot --kexec
Kickstart 명령 또는 inst.kexec
커널 부팅 매개변수를 사용하여 RHEL 설치를 수행하면 전체 재부팅과 동일한 예측 가능한 시스템 상태가 제공되지 않습니다. 결과적으로 재부팅하지 않고 설치된 시스템으로 전환하면 예기치 않은 결과가 발생할 수 있습니다.
kexec
기능은 더 이상 사용되지 않으며 향후 Red Hat Enterprise Linux 릴리스에서 제거될 예정입니다.
Bugzilla:1697896[1]
Anaconda가 애플리케이션으로 실행되는 시스템에서 예기치 않은 SELinux 정책
Anaconda가 이미 설치된 시스템에서 애플리케이션으로 실행 중인 경우(예: -image
anaconda 옵션을 사용하여 이미지 파일에 다른 설치를 수행하기 위해) 설치 중에 SELinux 유형과 속성을 수정하는 것은 금지되지 않습니다. 결과적으로 Anaconda가 실행 중인 시스템에서 SELinux 정책의 특정 요소가 변경될 수 있습니다.
이 문제를 해결하려면 프로덕션 시스템에서 Anaconda를 실행하지 마십시오. 대신 임시 가상 시스템에서 Anaconda를 실행하여 프로덕션 시스템에서 SELinux 정책을 변경하지 않고 유지합니다. boot.iso
또는 dvd.iso
에서 설치하는 것과 같은 시스템 설치 프로세스의 일부로 anaconda를 실행하면 이 문제의 영향을 받지 않습니다.
타사 도구를 사용하여 생성된 USB에서 설치를 부팅할 때 로컬 미디어
설치 소스가 감지되지 않음
타사 툴을 사용하여 생성된 USB에서 RHEL 설치를 부팅할 때 설치 프로그램이 로컬 미디어
설치 소스를 감지하지 못합니다( Red Hat CDN 만 감지됨).
이 문제는 기본 부팅 옵션 int.stage2=
iso9660
이미지 형식을 검색하려고 하기 때문에 발생합니다. 그러나 타사 툴은 다른 형식으로 ISO 이미지를 생성할 수 있습니다.
이 문제를 해결하려면 다음 해결 방법을 사용합니다.
-
설치를 부팅할 때
Tab
키를 클릭하여 커널 명령줄을 편집하고inst.stage2=
를inst.repo=
로 변경합니다. - Windows에서 부팅 가능한 USB 장치를 생성하려면 Fedora Media Writer를 사용합니다.
- Rufus와 같은 타사 툴을 사용하여 부팅 가능한 USB 장치를 생성하는 경우 먼저 Linux 시스템에서 RHEL ISO 이미지를 다시 생성한 다음 타사 툴을 사용하여 부팅 가능한 USB 장치를 생성합니다.
지정된 해결 방법을 수행하는 데 관련된 단계에 대한 자세한 내용은 RHEL 8.3을 설치하는 동안 설치 미디어가 자동으로 탐지되지 않음을 참조하십시오.
Bugzilla:1877697[1]
Anaconda에서 USB CD-ROM 드라이브를 설치 소스로 사용할 수 없습니다.
USB CD-ROM 드라이브가 소스이고 Kickstart ignoredisk --only-use=
명령이 지정되면 설치에 실패합니다. 이 경우 Anaconda에서 이 소스 디스크를 찾아서 사용할 수 없습니다.
이 문제를 해결하려면 harddrive --partition=sdX --dir=/
명령을 사용하여 USB CD-ROM 드라이브에서 설치합니다. 이로 인해 설치에 실패하지 않습니다.
iso9660 파일 시스템이 있는 하드 드라이브 파티셔닝 설치 실패
하드 드라이브가 iso9660
파일 시스템으로 분할되는 시스템에는 RHEL을 설치할 수 없습니다. 이는 iso9660
파일 시스템 파티션이 포함된 하드 디스크를 무시하도록 설정된 업데이트된 설치 코드 때문입니다. 이는 DVD를 사용하지 않고 RHEL을 설치하는 경우에도 발생합니다.
이 문제를 해결하려면 Kickstart 파일에 다음 스크립트를 추가하여 설치가 시작되기 전에 디스크를 포맷합니다.
참고: 해결 방법을 수행하기 전에 디스크에서 사용 가능한 데이터를 백업하십시오. wipefs
명령은 디스크의 모든 기존 데이터를 포맷합니다.
%pre
wipefs -a /dev/sda
%end
결과적으로 설치는 오류 없이 예상대로 작동합니다.
Anaconda에서 관리자 사용자 계정이 있는지 확인하지 못했습니다
그래픽 사용자 인터페이스를 사용하여 RHEL을 설치하는 동안 Anaconda는 관리자 계정이 생성되었는지 확인하지 못합니다. 결과적으로 관리자 사용자 계정 없이 시스템을 설치할 수 있습니다.
이 문제를 해결하려면 관리자 사용자 계정 또는 root 암호를 설정하고 root 계정을 잠금 해제해야 합니다. 결과적으로 사용자는 설치된 시스템에서 관리 작업을 수행할 수 있습니다.
새로운 XFS 기능은 버전 5.10이 지난 펌웨어가 있는 PowerNV IBM POWER 시스템을 부팅하지 않습니다.
PowerNV IBM POWER 시스템은 펌웨어에 Linux 커널을 사용하고 GRUB 대신 Petitboot를 사용합니다. 그러면 펌웨어 커널이 /boot
및 Petitboot를 마운트하고 GRUB 구성을 읽고 RHEL을 부팅하게 됩니다.
RHEL 9 커널은 XFS 파일 시스템에 bigtime=1
및 inobtcount=1
기능을 도입하여 버전 5.10 이전의 펌웨어 커널을 인식하지 못합니다.
이 문제를 해결하려면 /boot
(예: ext4 )에 다른 파일 시스템을 사용할 수 있습니다.
Bugzilla:1997832[1]
rpm-ostree 페이로드를 설치할 때 RHEL for Edge 설치 관리자 이미지가 마운트 지점을 생성하지 못했습니다
예를 들어 RHEL for Edge 설치 프로그램 이미지에서 사용되는 rpm-ostree
페이로드를 배포할 때 설치 프로그램이 사용자 지정 파티션에 대한 일부 마운트 지점을 올바르게 생성하지 않습니다. 결과적으로 다음 오류와 함께 설치가 중단됩니다.
The command 'mount --bind /mnt/sysimage/data /mnt/sysroot/data' exited with the code 32.
이 문제를 해결하려면 다음을 수행합니다.
- 자동 파티션 스키마를 사용하고 수동으로 마운트 지점을 추가하지 마십시오.
-
/var
디렉토리 내에서만 마운트 지점을 수동으로 할당합니다. 예를 들어/var/my-mount-point
) 및 다음 표준 디렉터리(/
,/boot
,/var
)입니다.
결과적으로 설치 프로세스가 성공적으로 완료됩니다.
네트워크에 연결할 때 설치 후 NetworkManager가 시작되지 않지만 DHCP 또는 고정 IP 주소가 구성되지 않은 경우
RHEL 9.0부터 특정 ip=
또는 Kickstart 네트워크 구성이 설정되지 않은 경우 Anaconda는 네트워크 장치를 자동으로 활성화합니다. Anaconda는 각 이더넷 장치에 대한 기본 영구 구성 파일을 생성합니다. 연결 프로필에는 ONBOOT
및 autoconnect
값이 true
로 설정되어 있습니다. 결과적으로 설치된 시스템을 시작할 때 RHEL은 네트워크 장치를 활성화하고 networkManager-wait-online
서비스가 실패합니다.
해결 방법으로 다음 중 하나를 수행합니다.
사용할 연결을 한 개 제외한
nmcli
유틸리티를 사용하여 모든 연결을 삭제합니다. 예를 들면 다음과 같습니다.모든 연결 프로필을 나열합니다.
# nmcli connection show
필요하지 않은 연결 프로필을 삭제합니다.
# nmcli connection delete <connection_name>
<connection_name>을 삭제하려는 연결 이름으로 바꿉니다.
특정
ip=
또는 Kickstart 네트워크 구성이 설정되지 않은 경우 Anaconda에서 자동 연결 네트워크 기능을 비활성화합니다.- Anaconda GUI에서 네트워크 및 호스트 이름으로 이동합니다.
- 비활성화할 네트워크 장치를 선택합니다.
- 구성 을 클릭합니다.
- 일반 탭에서 우선 순위로 자동으로 연결 확인란을 지웁니다.
- 저장을 클릭합니다.
Bugzilla:2115783[1]
설치 환경의 드라이버 업데이트 디스크에서 업데이트된 드라이버를 로드할 수 없음
설치 초기 RM 디스크의 동일한 드라이버가 이미 로드된 경우 드라이버 업데이트 디스크의 새 버전의 드라이버가 로드되지 않을 수 있습니다. 결과적으로 업데이트된 버전의 드라이버를 설치 환경에 적용할 수 없습니다.
이 문제를 해결하려면 inst.dd
옵션과 함께 modprobe.blacklist=
커널 명령줄 옵션을 사용합니다. 예를 들어 드라이버 업데이트 디스크에서 virtio_blk
드라이버의 업데이트된 버전이 로드되었는지 확인하려면 modprobe.blacklist=virtio_blk
를 사용하여 드라이버 업데이트 디스크의 드라이버를 적용합니다. 결과적으로 시스템은 업데이트된 버전의 드라이버를 로드하여 설치 환경에서 사용할 수 있습니다.
Kickstart 설치가 네트워크 연결을 구성하지 못했습니다
Anaconda는 NetworkManager API를 통해서만 Kickstart 네트워크 구성을 수행합니다. Anaconda는 %pre
Kickstart 섹션 뒤에 네트워크 구성을 처리합니다. 결과적으로 Kickstart %pre
섹션의 일부 작업이 차단되었습니다. 예를 들어 %pre
섹션에서 패키지를 다운로드하는 것은 네트워크 구성을 사용할 수 없기 때문에 실패합니다.
이 문제를 해결하려면 다음을 수행합니다.
-
예를 들어
nmcli
툴을%pre
스크립트의 일부로 사용하여 네트워크를 구성합니다. -
설치 프로그램 부팅 옵션을 사용하여
%pre
스크립트의 네트워크를 구성합니다.
결과적으로 %pre
섹션의 작업에 네트워크를 사용할 수 있으며 Kickstart 설치 프로세스가 완료됩니다.
RHEL 이미지 빌더로 rpm-ostree
이미지를 빌드할 때 FIPS 모드 활성화는 지원되지 않습니다.
현재 RHEL 이미지 빌더를 사용하여 rpm-ostree
이미지를 빌드할 때 FIPS 모드를 활성화할 수 없습니다.
stig
프로필 수정을 사용하여 빌드된 이미지가 FIPS 오류로 부팅되지 않음
RHEL 이미지 빌더에서 FIPS 모드를 지원하지 않습니다. xccdf_org.ssgproject.content_profile_stig
프로필 수정으로 사용자 정의된 RHEL 이미지 빌더를 사용하면 다음 오류와 함께 시스템이 부팅되지 않습니다.
Warning: /boot//.vmlinuz-<kernel version>.x86_64.hmac does not exist FATAL: FIPS integrity test failed Refusing to continue
fips-mode-setup --enable
명령을 사용하여 시스템 이미지 설치 후 수동으로 FIPS 정책을 활성화하면 /boot
디렉터리가 다른 파티션에 있기 때문에 작동하지 않습니다. FIPS가 비활성화된 경우 시스템이 성공적으로 부팅됩니다. 현재는 사용할 수 있는 해결방법이 없습니다.
fips-mode-setup --enable
명령을 사용하여 이미지를 설치한 후 수동으로 FIPS를 활성화할 수 있습니다.
드라이버 디스크 메뉴가 콘솔에 사용자 입력을 표시하지 못했습니다
드라이버 디스크와 함께 커널 명령행에서 inst.dd
옵션을 사용하여 RHEL 설치를 시작하면 콘솔에 사용자 입력이 표시되지 않습니다. 결과적으로 애플리케이션이 사용자 입력에 응답하지 않고 응답을 중지하지만 사용자에게 혼동되는 출력이 표시됩니다. 그러나 이 동작은 기능에 영향을 미치지 않으며 Enter
를 누른 후 사용자 입력이 등록됩니다.
해결 방법으로 예상 결과를 보려면 콘솔에 사용자 입력이 없는 것을 무시하고 입력 추가 완료 시 Enter
키를 누릅니다.
11.2. 보안
PKCS #11 토큰이 원시 RSA 또는 RSA-PSS 서명 생성을 지원하는 경우 OpenSSL이 탐지되지 않음
TLS 1.3 프로토콜은 RSA-PSS 서명을 지원해야 합니다. PKCS #11 토큰이 원시 RSA 또는 RSA-PSS 서명을 지원하지 않는 경우 PKCS #11 토큰이 있는 경우 OpenSSL 라이브러리를 사용하는 서버 애플리케이션이 RSA 키로 작동하지 않습니다. 결과적으로 설명된 시나리오에서 TLS 통신이 실패합니다.
이 문제를 해결하려면 TLS 버전 1.2를 사용 가능한 최고 TLS 프로토콜 버전으로 사용하도록 서버 및 클라이언트를 구성합니다.
Bugzilla:1681178[1]
OpenSSL
이 원시 RSA 또는 RSA-PSS 서명을 지원하지 않는 PKCS #11 토큰을 잘못 처리
OpenSSL
라이브러리는 PKCS #11 토큰의 키 관련 기능을 탐지하지 않습니다. 결과적으로 원시 RSA 또는 RSA-PSS 서명을 지원하지 않는 토큰으로 서명이 생성되면 TLS 연결 설정이 실패합니다.
이 문제를 해결하려면 /etc/pki/tls/openssl.cnf
파일의 crypto_policy
섹션 끝에 .include
행 뒤에 다음 행을 추가합니다.
SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384 MaxProtocol = TLSv1.2
결과적으로 설명된 시나리오에서 TLS 연결을 설정할 수 있습니다.
Bugzilla:1685470[1]
특정 구문을 사용하여 자체적으로 복사된 파일을 scp
empties합니다.
scp
유틸리티는 SCP(Secure copy protocol)에서 더 안전한 SSH 파일 전송 프로토콜(SFTP)으로 변경되었습니다. 결과적으로 위치에서 동일한 위치로 파일을 복사하면 파일 콘텐츠가 지워집니다. 이 문제는 다음 구문에 영향을 미칩니다.
SCP localhost:/myfile localhost:/myfile
이 문제를 해결하려면 이 구문을 사용하여 소스 위치와 동일한 파일을 대상에 복사하지 마십시오.
다음 구문에 대한 문제가 해결되었습니다.
-
scp /myfile localhost:/myfile
-
scp localhost:~/myfile ~/myfile
OSCAP Anaconda 애드온은 그래픽 설치에서 맞춤형 프로필을 가져오지 않습니다.
OSCAP Anaconda 애드온은 RHEL 그래픽 설치에서 보안 프로필의 맞춤을 선택하거나 선택 해제할 수 있는 옵션을 제공하지 않습니다. RHEL 8.8부터는 아카이브 또는 RPM 패키지에서 설치할 때 애드온은 기본적으로 고려되지 않습니다. 결과적으로 설치 시 OSCAP 맞춤형 프로필을 가져오는 대신 다음 오류 메시지가 표시됩니다.
There was an unexpected problem with the supplied content.
이 문제를 해결하려면 Kickstart 파일의 %addon org_fedora_oscap
섹션에 경로를 지정해야 합니다. 예를 들면 다음과 같습니다.
xccdf-path = /usr/share/xml/scap/sc_tailoring/ds-combined.xml tailoring-path = /usr/share/xml/scap/sc_tailoring/tailoring-xccdf.xml
결과적으로 해당 Kickstart 사양에서만 OSCAP 맞춤형 프로필에 대해 그래픽 설치를 사용할 수 있습니다.
Ansible 수정에는 추가 컬렉션이 필요합니다.
ansible-core
패키지에서 Ansible Engine을 교체하면 RHEL 서브스크립션과 함께 제공되는 Ansible 모듈 목록이 줄어듭니다. 결과적으로 scap-security-guide
패키지에 포함된 Ansible 콘텐츠를 사용하는 수정을 실행하려면 rhc-worker-playbook
패키지의 컬렉션이 필요합니다.
Ansible 수정을 위해 다음 단계를 수행합니다.
필수 패키지를 설치합니다.
# dnf install -y ansible-core scap-security-guide rhc-worker-playbook
/usr/share/scap-security-guide/ansible
디렉토리로 이동합니다.# cd /usr/share/scap-security-guide/ansible
추가 Ansible 컬렉션의 경로를 정의하는 환경 변수를 사용하여 관련 Ansible 플레이북을 실행합니다.
# ANSIBLE_COLLECTIONS_PATH=/usr/share/rhc-worker-playbook/ansible/collections/ansible_collections/ ansible-playbook -c local -i localhost, rhel9-playbook-cis_server_l1.yml
cis_server_l1
을 시스템을 수정하려는 프로필의 ID로 바꿉니다.
결과적으로 Ansible 콘텐츠가 올바르게 처리됩니다.
rhc-worker-playbook
에 제공된 컬렉션 지원은 scap-security-guide
에서 소싱된 Ansible 콘텐츠를 활성화하는 것으로 제한됩니다.
Keylime이 연결된 PEM 인증서를 허용하지 않음
Keylime이 단일 파일에 연결된 PEM 형식의 여러 인증서로 인증서 체인을 수신하면 keylime-agent-rust
Keylime 구성 요소가 서명 확인 중에 제공된 모든 인증서를 올바르게 사용하지 않아 TLS 핸드셰이크 오류가 발생합니다. 결과적으로 클라이언트 구성 요소(keylime_verifier
및 keylime_tenant
)는 Keylime 에이전트에 연결할 수 없습니다. 이 문제를 해결하려면 여러 인증서 대신 하나의 인증서만 사용하십시오.
Jira:RHELPLAN-157225[1]
Keylime은 다이제스트가 백슬래시로 시작하는 런타임 정책을 거부합니다.
런타임 정책 생성을 위한 현재 스크립트인 create_runtime_policy.sh
에서는 SHA 체크섬 함수(예: sha256sum
)를 사용하여 파일 다이제스트를 계산합니다. 그러나 입력 파일 이름에 백슬래시 또는 \n
이 포함된 경우 체크섬 함수는 출력의 다이제스트 앞에 백슬래시를 추가합니다. 이러한 경우 생성된 정책 파일이 잘못된 형식으로 표시됩니다. 잘못된 형식의 정책 파일을 제공하면 Keylime 테넌트에서 다음과 같은 오류 메시지를 생성합니다 . me.tenant - ERROR - 응답 코드 400: 런타임 정책은 잘못된 형식 입니다
. 이 문제를 해결하려면 다음 명령을 입력하여 잘못된 정책 파일에서 백슬래시를 수동으로 제거하십시오. sed -i 's/^\\//g' <malformed_file_name>
.
Jira:RHEL-11867[1]
Keylime 에이전트는 업데이트 후 확인자 요청 거부
Keylime 에이전트의 API 버전 번호(keylime-agent-rust
)가 업데이트되면 에이전트는 다른 버전을 사용하는 요청을 거부합니다. 결과적으로 Keylime 에이전트가 확인자에 추가된 후 업데이트되면 확인자가 이전 API 버전을 사용하여 에이전트에 연결을 시도합니다. 에이전트는 이 요청을 거부하고 인증에 실패합니다. 이 문제를 해결하려면 에이전트를 업데이트하기 전에 검증자(keylime-verifier
)를 업데이트합니다(keylime-agent-rust
). 결과적으로 에이전트가 업데이트되면 검증기에서 API 변경을 감지하고 그에 따라 저장된 데이터를 업데이트합니다.
Jira:RHEL-1518[1]
fapolicyd
유틸리티에서 변경된 파일을 잘못 실행할 수 있습니다.
올바르게 파일의 IMA 해시는 파일을 변경한 후 업데이트해야 하며 fapolicyd
는 변경된 파일의 실행을 방지해야 합니다. 그러나 이는 IMA 정책 설정의 차이점과 evctml
유틸리티의 파일 해시로 인해 발생하지 않습니다. 결과적으로 IMA 해시는 변경된 파일의 확장된 속성에서 업데이트되지 않습니다. 결과적으로 fapolicyd
에서 변경된 파일을 잘못 실행할 수 있습니다.
Jira:RHEL-520[1]
기본 SELinux 정책을 사용하면 제한되지 않은 실행 파일이 스택을 실행 가능하게 만들 수 있습니다.
SELinux 정책에서 selinuxuser_execstack
부울의 기본 상태는 on입니다. 즉, 제한되지 않은 실행 파일이 스택을 실행 가능하게 만들 수 있습니다. 실행 파일은 이 옵션을 사용하지 않아야 하며 잘못 코딩된 실행 파일 또는 가능한 공격을 나타낼 수 있습니다. 그러나 다른 툴, 패키지 및 타사 제품과의 호환성으로 인해 Red Hat은 기본 정책의 부울 값을 변경할 수 없습니다. 시나리오가 이러한 호환성 측면에 의존하지 않는 경우 setsebool -P selinuxuser_execstack off
명령을 입력하여 로컬 정책에서 부울을 끌 수 있습니다.
STIG 프로필의 SSH 시간 제한 규칙에서 잘못된 옵션 구성
OpenSSH 업데이트는 다음 Defense Information Systems Agency Security Technical Implementation Guide (DISA STIG) 프로파일의 규칙에 영향을 미쳤습니다.
-
DISA STIG for RHEL 9 (
xccdf_org.ssgproject.content_profile_stig
) -
DISA STIG with GUI for RHEL 9 (
xccdf_org.ssgproject.content_profile_stig_gui
)
이러한 각 프로필에서는 다음 두 가지 규칙이 영향을 받습니다.
Title: Set SSH Client Alive Count Max to zero CCE Identifier: CCE-90271-8 Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_keepalive_0 Title: Set SSH Idle Timeout Interval CCE Identifier: CCE-90811-1 Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_idle_timeout
SSH 서버에 적용하면 이러한 각 규칙에서 이전과 같이 더 이상 작동하지 않는 옵션(ClientAliveCountMax
및 ClientAliveInterval
)을 구성합니다. 결과적으로 OpenSSH는 이러한 규칙에 의해 구성된 타임아웃에 도달하면 더 이상 유휴 SSH 사용자의 연결을 끊지 않습니다. 해결 방법으로 이러한 규칙은 솔루션이 개발될 때까지 RHEL 9용 DISA STIG 및 GUI for RHEL 9 프로필의 DISA STIG에서 일시적으로 제거되었습니다.
GnuPG는 crypto-policies
에서 허용하지 않는 경우에도 SHA-1 서명을 잘못 사용할 수 있습니다.
GNU Privacy Guard(GnuPG) 암호화 소프트웨어는 시스템 전체 암호화 정책에 정의된 설정과 관계없이 SHA-1 알고리즘을 사용하는 서명을 생성하고 확인할 수 있습니다. 결과적으로 DEFAULT
암호화 정책의 암호화 목적으로 SHA-1을 사용할 수 있습니다. 이는 서명에 대해 안전하지 않은 알고리즘의 시스템 전체 사용 중단과 일치하지 않습니다.
이 문제를 해결하려면 SHA-1과 관련된 GnuPG 옵션을 사용하지 마십시오. 결과적으로 GnuPG가 비보안 SHA-1 서명을 사용하여 기본 시스템 보안을 낮추지 않도록 합니다.
OpenSCAP 메모리 사용량 문제
메모리가 제한된 시스템에서 OpenSCAP 스캐너가 미리 중지되거나 결과 파일을 생성하지 못할 수 있습니다. 이 문제를 해결하려면 전체 /
파일 시스템에 대한 재귀와 관련된 규칙을 선택 해제하도록 스캔 프로필을 사용자 지정할 수 있습니다.
-
rpm_verify_hashes
-
rpm_verify_permissions
-
rpm_verify_ownership
-
file_permissions_unauthorized_world_writable
-
no_files_unowned_by_user
-
dir_perms_world_writable_system_owned
-
file_permissions_unauthorized_suid
-
file_permissions_unauthorized_sgid
-
file_permissions_ungroupowned
-
dir_perms_world_writable_sticky_bits
자세한 내용 및 해결 방법은 관련 지식 베이스 문서를 참조하십시오.
Kickstart 설치 중 서비스 관련 규칙 수정에 실패할 수 있습니다.
Kickstart 설치 중에 OpenSCAP 유틸리티에서 서비스 활성화
또는 비활성화
상태 수정이 필요하지 않은 것으로 잘못 표시되는 경우가 있습니다. 그 결과 OpenSCAP에서 설치된 시스템의 서비스를 비준수 상태로 설정할 수 있습니다. 이 문제를 해결하려면 Kickstart 설치 후 시스템을 스캔하고 수정할 수 있습니다. 이렇게 하면 서비스 관련 문제가 해결됩니다.
11.3. RHEL for Edge
edge-vsphere
이미지에서 open-vm-tools
패키지를 사용할 수 없습니다.
현재 open-vm-tools
패키지는 기본적으로 edge-vsphere
이미지에 설치되지 않습니다. 이 문제를 해결하려면 블루프린트 사용자 지정에 패키지를 포함합니다. edge-vsphere
이미지 유형을 사용하는 경우 RHEL for Edge Container 이미지 또는 RHEL for Edge 커밋 이미지의 블루프린트에 open-vm-tools
를 추가합니다.
Jira:RHELDOCS-16574[1]
11.4. 소프트웨어 관리
설치 프로세스가 응답하지 않는 경우가 있음
RHEL을 설치하면 설치 프로세스가 응답하지 않는 경우가 있습니다. /tmp/packaging.log
파일에는 끝에 다음 메시지가 표시됩니다.
10:20:56,416 DDEBUG dnf: RPM transaction over.
이 문제를 해결하려면 설치 프로세스를 다시 시작하십시오.
로컬 리포지토리에서 createrepo_c
를 실행하면 중복 repodata
파일이 생성됩니다.
로컬 리포지토리에서 createrepo_c
명령을 실행하면 repodata
파일의 중복 복사본을 생성합니다. 사본 중 하나는 압축되어 있지 않습니다. 사용 가능한 해결방법은 없지만 중복 파일을 무시해도 됩니다. createrepo_c
명령은 createrepo_c
를 사용하여 생성된 리포지토리에 의존하는 다른 툴의 요구 사항 및 차이로 인해 중복 복사본을 생성합니다.
11.5. 쉘 및 명령행 툴
ifcfg
파일을 사용하여 네트워크 인터페이스 이름 변경 실패
RHEL 9에서는 initscripts
패키지가 기본적으로 설치되지 않습니다. 결과적으로 ifcfg
파일을 사용하여 네트워크 인터페이스 이름을 변경할 수 없습니다. 이 문제를 해결하려면 udev
규칙 또는 링크 파일을 사용하여 인터페이스 이름을 바꾸는 것이 좋습니다. 자세한 내용은 Consistent 네트워크 인터페이스 장치 이름 지정 및 systemd.link(5)
도움말 페이지를 참조하십시오.
권장 솔루션 중 하나를 사용할 수 없는 경우 initscripts
패키지를 설치합니다.
Bugzilla:2018112[1]
chkconfig
패키지는 RHEL 9에 기본적으로 설치되지 않음
시스템 서비스에 대한 실행 수준 정보를 업데이트하고 쿼리하는 chkconfig
패키지는 RHEL 9에 기본적으로 설치되지 않습니다.
서비스를 관리하려면 systemctl
명령을 사용하거나 chkconfig
패키지를 수동으로 설치합니다.
systemd
에 대한 자세한 내용은 systemd 소개를 참조하십시오. systemctl
유틸리티를 사용하는 방법에 대한 자세한 내용은 systemctl을 사용하여 시스템 서비스 관리를 참조하십시오.
Bugzilla:2053598[1]
콘솔 키맵
을 설정하려면 최소 설치 시 libxkbcommon
라이브러리가 필요합니다.
RHEL 9에서는 특정 systemd
라이브러리 종속성이 동적 연결에서 동적 로드로 변환되어 시스템이 열려 있을 때 런타임 시 라이브러리가 열립니다. 이 변경으로 필요한 라이브러리를 설치하지 않는 한 이러한 라이브러리에 종속되는 기능을 사용할 수 없습니다. 이는 최소 설치가 있는 시스템의 키보드 레이아웃 설정에도 영향을 미칩니다. 그 결과 localectl --no-convert set-x11-keymap gb
명령이 실패합니다.
이 문제를 해결하려면 libxkbcommon
라이브러리를 설치합니다.
# dnf install libxkbcommon
Cryo stat
패키지의 %vmeff
메트릭에 잘못된 값이 표시됩니다.
Cryo stat
패키지는 %vmeff
메트릭을 제공하여 페이지 회수 효율성을 측정합니다. Cryostat는 이후 커널 버전에서 제공하는 모든 관련 /proc/vm
값을 구문 분석하지 않기 때문에 stat
sar -B
명령에서 반환된 %vmeff
열의 값이 올바르지 않습니다. 이 문제를 해결하려면 /proc/vmstat
파일에서 %vmeff
값을 수동으로 계산할 수 있습니다. 자세한 내용은 sar(1)
툴이 RHEL 8 및 RHEL 9에서 %
100 %를 초과하는 %를 보고하는이유를 참조하십시오.
SLP(Service Location Protocol)는 UDP를 통한 공격에 취약합니다.
OpenSLP는 프린터 및 파일 서버와 같은 로컬 영역 네트워크의 애플리케이션에 대한 동적 구성 메커니즘을 제공합니다. 그러나 SLP는 인터넷에 연결된 시스템에서 UDP를 통한 서비스 확장 공격에 취약합니다. SLP를 사용하면 인증되지 않은 공격자가 SLP 구현에 의해 설정된 제한 없이 새 서비스를 등록할 수 있습니다. UDP를 사용하여 소스 주소를 스푸핑하면 공격자는 서비스 목록을 요청하여 스푸핑된 주소에 서비스 거부를 생성할 수 있습니다.
외부 공격자가 SLP 서비스에 액세스하지 못하도록 인터넷에 직접 연결된 네트워크와 같이 신뢰할 수 없는 네트워크에서 SLP를 비활성화합니다. 또는 이 문제를 해결하려면 UDP 및 TCP 포트 427에서 트래픽을 차단하거나 필터링하도록 방화벽을 구성합니다.
Jira:RHEL-6995[1]
11.6. 인프라 서비스
bind
및 unbound
모두 SHA-1 기반 서명의 검증을 비활성화합니다.
바인딩 및
구성 요소는 모든 RSA/SHA1(알고리치 번호 5) 및 RSASHA1-NSEC3-SHA1(algorithm 번호 7) 서명의 유효성 검사를 비활성화하며 서명에 대한 SHA-1 사용은 DEFAULT 시스템 전체 암호화 정책에서 제한됩니다.
바인딩
되지 않은
결과적으로 SHA-1, RSA/SHA1 및 RSASHA1-NSEC3-SHA1 다이제스트 알고리즘과 서명된 특정 DNSSEC 레코드가 Red Hat Enterprise Linux 9에서 확인하지 못하고 영향을 받는 도메인 이름이 취약해집니다.
이 문제를 해결하려면 RSA/SHA-256 또는 elliptic 곡선 키와 같은 다른 서명 알고리즘으로 업그레이드하십시오.
영향을 받는 도메인 및 영향을 받는 최상위 도메인 목록은 RSASHA1로 서명된 DNSSEC 레코드가 솔루션을 확인하지 못했습니다.
동일한 쓰기 가능 영역 파일이 여러 영역에서 사용되는 경우 named
가 시작되지 않습니다.
BIND에서는 여러 영역에서 동일한 쓰기 가능 영역 파일을 허용하지 않습니다. 결과적으로 구성에 이름이
지정된 서비스에서 수정할 수 있는 파일의 경로를 공유하는 여러 영역이 포함된 경우 named
가 시작되지 않습니다. 이 문제를 해결하려면 in-view
절을 사용하여 여러 뷰 간에 하나의 영역을 공유하고 다른 영역에 다른 경로를 사용해야 합니다. 예를 들어 경로에 보기 이름을 포함합니다.
쓰기 가능한 영역 파일은 일반적으로 DNSSEC에서 유지 관리하는 동적 업데이트, 보조 영역 또는 영역이 있는 영역에서 사용됩니다.
libotr
가 FIPS와 호환되지 않음
OTR(off-the-record) 메시징용 libotr
라이브러리 및 툴킷은 인스턴트 메시징 대화를 위한 엔드 투 엔드 암호화를 제공합니다. 그러나 libotr
라이브러리는 gcry_pk_sign()
및 gcry_pk_verify()
함수를 사용하므로 FIPS(Federal Information Processing Standards)를 준수하지 않습니다. 결과적으로 FIPS 모드에서 libotr
라이브러리를 사용할 수 없습니다.
11.7. 네트워킹
mlx5
드라이버 및 3498 바이트보다 큰 MTU와 XDP 멀티 버퍼 모드를 사용하려면 RX Striding RQ를 비활성화해야합니다.
다음 조건과 일치하는 호스트에서 다중 버퍼 모드로 XDP(EXpress Data Path) 스크립트를 실행하면 실패합니다.
-
호스트는
mlx5
드라이버를 사용합니다. - 최대 전송 단위(MTU) 값은 3498바이트보다 큽니다.
- Mellanox 인터페이스에서 수신 중단 수신 대기열(RX Striding RQ) 기능이 활성화되어 있습니다.
모든 조건이 적용되면 link set xdp fd failed
오류로 인해 스크립트가 실패합니다. MTU가 더 높은 호스트에서 XDP 스크립트를 실행하려면 Mellanox 인터페이스에서 RX Striding RQ를 비활성화합니다.
# ethtool --set-priv-flags <interface_name> rx_striding_rq off
결과적으로 mlx5
드라이버를 사용하고 MTU 값이 3498바이트를 초과하는 인터페이스에서 XDP 멀티 버퍼 모드를 사용할 수 있습니다.
Jira:RHEL-6496[1]
kTLS는 TLS 1.3을 NIC로의 오프로드를 지원하지 않습니다.
kTLS(커널 전송 계층 보안)는 TLS 1.3을 NIC로의 오프로드를 지원하지 않습니다. 결과적으로 NIC가 TLS 오프로드를 지원하는 경우에도 소프트웨어 암호화가 TLS 1.3과 함께 사용됩니다. 이 문제를 해결하려면 오프로드가 필요한 경우 TLS 1.3을 비활성화합니다. 따라서 TLS 1.2만 오프로드할 수 있습니다. TLS 1.3을 사용하는 경우 TLS 1.3을 오프로드할 수 없기 때문에 성능이 향상됩니다.
Bugzilla:2000616[1]
세션 키를 업데이트하지 않으면 연결이 중단됨
kTLS(커널 전송 계층 보안) 프로토콜은 대칭 암호화에서 사용되는 세션 키 업데이트를 지원하지 않습니다. 결과적으로 사용자가 키를 업데이트할 수 없으므로 연결이 끊어집니다. 이 문제를 해결하려면 kTLS를 비활성화합니다. 결과적으로 해결방법을 사용하면 세션 키를 성공적으로 업데이트할 수 있습니다.
Bugzilla:2013650[1]
initscripts
패키지는 기본적으로 설치되지 않습니다.
기본적으로 initscripts
패키지는 설치되지 않습니다. 결과적으로 ifup
및 ifdown
유틸리티를 사용할 수 없습니다. 또는 nmcli connection up
및 nmcli connection down
명령을 사용하여 연결을 활성화 및 비활성화합니다. 제안된 대체 방법이 작동하지 않는 경우 문제를 보고하고 ifup
및 ifdown
유틸리티에 대한 NetworkManager 솔루션을 제공하는 NetworkManager-initscripts-updown
패키지를 설치합니다.
Mellanox ConnectX-5
어댑터를 사용하는 동안 mlx5
드라이버가 실패합니다.
이더넷 스위치 장치 드라이버 모델(switchdev
) 모드에서 mlx5
드라이버는 장치 관리 흐름 스트링(DMFS) 매개변수 및 ConnectX-5
어댑터 지원 하드웨어를 사용하여 구성된 경우 실패합니다. 결과적으로 다음과 같은 오류 메시지가 표시됩니다.
BUG: Bad page cache in process umount pfn:142b4b
이 문제를 해결하려면 DMFS 대신SMFS(Software managed flow steering) 매개변수를 사용하십시오.
Jira:RHEL-9897[1]
Intel® i40e
어댑터가 IBM Power10에서 영구적으로 실패합니다.
IBM Power10 시스템에서 i40e
어댑터가 I/O 오류가 발생하면EEH(Enhanced I/O Error Handling) 커널 서비스가 네트워크 드라이버의 재설정 및 복구를 트리거합니다. 그러나 EEH는 i40e
드라이버가 사전 정의된 최대 EEH 정지에 도달할 때까지 I/O 오류를 반복적으로 보고합니다. 결과적으로 EEH로 인해 장치가 영구적으로 실패합니다.
Jira:RHEL-15404[1]
xdp-loader features
명령 실패
xdp-loader
유틸리티는 이전 버전의 libbpf
에 대해 컴파일되었습니다. 그 결과 xdp-loader features
명령이 오류와 함께 실패합니다.
Cannot display features, because xdp-loader was compiled against an old version of libbpf without support for querying features.
해결방법은 없습니다. 따라서 xdp-loader features
명령을 사용하여 인터페이스 기능을 표시할 수 없습니다.
Jira:RHEL-3382[1]
11.8. 커널
커널의 kdump
메커니즘으로 인해 64K 커널에서 OOM
오류가 발생합니다.
64비트 ARM 아키텍처의 64K 커널 페이지 크기는 4KB 커널보다 더 많은 메모리를 사용합니다. 결과적으로 kdump
로 인해 커널 패닉이 발생하고 메모리 할당이 OOM(메모리 부족) 오류로 인해 실패합니다. 작업에 따라 crashkernel
값을 640MB로 수동으로 구성합니다. 예를 들어 crashkernel=
매개 변수를 crashkernel=2G- :640M
로 설정합니다.
결과적으로 kdump
메커니즘은 설명된 시나리오의 64K 커널에서 실패하지 않습니다.
Bugzilla:2160676[1]
커널 페이지 크기에 따라 종속 항목이 있는 고객 애플리케이션은 4k에서 64k 페이지 크기 커널로 이동할 때 업데이트해야 할 수 있습니다.
RHEL은 4k 및 64k 페이지 크기 커널과 호환됩니다. 4k 커널 페이지 크기에 종속된 고객 애플리케이션은 4k에서 64k 페이지 크기 커널로 이동할 때 업데이트해야 할 수 있습니다. 알려진 인스턴스에는 jemalloc
및 종속 애플리케이션이 포함됩니다.
jemalloc
메모리 al Cryostat 라이브러리는 시스템의 런타임 환경에서 사용되는 페이지 크기에 민감합니다. 라이브러리는 4k 및 64k 페이지 크기 커널(예: --with-lg-page=16
또는 env JEMALLOC_SYS_WITH_LG_PAGE=16
)과 호환되도록 빌드할 수 있습니다. 결과적으로 런타임 환경의 페이지 크기와
jemalloc
에 의존하는 바이너리를 컴파일할 때 존재하는 페이지 크기 간에 불일치가 발생할 수 있습니다. 결과적으로 jemalloc
기반 애플리케이션을 사용하면 다음 오류가 트리거됩니다.
<jemalloc>: Unsupported system page size
이 문제를 방지하려면 다음 방법 중 하나를 사용하십시오.
- 적절한 빌드 구성 또는 환경 옵션을 사용하여 4k 및 64k 페이지 크기 호환 바이너리를 생성합니다.
-
최종 64k 커널 및 런타임 환경으로 부팅한 후
jemalloc
을 사용하는 사용자 공간 패키지를 빌드합니다.
예를 들어, Rust 패키지 관리자와 함께 jemalloc
도 사용하는 fd-find
툴을 빌드할 수 있습니다. 최종 64k 환경에서 다음을 입력하여 모든 종속 항목의 새 빌드를 트리거하여 페이지 크기의 불일치를
해결합니다
.
# cargo install fd-find --force
Bugzilla:2167783[1]
dnf
를 사용하여 최신 실시간 커널로 업그레이드해도 여러 커널 버전이 병렬로 설치되지 않음
dnf
패키지 관리자를 사용하여 최신 실시간 커널을 설치하려면 패키지 종속성을 확인해야 새 커널 버전과 현재 커널 버전을 동시에 유지해야 합니다. 기본적으로 dnf
는 업그레이드 중에 이전 kernel-rt
패키지를 제거합니다.
이 문제를 해결하려면 /etc/yum.conf
구성 파일의 installonlypkgs
옵션에 현재 kernel-rt
패키지를 추가합니다(예: installonlypkgs=kernel-rt
).
installonlypkgs
옵션은 dnf
에서 사용하는 기본 목록에 kernel-rt
를 추가합니다. installonlypkgs
지시문에 나열된 패키지는 자동으로 제거되지 않으므로 동시에 설치할 여러 커널 버전을 지원합니다.
여러 커널이 설치되어 있는 것은 새 커널 버전으로 작업할 때 대체 옵션을 사용하는 방법입니다.
Bugzilla:2181571[1]
지연 계정
기능은 기본적으로 SWAPIN
및 IO%
통계 열을 표시하지 않습니다.
초기 버전과 달리 지연된
계정 기능은 기본적으로 비활성화되어 있습니다. 결과적으로 iotop
애플리케이션에 SWAPIN
및 IO%
통계 열이 표시되지 않고 다음 경고가 표시됩니다.
CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO%
작업stats
인터페이스를 사용하여 스레드 그룹에 속하는 모든 작업 또는 스레드에 대한 지연 통계를 제공합니다. 작업 실행 지연은 커널 리소스가 제공될 때까지 기다립니다(예: 사용 가능한 CPU가 실행될 때까지 기다리는 작업). 작업의 CPU 우선 순위, I/O 우선 순위 및
rss
제한 값을 적절하게 설정하는 데 도움이 됩니다.
이 문제를 해결하려면 런타임 또는 부팅 시 delayacct
부팅 옵션을 활성화할 수 있습니다.
런타임에
delayacct
를 활성화하려면 다음을 입력합니다.echo 1 > /proc/sys/kernel/task_delayacct
이 명령은 기능 시스템 전체 기능을 활성화하지만 이 명령을 실행한 후에 시작하는 작업에만 적용됩니다.
부팅 시
지연을
영구적으로 활성화하려면 다음 절차 중 하나를 사용합니다./etc/sysctl.conf
파일을 편집하여 기본 매개변수를 재정의합니다./etc/sysctl.conf
파일에 다음 항목을 추가합니다.kernel.task_delayacct = 1
자세한 내용은 Red Hat Enterprise Linux에서 sysctl 변수를 설정하는 방법을 참조하십시오.
- 변경 사항을 적용하려면 시스템을 재부팅합니다.
커널 명령줄에
delayacct
옵션을 추가합니다.자세한 내용은 커널 명령줄 매개변수 구성을 참조하십시오.
결과적으로 iotop
애플리케이션에 SWAPIN
및 IO%
통계 열이 표시됩니다.
Bugzilla:2132480[1]
코어가 큰 시스템에서 실시간 커널의 하드웨어 인증으로 skew-tick=1
부팅 매개변수를 전달해야 할 수 있습니다.
다수의 소켓과 대규모 코어 개수가 있는 대규모 또는 중간 규모의 시스템은 시간 보관 시스템에 사용되는 xtime_lock
의 잠금 경합으로 인해 대기 시간이 급증할 수 있습니다. 결과적으로 멀티프로세싱 시스템에서 대기 시간이 급증하고 하드웨어 인증 지연이 발생할 수 있습니다. 이 문제를 해결하려면 skew_tick=1
부팅 매개변수를 추가하여 CPU당 타이머 눈금을 다른 시간에 시작할 수 있습니다.
잠금 충돌을 방지하려면 skew_tick=1
을 활성화합니다.
grubby
를 사용하여skew_tick=1
매개변수를 활성화합니다.# grubby --update-kernel=ALL --args="skew_tick=1"
- 변경 사항을 적용하려면 재부팅하십시오.
부팅 중에 전달하는 커널 매개변수를 표시하여 새 설정을 확인합니다.
cat /proc/cmdline
skew_tick=1
을 활성화하면 전력 소비가 크게 증가하므로 대기 시간에 민감한 실시간 워크로드를 실행하는 경우에만 활성화해야 합니다.
Jira:RHEL-9318[1]
kdump
메커니즘이 LUKS 암호화 대상에서 vmcore
파일을 캡처하지 못했습니다
Linux 통합 키 설정(LUKS) 암호화된 파티션이 있는 시스템에서 kdump
를 실행하는 경우 시스템에 특정 양의 사용 가능한 메모리가 필요합니다. 사용 가능한 메모리가 필요한 메모리 양보다 작으면 systemd-cryptsetup
서비스가 파티션을 마운트하지 못합니다. 결과적으로 두 번째 커널은 LUKS 암호화 대상에서 크래시 덤프 파일을 캡처하지 못합니다.
이 문제를 해결하려면 Recommended crashkernel 값을 쿼리하고
메모리 크기를 적절한 값으로 점진적으로 늘립니다. Recommended crashkernel 값은
필요한 메모리 크기를 설정하는 참조 역할을 할 수 있습니다.
추정된 크래시 커널 값을 출력합니다.
# kdumpctl estimate
crashkernel
값을 늘려 필요한 메모리 양을 구성합니다.# grubby --args=crashkernel=652M --update-kernel=ALL
변경 사항을 적용하려면 시스템을 재부팅합니다.
# reboot
결과적으로 kdump
는 LUKS 암호화 파티션이 있는 시스템에서 올바르게 작동합니다.
Jira:RHEL-11196[1]
kdump
서비스가 IBM Z 시스템에서 initrd
파일을 빌드하지 못했습니다
64비트 IBM Z 시스템에서 s390-subchannels
와 같은 znet
관련 구성 정보가 비활성 NetworkManager
연결 프로필에 있는 경우 kdump
서비스가 초기 RAM 디스크(initrd
)를 로드하지 못합니다. 결과적으로 kdump
메커니즘이 다음 오류와 함께 실패합니다.
dracut: Failed to set up znet kdump: mkdumprd: failed to make kdump initrd
이 문제를 해결하려면 다음 솔루션 중 하나를 사용하십시오.
znet
구성 정보가 있는 연결 프로필을 다시 사용하여 네트워크 본딩 또는 브리지를 구성합니다.$ nmcli connection modify enc600 master bond0 slave-type bond
비활성 연결 프로필에서 활성 연결 프로필에
znet
구성 정보를 복사합니다.nmcli
명령을 실행하여NetworkManager
연결 프로필을 쿼리합니다.# nmcli connection show NAME UUID TYPE Device bridge-br0 ed391a43-bdea-4170-b8a2 bridge br0 bridge-slave-enc600 caf7f770-1e55-4126-a2f4 ethernet enc600 enc600 bc293b8d-ef1e-45f6-bad1 ethernet --
비활성 연결의 구성 정보로 활성 프로필을 업데이트합니다.
#!/bin/bash inactive_connection=enc600 active_connection=bridge-slave-enc600 for name in nettype subchannels options; do field=802-3-ethernet.s390-$name val=$(nmcli --get-values "$field"connection show "$inactive_connection") nmcli connection modify "$active_connection" "$field" $val" done
변경 사항을 적용하려면
kdump
서비스를 다시 시작하십시오.# kdumpctl restart
iwl7260-firmware
는 Intel Wi-Fi 6 AX200, AX210 및 CryostatPad P1 Cryostat 4에서 Wi-Fi를 분리합니다.
iwl7260-firmware
또는 iwl7260-wifi
드라이버를 RHEL 9.1 이상에서 제공하는 버전으로 업데이트한 후 하드웨어가 잘못된 내부 상태가 됩니다. 상태를 잘못 보고합니다. 결과적으로 Intel Wifi 6 카드가 작동하지 않을 수 있으며 오류 메시지가 표시됩니다.
kernel: iwlwifi 0000:09:00.0: Failed to start RT ucode: -110 kernel: iwlwifi 0000:09:00.0: WRT: Collecting data: ini trigger 13 fired (delay=0ms) kernel: iwlwifi 0000:09:00.0: Failed to run INIT ucode: -110
확인되지 않은 해결 방법은 시스템의 전원을 끄고 다시 켜는 것입니다. 재부팅하지 마십시오.
Bugzilla:2129288[1]
kmod
의 약한 모듈이 모듈
상호 의존과 함께 작동하지 않음
kmod
패키지에서 제공하는 weak-modules
스크립트는 설치된 커널과 kABI와 호환되는 모듈을 결정합니다. 그러나 모듈의 커널 호환성을 확인하는 동안 약한 모듈은
빌드된 커널의 상위 릴리스에서 더 낮은 릴리스까지 종속성을 기호화합니다. 결과적으로 다른 커널 릴리스에 빌드된 상호 종속 관계가 있는 모듈은 호환되지 않는 것으로 해석될 수 있으므로 이 시나리오에서는 weak-modules
스크립트가 작동하지 않을 수 있습니다.
이 문제를 해결하려면 새 커널을 설치하기 전에 최신 커널에 대해 추가 모듈을 빌드하거나 배치하십시오.
Bugzilla:2103605[1]
dkms
는 64비트 ARM CPU에서 올바르게 컴파일된 드라이버를 사용하여 프로그램 오류에 대한 잘못된 경고를 제공합니다.
동적 커널 모듈 지원(dkms
) 유틸리티는 64비트 ARM CPU의 커널 헤더가 4 킬로바이트 및 64 킬로바이트 페이지 크기가 있는 커널 모두에서 작동하는지 인식하지 못합니다. 결과적으로 커널 업데이트가 수행되고 kernel-64k-devel
패키지가 설치되지 않은 경우 dkms
는 프로그램이 올바르게 컴파일된 드라이버에서 실패한 이유에 대한 잘못된 경고를 제공합니다. 이 문제를 해결하려면 두 가지 유형의 ARM CPU 아키텍처에 대한 헤더 파일이 포함된 kernel-headers
패키지를 설치하고 dkms
및 해당 요구 사항에 국한되지 않습니다.
JIRA:RHEL-25967[1]
11.9. 파일 시스템 및 스토리지
Anaconda에서 CHAP 인증 시도에 실패한 후 no authentication
방법을 사용하여 iSCSI 서버에 로그인하지 못했습니다
CHAP 인증을 사용하여 iSCSI 디스크를 추가하고 잘못된 인증 정보로 인해 로그인 시도가 실패하면 no authentication
방법이 있는 디스크에 다시 로그인 시도가 실패합니다. 이 문제를 해결하려면 현재 세션을 닫고 no authentication
방법을 사용하여 로그인합니다.
Bugzilla:1983602[1]
NVMe/TCP에서 장치 매퍼 멀티패스가 지원되지 않음
nvme-tcp
드라이버와 함께 장치 매퍼 Multipath를 사용하면 호출 추적 경고 및 시스템 불안정성이 발생할 수 있습니다. 이 문제를 해결하려면 NVMe/TCP 사용자는 네이티브 NVMe 멀티패스를 활성화하고 NVMe에서 device-mapper-multipath
툴을 사용하지 않아야 합니다.
기본적으로 RHEL 9에서는 Native NVMe 멀티패스가 활성화됩니다. 자세한 내용은 NVMe 장치에서 다중 경로 활성화를 참조하십시오.
Bugzilla:2033080[1]
blk-availability
systemd 서비스는 복잡한 장치 스택을 비활성화합니다.
systemd
에서 기본 블록 비활성화 코드는 항상 복잡한 가상 블록 장치 스택을 올바르게 처리하지는 않습니다. 일부 구성에서는 종료 중에 가상 장치가 제거되지 않을 수 있으므로 오류 메시지가 기록됩니다. 이 문제를 해결하려면 다음 명령을 실행하여 복잡한 블록 장치 스택을 비활성화합니다.
# systemctl enable --now blk-availability.service
결과적으로 종료 중에 복잡한 가상 장치 스택이 올바르게 비활성화되고 오류 메시지가 생성되지 않습니다.
Bugzilla:2011699[1]
할당량이 활성화된 XFS 파일 시스템에 더 이상 할당량 계산을 비활성화할 수 없습니다.
RHEL 9.2부터 할당량이 활성화된 XFS 파일 시스템에서 할당량 계정을 더 이상 비활성화할 수 없습니다.
이 문제를 해결하려면 할당량 옵션이 제거된 상태에서 파일 시스템을 다시 마운트하여 할당량 계산을 비활성화합니다.
Bugzilla:2160619[1]
NVMe 장치의 udev 규칙 변경
OPTIONS="string_escape=replace"
매개변수를 추가하는 NVMe 장치에 대한 udev 규칙 변경 사항이 있습니다. 이로 인해 장치의 일련 번호가 선행 공백을 가진 경우 일부 공급 업체의 이름 지정 변경으로 인해 디스크가 발생합니다.
Kickstart 파일에서 NVMe/FC 장치를 안정적으로 사용할 수 없습니다
Kickstart 파일의 사전 스크립트를 구문 분석하거나 실행하는 동안 NVMe/FC 장치를 사용할 수 없으므로 Kickstart 설치에 실패할 수 있습니다. 이 문제를 해결하려면 부팅 인수를 inst.wait_for_disks=30
로 업데이트합니다. 이 옵션을 사용하면 30초가 지연되고 NVMe/FC 장치가 연결할 수 있는 충분한 시간을 제공해야 합니다. 이 해결 방법으로 NVMe/FC 장치 연결과 함께 Kickstart 설치는 문제 없이 진행됩니다.
Jira:RHEL-8164[1]
qedi
드라이버를 사용하는 동안 커널 패닉
qedi
iSCSI 드라이버를 사용하는 동안 OS가 부팅된 후 커널이 패닉됩니다. 이 문제를 해결하려면
을 커널 부팅 명령줄에 추가하여 kfence 런타임 메모리 오류 탐지 기능을 비활성화합니다.
kfence
.sample_interval=0
Jira:RHEL-8466[1]
커널-64k 페이지 크기로 ARM 기반 시스템을 부팅할 수 없음
vdo
패키지를 설치하는 동안 4k 페이지 크기가 있는 커널이 종속성으로 설치됩니다. 결과적으로 소프트웨어 선택 화면에서 64k 페이지 크기를 선택한 경우에도 4k 페이지 크기 커널로 시스템이 부팅됩니다. 이 문제를 해결하려면 기본 환경에서 최소 설치를 선택하고 커널 옵션에서 페이지 크기로 64k를 선택합니다. 시스템이 처음 부팅되면 DNF 패키지 관리자를 사용하여 추가 소프트웨어를 설치합니다.
11.10. 동적 프로그래밍 언어, 웹 서버 및 데이터베이스 서버
python3.11-lxml
은 lxml.isoschematron
하위 모듈을 제공하지 않습니다.
python3.11-lxml
패키지는 오픈 소스 라이센스가 없기 때문에 lxml.isoschematron
하위 모듈 없이 배포됩니다. 하위 모듈은 ISO Schematron 지원을 구현합니다. 또는 lxml.etree.Schematron
클래스에서 pre-ISO-Schematron 검증을 사용할 수 있습니다. python3.11-lxml
패키지의 나머지 내용은 영향을 받지 않습니다.
MySQL
및 MariaDB
의 --ssl-fips-mode
옵션은 FIPS 모드를 변경하지 않습니다.
RHEL의 MySQL
및 MariaDB
의 --ssl-fips-mode
옵션은 업스트림과 다르게 작동합니다.
RHEL 9에서 --ssl-fips-mode
를 mysqld
또는 mariadbd
데몬의 인수로 사용하거나 MySQL
또는 MariaDB
서버 구성 파일에서 ssl-fips-mode
를 사용하는 경우 --ssl-fips-mode
는 이러한 데이터베이스 서버의 FIPS 모드를 변경하지 않습니다.
대신 다음을 수행합니다.
-
--ssl-fips-mode
를ON
으로 설정하면mysqld
또는mariadbd
서버 데몬이 시작되지 않습니다. -
FIPS 지원 시스템에서
--ssl-fips-mode
를OFF
로 설정하면mysqld
또는mariadbd
서버 데몬이 FIPS 모드에서 계속 실행됩니다.
이는 특정 구성 요소에 대해 FIPS 모드가 전체 RHEL 시스템에 대해 활성화되거나 비활성화되어야 하기 때문에 예상됩니다.
따라서 RHEL의 MySQL
또는 MariaDB
에서 --ssl-fips-mode
옵션을 사용하지 마십시오. 대신 전체 RHEL 시스템에서 FIPS 모드가 활성화되어 있는지 확인합니다.
- FIPS 모드가 활성화된 RHEL을 설치하는 것이 좋습니다. 설치 중에 FIPS 모드를 활성화하면 시스템이 FIPS 승인 알고리즘 및 지속적인 모니터링 테스트로 모든 키를 생성합니다. FIPS 모드에서 RHEL을 설치하는 방법에 대한 자세한 내용은 FIPS 모드에서 시스템 설치를 참조하십시오.
- 또는 시스템을 FIPS 모드로 전환하는 절차에 따라 전체 RHEL 시스템의 FIPS 모드를 전환할 수 있습니다.
11.11. IdM (Identity Management)
MIT Kerberos는 PKINIT의 ECC 인증서를 지원하지 않음
MIT Kerberos는 초기 인증(PKINIT)을 위한 공개 키 암호화(Public Key Cryptography) 지원의 설계를 설명하는 댓글 문서에 대한 RFC5349 요청을 구현하지 않습니다. 결과적으로 RHEL에서 사용하는 MIT krb5-pkinit
패키지는 ECC 인증서를 지원하지 않습니다. 자세한 내용은 PKINIT (PKINIT)의 초기 인증을 위한 공개 키 암호화에 대한 ECC(Elliptic Curve Cryptography) 지원을 참조하십시오.
PKINIT가 AD KDC에 대해 작동하도록 RHEL 9 클라이언트에서 DEFAULT:SHA1 하위 정책을 설정해야 합니다.
SHA-1 다이제스트 알고리즘은 RHEL 9에서 더 이상 사용되지 않으며 초기 인증(PKINIT)을 위한 공개 키 암호화(PKINIT)의 CMS 메시지가 더 강력한 SHA-256 알고리즘으로 서명됩니다.
그러나 AD(Active Directory) Kerberos Distribution Center(KDC)는 여전히 SHA-1 다이제스트 알고리즘을 사용하여 CMS 메시지에 서명합니다. 결과적으로 RHEL 9 Kerberos 클라이언트가 AD KDC에 대해 PKINIT를 사용하여 사용자를 인증하지 못합니다.
이 문제를 해결하려면 다음 명령을 사용하여 RHEL 9 시스템에서 SHA-1 알고리즘에 대한 지원을 활성화합니다.
# update-crypto-policies --set DEFAULT:SHA1
RHEL 9 Kerberos 에이전트가 RHEL-9 및 비AD Kerberos 에이전트와 통신하면 사용자의 PKINIT 인증이 실패합니다.
클라이언트 또는 Kerberos Distribution Center(KDC) 중 하나인 RHEL 9 Kerberos 에이전트가 Active Directory(AD) 에이전트가 아닌 RHEL-9 Kerberos 에이전트와 상호 작용하는 경우 사용자의 PKINIT 인증이 실패합니다. 이 문제를 해결하려면 다음 작업 중 하나를 수행합니다.
SHA-1 서명을 확인할 수 있도록 RHEL 9 에이전트의 crypto-policy를
DEFAULT:SHA1
로 설정합니다.# update-crypto-policies --set DEFAULT:SHA1
비 RHEL-9 및 AD가 아닌 에이전트를 업데이트하여 SHA-1 알고리즘을 사용하여 CMS 데이터에 서명하지 않도록 합니다. 이를 위해 Kerberos 클라이언트 또는 KDC 패키지를 SHA-1 대신 SHA-256을 사용하는 버전으로 업데이트합니다.
- CentOS 9 스트림: krb5-1.19.1-15
- RHEL 8.7: krb5-1.18.2-17
- RHEL 7.9: krb5-1.15.1-53
- Fedora Rawhide/36: krb5-1.19.2-7
- Fedora 35/34: krb5-1.19.2-3
결과적으로 사용자의 PKINIT 인증이 올바르게 작동합니다.
다른 운영 체제의 경우 에이전트가 SHA-1 대신 CMS 데이터에 서명하도록 하는 krb5-1.20 릴리스입니다.
PKINIT가 AD KDC에 대해 작동하도록 RHEL 9 클라이언트에서 DEFAULT:SHA1 하위 정책을 설정해야 합니다. 을 참조하십시오.
AD 신뢰에 대한 FIPS 지원에는 AD-SUPPORT 암호화 하위 정책이 필요합니다.
Active Directory(AD)는 기본적으로 RHEL 9의 FIPS 모드에서 허용되지 않는 AES SHA-1 HMAC 암호화 유형을 사용합니다. AD 신뢰와 함께 RHEL 9 IdM 호스트를 사용하려면 IdM 소프트웨어를 설치하기 전에 AES SHA-1 HMAC 암호화 유형에 대한 지원을 활성화합니다.
FIPS 컴플라이언스는 기술 및 조직 계약이 모두 포함된 프로세스이므로 AD-SUPPORT
하위 정책을 활성화하여 AES SHA-1 HMAC 암호화 유형을 지원하는 기술 조치를 허용하기 전에 FIPS 감사자를 참조한 다음 RHEL IdM을 설치합니다.
# update-crypto-policies --set FIPS:AD-SUPPORT
Heimdal 클라이언트가 RHEL 9 KDC에 PKINIT를 사용하여 사용자를 인증하지 못했습니다.
기본적으로 Heimdal Kerberos 클라이언트는 인터넷 키 교환(IKE)용 Modular Exponential (MODP) Diffie-Hellman Group 2를 사용하여 IdM 사용자의 PKINIT 인증을 시작합니다. 그러나 RHEL 9의 MIT Kerberos Distribution Center(KDC)는 MODP 그룹 14 및 16만 지원합니다.
결과적으로 krb5_get_init_creds: Heimdal 클라이언트의 PREAUTH_FAILED
오류와 RHEL MIT KDC에서 허용되지 않는 키 매개변수를
사용하여 사전 확인 요청이 실패합니다.
이 문제를 해결하려면 Heimdal 클라이언트가 MODP 그룹 14를 사용하는지 확인하십시오. 클라이언트 구성 파일의 libdefaults
섹션에서 pkinit_dh_min_bits
매개변수를 1759로 설정합니다.
[libdefaults] pkinit_dh_min_bits = 1759
결과적으로 Heimdal 클라이언트는 RHEL MIT KDC에 대해 PKINIT 사전 인증을 완료합니다.
FIPS 모드에서 IdM은 NTLMSSP 프로토콜 사용을 지원하지 않습니다.
NTLMSSP(New Technology LAN Manager Security Support Provider) 인증이 FIPS와 호환되지 않기 때문에 FIPS(Active Directory)와 FIPS 모드가 활성화된 IdM(Identity Management) 간 양방향 교차 포리스트 트러스트를 설정할 수 없습니다. FIPS 모드의 IdM은 AD 도메인 컨트롤러에서 인증을 시도할 때 사용하는 RC4 NTLM 해시를 허용하지 않습니다.
Jira:RHEL-12154[1]
FIPS 모드에서 IdM Vault 암호화 및 암호 해독이 실패합니다.
FIPS 모드가 활성화된 경우 OpenSSL RSA-PKCS1v15 패딩 암호화가 차단됩니다. 결과적으로 IdM(Identity Management) Vault가 현재 전송 인증서로 세션 키를 래핑하는 데 PKCS1v15 패딩을 사용하므로 제대로 작동하지 않습니다.
Jira:RHEL-12143[1]
SID가 없는 사용자는 업그레이드 후 IdM에 로그인할 수 없습니다.
IdM 복제본을 RHEL 9.2로 업그레이드한 후 IdM Kerberos Distribution Center(KDC)는 계정에 할당된 SID(보안 식별자)가 없는 사용자에게 TGT( ticket-granting ticket)를 발행하지 못할 수 있습니다. 결과적으로 사용자는 계정에 로그인할 수 없습니다.
이 문제를 해결하려면 토폴로지의 다른 IdM 복제본에서 IdM 관리자로 다음 명령을 실행하여 SID를 생성합니다.
# ipa config-mod --enable-sid --add-sids
이후에도 사용자가 계속 로그인할 수 없는 경우 Directory Server 오류 로그를 검사합니다. 사용자 POSIX ID를 포함하도록 ID 범위를 조정해야 할 수도 있습니다.
자세한 내용은 RHEL9로 업그레이드할 때 IDM 사용자가 더 이상 지식베이스 솔루션에 로그인할 수 없습니다.
Jira:RHELPLAN-157939[1]
마이그레이션된 IdM 사용자는 일치하지 않는 도메인 SID로 인해 로그인할 수 없을 수 있습니다.
ipa migrate-ds
스크립트를 사용하여 IdM 배포에서 사용자를 다른 IdM 배포로 마이그레이션한 경우 이전 SID(보안 식별자)에 현재 IdM 환경의 도메인 SID가 없기 때문에 IdM 서비스를 사용하는 데 문제가 있을 수 있습니다. 예를 들어 해당 사용자는 kinit
유틸리티를 사용하여 Kerberos 티켓을 검색할 수 있지만 로그인할 수 없습니다. 이 문제를 해결하려면 다음 지식 베이스 문서를 참조하십시오. 마이그레이션된 IdM 사용자는 일치하지 않는 도메인 SID로 인해 로그인할 수 없습니다.
Jira:RHELPLAN-109613[1]
MIT krb5
사용자가 사용자 PAC를 생성하는 호환되지 않는 암호화 유형으로 인해 AD TGT를 얻지 못했습니다.
MIT krb5 1.20
이상 패키지에서는 기본적으로 모든 Kerberos 티켓에 PAC(Privilege Attribute Certificate)가 포함되어 있습니다. MIT Kerberos Distribution Center(KDC)는 현재 RFC8009에 정의된 AES HMAC-SHA2
암호화 유형인 PAC에서 KDC 체크섬을 생성하는 데 사용할 수 있는 가장 강력한 암호화 유형을 선택합니다. 그러나 AD(Active Directory)는 이 RFC를 지원하지 않습니다. 결과적으로, AD-MIT 교차 영역 설정에서 MIT krb5
사용자는 MIT KDC에서 생성한 교차 영역 TGT에 의해 생성된 교차 영역 TGT에 PAC의 호환되지 않는 KDC 체크섬 유형이 포함되어 있기 때문에 MIT krb5 사용자가 AD 티켓 부여 티켓(TGT)을 얻지 못합니다.
이 문제를 해결하려면 /var/kerberos/krb5kdc/kdc.conf
구성 파일의 [realms]
섹션에서 MIT 영역에 대해 disable_pac
매개변수를 true
로 설정합니다. 결과적으로 MIT KDC는 PAC 없이 티켓을 생성합니다. 즉, AD는 실패한 체크섬 확인을 건너뛰고 MIT krb5
사용자는 AD TGT를 받을 수 있습니다.
ldap_id_use_start_tls
옵션에 기본값을 사용할 때 발생할 위험이 있습니다.
ID 조회에 TLS 없이 ldap://
를 사용하는 경우 공격 벡터가 발생할 수 있습니다. 특히 MITTM(man-in-the-middle) 공격으로 공격자가 LDAP 검색에서 반환된 오브젝트의 UID 또는 GID를 변경하여 사용자를 가장할 수 있습니다.
현재 TLS, ldap_id_use_start_tls
를 적용하는 SSSD 구성 옵션은 기본값은 false
입니다. 설정이 신뢰할 수 있는 환경에서 작동하고 id_provider = ldap
용으로 암호화되지 않은 통신을 사용하는 것이 안전한지 확인합니다. 참고 id_provider = ad
및 id_provider = ipa
는 SASL 및 GSSAPI로 보호되는 암호화된 연결을 사용하므로 영향을 받지 않습니다.
암호화되지 않은 통신을 사용하지 않는 경우 /etc/sssd/sssd.conf
파일에서 ldap_id_use_start_tls
옵션을 true
로 설정하여 TLS를 적용합니다. 기본 동작은 향후 RHEL 릴리스에서 변경될 예정입니다.
Jira:RHELPLAN-155168[1]
RHEL 8.6 또는 이전 버전으로 초기화된 FIPS 모드의 IdM 배포에 FIPS 모드에서 RHEL 9 복제본을 추가하는 데 실패합니다.
FIPS 140-3을 준수하기 위한 기본 RHEL 9 FIPS 암호화 정책은 AES HMAC-SHA1 암호화 유형의 키 파생 기능을 RFC3961, 섹션 5.1에 정의된 대로 사용할 수 없습니다.
이 제약 조건은 첫 번째 서버가 RHEL 8.6 시스템 또는 이전 버전에 설치된 FIPS 모드의 RHEL 8 IdM 환경에 FIPS 모드의 RHEL 9 IdM(Identity Management) 복제본을 추가할 때 차단 프로그램입니다. 이는 RHEL 9과 이전 RHEL 버전 간에 일반적인 암호화 유형이 없으며 일반적으로 AES HMAC-SHA1 암호화 유형을 사용하지만 AES HMAC-SHA2 암호화 유형을 사용하지 않기 때문입니다.
서버에 다음 명령을 입력하여 IdM 마스터 키의 암호화 유형을 볼 수 있습니다.
# kadmin.local getprinc K/M | grep -E '^Key:'
이 문제를 해결하려면 RHEL 9 복제본에서 AES HMAC-SHA1 사용을 활성화합니다.
update-crypto-policies --set FIPS:AD-SUPPORT
- 경고
- 이 해결방법은 FIPS 준수를 위반할 수 있습니다.
결과적으로 IdM 배포에 RHEL 9 복제본을 추가하면 올바르게 진행됩니다.
RHEL 7 및 RHEL 8 서버에서 누락된 AES HMAC-SHA2-encrypted Kerberos 키를 생성하는 절차를 제공하기 위한 작업이 진행 중입니다. 이렇게 하면 RHEL 9 복제본에서 FIPS 140-3 준수가 수행됩니다. 그러나 Kerberos 키 암호화의 설계로 기존 키를 다른 암호화 유형으로 변환할 수 없기 때문에 이 프로세스는 완전히 자동화되지 않습니다. 유일한 방법은 사용자에게 암호를 업데이트하도록 요청하는 것입니다.
SSSD에서 DNS 이름을 올바르게 등록합니다.
이전 버전에서는 DNS가 잘못 설정된 경우 SSSD가 항상 DNS 이름을 등록하려는 첫 번째 시도에 실패했습니다. 문제를 해결하기 위해 이번 업데이트에서는 새 매개변수 dns_resolver_use_search_list
를 제공합니다. DNS 검색 목록을 사용하지 않도록 dns_resolver_use_search_list = false
를 설정합니다.
Bugzilla:1608496[1]
FIPS 모드에서 RHEL 9.2+ IdM 서버를 사용하여 RHEL 7 IdM 클라이언트 설치 실패
이제 FIPS 지원 RHEL 9.2 이상 시스템에서 TLS 1.2 연결에 TLS 7627)이 필요합니다. 이는 FIPS-140-3 요구 사항에 따라 수행됩니다. 그러나 RHEL 7.9 이상에서 사용할 수 있는
openssl
버전은 Cryostat를 지원하지 않습니다. 결과적으로 RHEL 9.2에서 실행되는 FIPS 지원 IdM 서버를 사용하여 RHEL 7 IdM(Identity Management) 클라이언트를 설치하는 데 실패합니다.
IdM 클라이언트를 설치하기 전에 호스트를 RHEL 8로 업그레이드하는 경우 FIPS 암호화 정책 상단에 NO-ENFORCE- Cryostat 하위 정책을 적용하여 RHEL 9 서버에서 ECDSA 사용에 대한 요구 사항을 제거하여 문제를 해결합니다.
# update-crypto-policies --set FIPS:NO-ENFORCE-EMS
이 제거는 FIPS 140-3 요구 사항에 대해 수행됩니다. 결과적으로 ECDSA를 사용하지 않는 TLS 1.2 연결을 설정하고 수락할 수 있으며 RHEL 7 IdM 클라이언트 설치에 성공합니다.
nsslapd-numlisteners
속성 값이 2
개 이상이면 Directory Server가 실패합니다.
nsslapd-numlisteners
속성 값이 2
보다 크면 Directory Server에서 허용되는 파일 설명자 대신 수신 대기 파일 설명자를 닫을 수 있습니다. 결과적으로 일정 시간이 지나면 Directory Server가 일부 포트에서 수신 대기를 중지하고 실패합니다.
이 문제를 해결하려면 nsslapd-numlisteners
특성 값을 1
로 설정합니다.
Jira:RHEL-17178[1]
11.12. 데스크탑
RHEL 9로 업그레이드한 후 VNC가 실행되지 않음
RHEL 8에서 RHEL 9로 업그레이드한 후 이전에 활성화된 경우에도 VNC 서버가 시작되지 않습니다.
이 문제를 해결하려면 시스템 업그레이드 후 vncserver
서비스를 수동으로 활성화합니다.
# systemctl enable --now vncserver@:port-number
결과적으로 VNC가 활성화되고 모든 시스템 부팅 후 예상대로 시작됩니다.
사용자 생성 화면이 응답하지 않음
그래픽 사용자 인터페이스를 사용하여 RHEL을 설치할 때 사용자 생성 화면이 응답하지 않습니다. 결과적으로 설치 중에 사용자를 생성하는 것이 더 어렵습니다.
이 문제를 해결하려면 다음 솔루션 중 하나를 사용하여 사용자를 생성합니다.
- VNC 모드에서 설치를 실행하고 VNC 창의 크기를 조정합니다.
- 설치 프로세스를 완료한 후 사용자를 생성합니다.
Jira:RHEL-11924[1]
WebKitGTK가 IBM Z에 웹 페이지를 표시하지 못했습니다
IBM Z 아키텍처에 웹 페이지를 표시하려고 할 때 WebKitGTK 웹 브라우저 엔진이 실패합니다. 웹 페이지는 비워 두고 WebKitGTK 프로세스가 예기치 않게 종료됩니다.
결과적으로 WebKitGTK를 사용하여 다음과 같은 웹 페이지를 표시하는 애플리케이션의 특정 기능을 사용할 수 없습니다.
- Evolution 메일 클라이언트
- GNOME 온라인 계정 설정
- GNOME Help 애플리케이션
11.13. 그래픽 인프라
NVIDIA 드라이버는 X.org로 되돌릴 수 있습니다
특정 조건에서 독점 NVIDIA 드라이버는 Wayland 디스플레이 프로토콜을 비활성화하고 X.org 디스플레이 서버로 되돌립니다.
- NVIDIA 드라이버의 버전이 470보다 낮은 경우
- 시스템이 하이브리드 그래픽을 사용하는 랩탑인 경우.
- 필요한 NVIDIA 드라이버 옵션을 활성화하지 않은 경우
또한 Wayland는 활성화되어 있지만 NVIDIA 드라이버 버전이 510 미만이면 기본적으로 데스크탑 세션에서 X.org를 사용합니다.
Jira:RHELPLAN-119001[1]
Night Light는 NVIDIA와 함께 Wayland에서 사용할 수 없습니다.
시스템에서 독점 NVIDIA 드라이버가 활성화되면 Wayland 세션에서 GNOME의 Night Light 기능을 사용할 수 없습니다. NVIDIA 드라이버는 현재 Night Light 를 지원하지 않습니다.
Jira:RHELPLAN-119852[1]
X.org 구성 유틸리티는 Wayland에서 작동하지 않음
화면을 조작하는 X.org 유틸리티는 Wayland 세션에서 작동하지 않습니다. 특히 xrandr
유틸리티는 해상도, 회전 및 레이아웃 처리 방법이 다르기 때문에 Wayland에서 작동하지 않습니다.
Jira:RHELPLAN-121049[1]
11.14. Red Hat Enterprise Linux 시스템 역할
firewalld.service
가 마스크된 경우 RHEL 시스템
역할을 사용하여 실패합니다.
firewalld.service
가 RHEL 시스템에서 마스킹되면 방화벽
RHEL 시스템 역할이 실패합니다. 이 문제를 해결하려면 firewalld.service
를 마스킹 해제하십시오.
systemctl unmask firewalld.service
환경 이름으로 시스템을 등록할 수 없음
rhc
시스템 역할은 rhc_environment
에 환경 이름을 지정할 때 시스템을 등록하지 못합니다. 이 문제를 해결하려면 등록하는 동안 환경 이름 대신 환경 ID를 사용합니다.
11.15. 가상화
경우에 따라 https 또는 ssh를 통한 가상 머신 설치 실패
현재 https 또는 ssh 연결을 통해 ISO 소스에서 게스트 운영 체제(OS)를 설치하려고 할 때 virt-install
유틸리티가 실패합니다(예: virt-install --cdrom https://example/path/to/image.iso
). VM(가상 머신)을 생성하는 대신 설명된 작업은 메시지를 모니터링하는 동안 내부 오류(프로세스 종료)로 예
기치 않게 종료됩니다.
마찬가지로, RHEL 9 웹 콘솔을 사용하여 게스트 운영 체제를 설치하는 데 실패하고 https 또는 ssh URL 또는
오류가 표시됩니다.
다운로드 OS
기능을 사용하는 경우 알 수 없는 드라이버 'https'
이 문제를 해결하려면 호스트에 qemu-kvm-block-curl
및 qemu-kvm-block-ssh
를 설치하여 https 및 ssh 프로토콜 지원을 활성화합니다. 또는 다른 연결 프로토콜 또는 다른 설치 소스를 사용합니다.
가상 머신에서 NVIDIA 드라이버를 사용하면 Wayland가 비활성화됨
현재 NVIDIA 드라이버는 Wayland 그래픽 세션과 호환되지 않습니다. 결과적으로 NVIDIA 드라이버를 사용하는 RHEL 게스트 운영 체제는 자동으로 Wayland를 비활성화하고 대신 Xorg 세션을 로드합니다. 이는 주로 다음 시나리오에서 발생합니다.
- NVIDIA GPU 장치를 RHEL VM(가상 머신)에 전달하는 경우
- NVIDIA vGPU 미디어 장치를 RHEL VM에 할당하는 경우
Jira:RHELPLAN-117234[1]
AMD Milan
시스템에서 Milan VM CPU 유형을 사용할 수 없는 경우가 있습니다.
특정 AMD Milan 시스템에서는 Enhanced REP MOVSB(erms
) 및 Fast Short REP MOVSB(fsrm
) 기능 플래그가 기본적으로 BIOS에서 비활성화되어 있습니다. 결과적으로 Milan
CPU 유형을 이러한 시스템에서 사용할 수 없습니다. 또한 다른 기능 플래그 설정이 있는 Milan 호스트 간에 VM 실시간 마이그레이션이 실패할 수 있습니다. 이러한 문제를 해결하려면 호스트의 BIOS에서 수동으로 erms
및 fsrm
을 켭니다.
Bugzilla:2077767[1]
장애 조치 설정이 있는 hostdev
인터페이스는 핫 플러그 해제된 후 핫 플러그할 수 없습니다
실행 중인 VM(가상 머신)에서 장애 조치 구성을 사용하여 hostdev
네트워크 인터페이스를 제거한 후 현재 실행 중인 동일한 VM에 다시 연결할 수 없습니다.
장애 조치 VF가 있는 VM의 실시간 복사 후 마이그레이션 실패
현재 VM에서 VF(가상 기능) 페일오버 기능이 활성화된 장치를 사용하는 경우 실행 중인 VM(가상 머신)을 post-copy가 실패합니다. 이 문제를 해결하려면 복사 후 마이그레이션 대신 표준 마이그레이션 유형을 사용합니다.
호스트 네트워크는 실시간 마이그레이션 중에 VF를 사용하여 VM을 ping할 수 없습니다.
가상 SR-IOV 소프트웨어를 사용하는 VM(가상 기능)과 같이 구성된 VF(가상 기능)를 사용하여 VM(가상 머신)을 실시간 마이그레이션하는 경우 VM의 네트워크가 다른 장치에 표시되지 않으며 ping
과 같은 명령을 통해 VM에 연결할 수 없습니다. 그러나 마이그레이션이 완료되면 문제가 더 이상 발생하지 않습니다.
AVX를 비활성화하면 VM을 부팅할 수 없게 됩니다.
AVX(Advanced Vector Extensions) 지원이 포함된 CPU를 사용하는 호스트 시스템에서 AVX가 명시적으로 비활성화된 VM을 부팅하려고 시도하면 현재 VM에서 커널 패닉이 트리거됩니다.
Bugzilla:2005173[1]
네트워크 인터페이스 재설정 후 Windows VM에서 IP 주소를 얻지 못했습니다
경우에 따라 자동 네트워크 인터페이스를 재설정한 후 Windows 가상 머신이 IP 주소를 얻지 못하는 경우가 있습니다. 결과적으로 VM이 네트워크에 연결되지 못합니다. 이 문제를 해결하려면 Windows 장치 관리자에서 네트워크 어댑터 드라이버를 비활성화하고 다시 활성화합니다.
Windows Server 2016 VM이 vCPU 핫플러그 후 작동하지 않는 경우가 있습니다.
현재 Windows Server 2016 게스트 운영 체제에서 실행 중인 VM(가상 머신)에 vCPU를 할당하면 VM이 예기치 않게 종료되거나 응답하지 않거나 재부팅과 같은 다양한 문제가 발생할 수 있습니다.
다수의 큐를 사용하면 VM이 실패할 수 있습니다.
vTPM(가상 신뢰할 수 있는 플랫폼 모듈) 장치가 활성화되고 다중 대기열 virtio-net 기능이 250개 이상의 큐를 사용하도록 구성된 경우 가상 머신(VM)이 실패할 수 있습니다.
이 문제는 vTPM 장치의 제한으로 인해 발생합니다. vTPM 장치에는 열린 파일 설명자의 최대 수에 하드 코딩된 제한이 있습니다. 모든 새 큐에 대해 여러 파일 설명자가 열리기 때문에 내부 vTPM 제한을 초과하여 VM이 실패할 수 있습니다.
이 문제를 해결하려면 다음 두 가지 옵션 중 하나를 선택합니다.
- vTPM 장치를 계속 활성화하되 250개 미만의 대기열을 사용합니다.
- 250개 이상의 대기열을 사용하도록 vTPM 장치를 비활성화합니다.
Jira:RHEL-13335[1]
NVIDIA 패스스루 장치가 있는 VM에서 중복 오류 메시지
RHEL 9.2 이상 운영 체제가 있는 Intel 호스트 머신을 사용하는 경우 NVDIA GPU 장치를 통해 전달되는 VM(가상 머신)은 다음 오류 메시지를 기록하는 경우가 많습니다.
Spurious APIC interrupt (vector 0xFF) on CPU#2, should never happen.
그러나 이 오류 메시지는 VM 기능에 영향을 미치지 않으며 무시할 수 있습니다. 자세한 내용은 Red Hat knoweldgeBase 를 참조하십시오.
Bugzilla:2149989[1]
일부 Windows 게스트는 AMD EPYC CPU가 있는 호스트에서 v2v 변환 후 부팅되지 않음
virt-v2v
유틸리티를 사용하여 Windows 11 또는 Windows Server 2022를 게스트 OS로 사용하는 VM(가상 머신)을 변환한 후 현재 VM이 부팅되지 않습니다. 이는 AMD EPYC 시리즈 CPU를 사용하는 호스트에서 발생합니다.
Bugzilla:2168082[1]
호스트에서 OVS 서비스를 다시 시작하면 실행 중인 VM에서 네트워크 연결이 차단될 수 있습니다.
OVS(Open vSwitch) 서비스가 호스트에서 다시 시작되거나 중단되면 이 호스트에서 실행 중인 VM(가상 머신)은 네트워킹 장치의 상태를 복구할 수 없습니다. 결과적으로 VM이 패킷을 수신하지 못할 수 있습니다.
이 문제는 virtio
네트워킹 스택에서 패키징된 virtqueue 형식을 사용하는 시스템에만 영향을 미칩니다.
이 문제를 해결하려면 virtio
네트워킹 장치 정의에서 packed=off
매개 변수를 사용하여 패키징된 virtqueue를 비활성화합니다. 패키징된 virtqueue가 비활성화된 상태에서 네트워킹 장치의 상태는 RAM에서 복구할 수 있습니다.
중단된 VM 마이그레이션 복구에 실패할 수 있습니다.
VM(가상 머신)의 복사 후 마이그레이션이 중단되고 수신되는 동일한 포트에서 즉시 다시 시작되면 마이그레이션이 실패할 수 있습니다. 이미 사용 중인 주소
이 문제를 해결하려면 복사 후 마이그레이션을 다시 시작하거나 마이그레이션 복구를 위해 다른 포트로 전환하기 전에 10초 이상 기다립니다.
AMD EPYC CPU에서 NUMA 노드 매핑이 제대로 작동하지 않음
QEMU는 AMD EPYC CPU에서 NUMA 노드 매핑을 올바르게 처리하지 않습니다. 결과적으로 NUMA 노드 구성을 사용하는 경우 이러한 CPU가 있는 VM(가상 머신)의 성능에 부정적인 영향을 미칠 수 있습니다. 또한 VM에는 부팅 중에 다음과 유사한 경고가 표시됩니다.
sched: CPU #4's llc-sibling CPU #3 is not on the same node! [node: 1 != 0]. Ignoring dependency. WARNING: CPU: 4 PID: 0 at arch/x86/kernel/smpboot.c:415 topology_sane.isra.0+0x6b/0x80
이 문제를 해결하려면 NUMA 노드 구성에 AMD EPYC CPU를 사용하지 마십시오.
VM 마이그레이션 중 NFS 실패로 인해 마이그레이션 실패 및 소스 VM 코어 덤프
현재 VM(가상 머신) 마이그레이션 중에 NFS 서비스 또는 서버가 종료되면 다시 실행을 시작할 때 소스 VM의 QEMU가 NFS 서버에 다시 연결할 수 없습니다. 결과적으로 마이그레이션이 실패하고 소스 VM에서 코어dump가 시작됩니다. 현재는 사용할 수 있는 해결방법이 없습니다.
PCIe ATS 장치는 Windows VM에서 작동하지 않음
Windows 게스트 운영 체제를 사용하여 VM(가상 머신)의 XML 구성에서 PCIe 주소 변환 서비스(ATS) 장치를 구성할 때 게스트는 VM을 부팅한 후 ATS 장치를 활성화하지 않습니다. Windows는 현재 virtio
장치에서 ATS를 지원하지 않기 때문입니다.
자세한 내용은 Red Hat KnowledgeBase 를 참조하십시오.
virsh blkiotune --weight
명령이 올바른 cgroup I/O 컨트롤러 값을 설정하지 못했습니다.
현재 virsh blkiotune --weight
명령을 사용하여 VM weight가 예상대로 작동하지 않습니다. 이 명령은 cgroup I/O 컨트롤러 인터페이스 파일에 올바른 io.bfq.weight
값을 설정하지 못합니다. 현재는 해결방법이 없습니다.
NVIDIA A16 GPU로 VM을 시작하면 호스트 GPU가 작동하지 않는 경우가 있습니다.
현재 NVIDIA A16 GPU 패스스루 장치를 사용하는 VM을 시작하면 경우에 따라 호스트 시스템의 NVIDIA A16 GPU 물리적 장치가 작동하지 않습니다.
이 문제를 해결하려면 하이퍼바이저를 재부팅하고 GPU 장치의 reset_method
를 버스로
설정합니다.
# echo bus > /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method # cat /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method bus
자세한 내용은 Red Hat 지식베이스를 참조하십시오.
Jira:RHEL-7212[1]
FIFO 스케줄러가 있는 RT VM은 부팅할 수 없습니다
현재 vCPU 스케줄러의 fifo
설정을 사용하도록 실시간(RT) 가상 머신(VM)을 설정한 후 부팅을 시도할 때 VM이 응답하지 않습니다. 대신 VM에 게스트가 디스플레이(yet) 오류가 초기화되지 않았습니다
.
Jira:RHEL-2815[1]
스토리지 오류로 인해 Windows VM이 응답하지 않을 수 있음
Windows 게스트 운영 체제를 사용하는 VM(가상 머신)에서 I/O 로드가 높은 경우 시스템이 응답하지 않는 경우도 있습니다. 이 경우 시스템은 viostor Reset to device, \Device\RaidPort3 오류가 발생했습니다
.
Jira:RHEL-1609[1]
특정 PCI 장치가 있는 Windows 10 VM이 부팅 시 응답하지 않을 수 있음
현재 로컬 디스크 백엔드가 VM에 연결된 virtio-win-scsi
PCI 장치가 VM에 연결된 경우 Windows 10 게스트 운영 체제를 사용하는 VM(가상 머신)이 부팅 중에 응답하지 않을 수 있습니다. 이 문제를 해결하려면 multi_queue
옵션이 활성화된 VM을 부팅합니다.
Jira:RHEL-1084[1]
virtio-win 드라이버용 virtio-win-guest-tool의 복구 기능이 작동하지 않음
현재 virtio-win
드라이버(예: Virtio Cryostatoon 드라이버)에 virtio-win-guest-tool
의 복구
버튼을 사용할 때 버튼에는 영향을 미치지 않습니다. 결과적으로 게스트에서 제거된 후에는 드라이버를 다시 설치할 수 없습니다.
Jira:RHEL-1517[1]
메모리 balloon 장치가 설정된 Windows 11 VM은 재부팅 중에 예기치 않게 종료될 수 있습니다.
현재 Windows 11 게스트 운영 체제 및 메모리 풍선 장치를 사용하는 VM(가상 머신)을 재부팅하면 DRIVER POWER STAT FAILURE
blue-screen 오류와 함께 실패합니다.
Jira:RHEL-935[1]
네트워크 로드가 높은 Windows 11 또는 Windows Server 2022 VM 마이그레이션에 실패하는 경우가 있습니다.
Windows Server 2022 또는 Windows 11을 게스트 운영 체제로 사용하는 VM(가상 머신)을 실시간 마이그레이션하면 마이그레이션이 응답하지 않거나 팩이 높은 손실의 영향을 받는 경우 예기치 않게 종료될 수 있습니다.
Jira:RHEL-2316[1]
경우에 따라 postcopy VM 마이그레이션을 다시 시작할 수 없습니다.
현재 VM(가상 머신)의 postcopy 마이그레이션을 수행할 때 마이그레이션의 RECOVER 단계에서 프록시 네트워크 오류가 발생하면 VM이 응답하지 않고 마이그레이션을 다시 시작할 수 없습니다. 대신 복구 명령은 다음과 같은 오류를 표시합니다.
error: Requested operation is not valid: QEMU reports migration is still running
virtio balloon 드라이버는 Windows 10 VM에서 작동하지 않는 경우가 있습니다.
특정 상황에서는 virtio-balloon 드라이버가 Windows 10 게스트 운영 체제를 사용하는 VM(가상 머신)에서 제대로 작동하지 않습니다. 결과적으로 이러한 VM은 할당된 메모리를 효율적으로 사용하지 못할 수 있습니다.
Windows VM에서 virtio 파일 시스템의 최적의 성능이 있습니다.
현재 Windows 게스트 운영 체제를 사용하는 가상 머신(virtiofs)에 virtio 파일 시스템(virtiofs)이 구성된 경우 VM의 virtiofs 성능은 Linux 게스트를 사용하는 VM에서보다 훨씬 더 심각합니다.
Jira:RHEL-1212[1]
Windows VM에서 스토리지 장치를 핫플러그 해제하는 데 실패할 수 있습니다.
Windows 게스트 운영 체제를 사용하는 VM(가상 머신)에서 VM이 실행 중일 때 스토리지 장치를 제거합니다(장치 핫 언플러그라고도 함). 결과적으로 스토리지 장치는 VM에 연결된 상태로 유지되고 디스크 관리자 서비스가 응답하지 않을 수 있습니다.
Windows VM에 CPU를 핫플러그하면 시스템 오류가 발생할 수 있습니다.
대규모 페이지가 활성화된 Windows VM(가상 머신)에 최대 CPU 수를 핫 플러그로 연결하면 게스트 운영 체제가 다음 중지 오류와 충돌할 수 있습니다.
PROCESSOR_START_TIMEOUT
Windows VM에서 virtio
드라이버 업데이트 실패
Windows 가상 머신(VM)에서 KVM 반가상화(virtio
) 드라이버를 업데이트할 때 업데이트로 인해 마우스의 작동이 중지되고 새로 설치된 드라이버가 서명되지 않을 수 있습니다. 이 문제는
파일의 일부인 virtio
-win.isovirtio-win-guest-tools
패키지에서 설치하여 virtio 드라이버를 업데이트할 때 발생합니다.
이 문제를 해결하려면 Windows 장치 관리자를 사용하여 virtio
드라이버를 업데이트합니다.
Jira:RHEL-574[1]
11.16. 클라우드 환경의 RHEL
Nutanix AHV에서 LVM을 사용하는 RHEL 9 가상 머신을 복제하거나 복원하면 루트가 아닌 파티션이 사라집니다.
Nutanix AHV 하이퍼바이저에서 호스팅되는 VM(가상 머신)에서 RHEL 9 게스트 운영 체제를 실행하는 경우 스냅샷에서 VM을 복원하거나 VM 복제로 인해 게스트가 LVM(Logical Volume Management)을 사용하는 경우 VM의 루트가 아닌 파티션이 사라집니다. 결과적으로 다음과 같은 문제가 발생합니다.
- 스냅샷에서 VM을 복원하면 VM을 부팅할 수 없으며 대신 긴급 모드로 전환됩니다.
- 복제로 생성된 VM은 부팅할 수 없으며 대신 긴급 모드로 전환됩니다.
이러한 문제를 해결하려면 VM의 긴급 모드에서 다음을 수행합니다.
-
LVM 시스템 장치 파일 제거:
rm /etc/lvm/devices/system.devices
-
LVM 장치 설정 다시 생성: Cryo
statimportdevices -a
- VM 재부팅
이렇게 하면 복제 또는 복원된 VM이 올바르게 부팅될 수 있습니다.
또는 VM을 복제하거나 VM 스냅샷을 생성하기 전에 문제가 발생하지 않도록 하려면 다음을 수행합니다.
-
/etc/lvm/lvm.conf
파일에서use_devicesfile = 0
행의 주석을 제거합니다. - VM 재부팅
Bugzilla:2059545[1]
ESXi에서 RHEL 9 게스트를 사용자 정의하면 네트워킹 문제가 발생하는 경우가 있습니다.
현재 VMware ESXi 하이퍼바이저에서 RHEL 9 게스트 운영 체제를 사용자 정의하면 NetworkManager 키 파일에서 올바르게 작동하지 않습니다. 결과적으로 게스트가 키 파일을 사용하는 경우 IP 주소 또는 게이트웨이와 같은 잘못된 네트워크 설정이 됩니다.
자세한 내용 및 해결 방법은 VMware 기술 자료 를 참조하십시오.
Bugzilla:2037657[1]
cloud-init
에서 프로비저닝하고 NFSv3 마운트 항목으로 구성된 경우 Azure의 RHEL 인스턴스가 부팅되지 않음
현재 Microsoft Azure 클라우드 플랫폼에서 RHEL VM(가상 머신)을 부팅하면 VM이 cloud-init
툴에 의해 프로비저닝되고 VM의 게스트 운영 체제에 /etc/fstab
파일에 NFSv3 마운트 항목이 있는 경우 실패합니다.
Bugzilla:2081114[1]
VMware 호스트의 RHEL 가상 머신에서 고정 IP 설정이 작동하지 않음
현재 RHEL을 VMware 호스트에서 VM(가상 머신)의 게스트 운영 체제로 사용하는 경우 DatasourceOVF 기능이 올바르게 작동하지 않습니다. 결과적으로 cloud-init
유틸리티를 사용하여 VM의 네트워크를 고정 IP로 설정한 다음 VM을 재부팅하면 VM 네트워크가 DHCP로 변경됩니다.
이 문제를 해결하려면 VMware 기술 자료 를 참조하십시오.
kmemleak
옵션이 활성화된 경우 대규모 VM이 디버그 커널에 부팅되지 않을 수 있습니다.
RHEL 9 VM(가상 머신)을 디버그 커널에 부팅할 때 머신 커널이 kmemleak=on
인수를 사용하는 경우 다음 오류로 인해 부팅이 실패할 수 있습니다.
Cannot open access to console, the root account is locked. See sulogin(8) man page for more details. Press Enter to continue.
이 문제는 부팅 순서에서 더 많은 시간을 소비하기 때문에 주로 대규모 VM에 영향을 미칩니다.
이 문제를 해결하려면 시스템에서 /etc/fstab
파일을 편집하고 /boot 및 /
마운트 지점에 시간 초과 옵션을 추가합니다. 예를 들면 다음과 같습니다.
boot
/efi
UUID=e43ead51-b364-419e-92fc-b1f363f19e49 /boot xfs defaults,x-systemd.device-timeout=600,x-systemd.mount-timeout=600 0 0 UUID=7B77-95E7 /boot/efi vfat defaults,uid=0,gid=0,umask=077,shortname=winnt,x-systemd.device-timeout=600,x-systemd.mount-timeout=600 0 2
Jira:RHELDOCS-16979[1]
11.17. 지원 관련 기능
IBM Power Systems, Little Endian에 대한 보고서
실행 시간 초과
IBM Power Systems, Little Endian with hundreds or thousands of CPUs에서 sos report
명령을 실행할 때 /sys/devices/system/cpu
디렉터리의 대규모 콘텐츠를 수집할 때 프로세서 플러그인은 기본 시간 초과 300초에 도달합니다. 이 문제를 해결하려면 그에 따라 플러그인의 시간 초과를 늘립니다.
- 일회성 설정의 경우 다음을 실행합니다.
# sos report -k processor.timeout=1800
-
영구적으로 변경하려면
/etc/sos/sos.conf
파일의[plugin_options]
섹션을 편집합니다.
[plugin_options] # Specify any plugin options and their values here. These options take the form # plugin_name.option_name = value #rpm.rpmva = off processor.timeout = 1800
예제 값은 1800으로 설정됩니다. 특정 시간 제한 값은 특정 시스템에 따라 크게 달라집니다. 플러그인의 시간 제한을 적절하게 설정하려면 다음 명령을 실행하여 시간 초과 없이 하나의 플러그인을 수집하는 데 필요한 시간을 먼저 추정할 수 있습니다.
# time sos report -o processor -k processor.timeout=0 --batch --build
Bugzilla:1869561[1]
11.18. 컨테이너
이전 컨테이너 이미지 내에서 systemd 실행이 작동하지 않음
이전 컨테이너 이미지(예: centos:7
)에서 systemd를 실행하면 작동하지 않습니다.
$ podman run --rm -ti centos:7 /usr/lib/systemd/systemd Storing signatures Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted [!!!!!!] Failed to mount API filesystems, freezing.
이 문제를 해결하려면 다음 명령을 사용하십시오.
# mkdir /sys/fs/cgroup/systemd # mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd # podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd
Jira:RHELPLAN-96940[1]
부록 A. 구성 요소별 티켓 목록
이 문서에는 Bugzilla 및 JIRA 티켓이 기재되어 있습니다. 링크는 티켓을 설명하는 이 문서의 릴리스 노트로 이어집니다.
부록 B. 버전 내역
0.1-9
2024년 4월 18일 Gabriela Fialová (gfialova@redhat.com)
- 개선된 RHEL-19142 (네트워크)가 추가되었습니다.
0.1-8
2024년 4월 11일 Gabriela Fialová (gfialova@redhat.com)
- 기능 개선 BZ#1513934 (IdM) 추가
0.1-7
2024년 3월 14일 Gabriela Fialová (gfialova@redhat.com)
- 알려진 문제 JIRA 추가:RHEL-25967 (커널)
0.1-6
Mon Mar 04 2024, Gabriela Fialová (gfialova@redhat.com)
- 버그 수정 Jira:SSSD-6096 (Identity Management)이 추가되었습니다.
0.1-5
2024년 2월 28일 Gabriela Fialová (gfialova@redhat.com)
- 버그 수정 RHEL-8171 (Storage)에 대해 알려진 문제가 업데이트되었습니다.
0.1-4
2024년 2월 7일 Lucie Vaová (lvarakova@redhat.com)
- 새로운 기능 RHEL-14694 (네트워크)가 추가되었습니다.
0.1-3
2024년 2월 1일 Gabriela Fialová (gfialova@redhat.com)
- KI BZ#1834716 (Security) 추가
- 업데이트된 기능 중단 RHELDOCS-16756 (컨테이너 툴)
0.1-2
Mon Jan 29 2024, Gabriela Fialová (gfialova@redhat.com)
- 버그 수정 RHELPLAN-157337 (Security) 추가
0.1-1
Thu Jan 2024, Lenka Špačková (lspackova@redhat.com)
- Python RHELDOCS-17369 (Dynamic 프로그래밍 언어, 웹 및 데이터베이스 서버)와 관련된 개선 사항이 추가되었습니다.
0.1-0
2024년 1월 10일 Gabriela Fialová (gfialova@redhat.com)
- 더 이상 사용되지 않는 기능 RHELDOCS-17380 (Security) 추가
0.0-9
2024년 1월 2일 Gabriela Fialová (gfialova@redhat.com)
- 기능 강화에 대한 업데이트된 설명 BZ#2184403
0.0-8
2023년 11월 23일 Gabriela Fialová (gfialova@redhat.com)
- 추가 KI RHEL-8354 (installer)
0.0-7
2023년 11월 22일 Gabriela Fialová (gfialova@redhat.com)
- Add IdM KI RHEL-17178
0.0-6
2023년 11월 21일, David V#159enilek (dvozenil@redhat.com)
- 시스템 역할 RN BZ#2211723,BZ#2218204,BZ#2186057추가
0.0-5
2023년 11월 20일, Jana Heves (jsvarova@redhat.com)
- KI RHEL-15404 sst_kernel_generalists 추가
0.0-4
2023년 11월 19일, Filip>-<zelka (fhanzelk@redhat.com)
- IdM RHELDOCS-17011에 BF 추가
0.0-3
Thu November 16 2023, Marek Suchnek (msuchane@redhat.com)
- Inkscape 및 LibreOffice Flatpak RHELDOCS-17102사용 중단
0.0-2
2023년 11월 16일 Lenka Cryostatková (lspackova@redhat.com)
-
Node.js 20
이 이제 완전히 지원됩니다 (BZ#2186717).
-
0.0-1
2023년 11월 8일 Gabriela Fialová (gfialova@redhat.com)
- Red Hat Enterprise Linux 9.3 릴리스 노트 릴리스 정보.
0.0-0
2023년 9월 27일 Gabriela Fialová (gfialova@redhat.com)
- Red Hat Enterprise Linux 9.3 베타 릴리스 노트 릴리스.