RHEL 9.6 Release Note

[Prolog]

Redhat Enterprise Linux 9.6 버전에서 구현된 새로운 기능 및 Bug fix, Known Issues 등을 설명합니다. Redhat Documentation 에서 제공하는 내용 중 선별하여 작성하였습니다. (Rhel 9.6 Release Note)

  1. 새로운 기능

1.1. 보안

  • pcsd 에서 –disable-polkit 옵션 제공

pcsd 는 pacemaker 클러스터를 관리하는 데 사용되는 데몬입니다.disable-polkit 옵션으로 pcsd 서비스를 시작하여 PolicyKit 권한 부여 프레임워크 로드를 비활성화 할 수 있습니다. polkit 없이 pcsd 를 실행하면 초기 RAM 디스크와 같은 제한된 환경에서 PKCS#11 장치에 액세스할 수 있습니다.

※PKCS#11 은 하드웨어 보안 모듈(HSM)이나 스마트 카드와 같은 암호화 하드웨어 장치와 상호 작용하기 위한 표준 API 입니다.

결과적으로 Clevis 복호화 클라이언트는 PKCS#11 장치를 사용하여 부팅 시 LUKS 암호화 볼륨을 자동으로 잠금 해제할 수 있습니다.

 

  • SSH 에서 SSH 로그인 오류 메시지에 대한 추가 세부 정보가 포함된 링크 제공

SSH 접속 시도 실패 시 초기 오류가 발생하는 경우 ssh 명령줄 툴에서는 일반적인 오류 메시지 및 해결 단계에 대한 추가 세부 정보가 포함된 Red Hat 고객 포털 페이지에 대한 링크를 제공합니다.

대화형 모드를 사용할 때 SSH 로그인 문제 해결에 도움이 됩니다.

rhel 9.6

 

  • PKCS-tool 에 오브젝트 URI 표시

pkcs11-tool 은 PKCS#11 표준을 따르는 하드웨어 보안 토큰을 관리하고 사용하는 명령줄 유틸리티입니다. pkcs11-tool -L 및 pkcs11-tool -O 명령 출력에 uri: 필드가 포함됩니다. PKCS#11 장치에서 LUKS 암호화 드라이브를 자동으로 잠금 해제하기 위해 pkcs11 Clevis 핀을 구성할 때 URI 정보를 사용할 수 있습니다.

 

 

  • CBC 암호는 이제 crypto-policies 에서 차단할 수 있게 되었습니다

crypto-policies 는 RHEL 시스템 전반에 걸쳐 암호화 설정을 관리하는 프레임워크입니다. crypto-policies 는 openssl -CBC CipherString 지시문을 사용합니다.

결과적으로 crypto-policies 에서 CBC 암호화 방식을 활성화하지 않으면 OpenSSL 에서 CBC 암호화 방식이 비활성화됩니다.

  • 새로운 Keylime 정책 관리 도구

새로운 keylime-policy 툴은 Keylime 런타임 정책과 측정된 부팅  정책의 모든 관리 작업을 통합하고 정책 생성 성능을 향상시킵니다.

 

  • SELinux 는 특정 타입을 /dev/hfi1_0 에 할당합니다

SELinux 정책의 /dev/hfi1_0 장치에 hfi1_device_t 타입이 할당됩니다.

결과적으로 SELinux 는 장치에 대한 액세스를 적절하게 제어할 수 있습니다.

 

  • SELinux 정책에 추가로 제한되는 서비스

다음 systemd 서비스를 제한하는 규칙을 SELinux 정책에 추가합니다.

iio-sensor-proxy

power-profiles-daemon

switcheroo-control

samba-bgqd

이로 인해 해당 서비스들은 더 이상 SELinux 레이블 unconfined_service_t 로 실행되지 않으며, 이는 CIS Server Level 2 benchmark “SELinux 에 의해 제한되지 않은 데몬이 없도록 보장” 규칙을 위반했던 사항입니다. 이제 SELinux Enforcing 모드에서도 정상적으로 실행됩니다.

  • Keylime 에는 취소 알림을 위해 HTTPS 가 필요합니다

Keylime 구성 요소를 사용하려면 HTTP 대신 취소 알림 Webhook 에 더 안전한 HTTPS 프로토콜을 사용해야 합니다. 결과적으로 Keylime 검증기에는 이제 취소 알림 Webhook 서버 CA 인증서가 필요합니다.

trusted_server_ca 구성 옵션에 추가하거나 시스템 신뢰 저장소에 추가할 수 있습니다.

1.2. 소프트웨어 관리

  • DNF Automatic 는 업데이트 실패에 대해 사용자에게 알릴 수 있습니다

/etc/dnf/automatic.conf 설정 파일의 [emitters] 섹션에 send_error_messages 부울 옵션이 추가되었습니다.

결과적으로 send_error_messages 를 yes 로 설정하면 DNF Automatic tool 에서 emit_via 옵션에 구성된 emitter 를 사용하여 실패한 자동 업데이트를 알립니다.

이 기능은 기본적으로 비활성화되어 있습니다.

 

 

1.3. 네트워킹

  • NetworkManager 에서 NIC에서 FEC 인코딩 구성 지원

NetworkManager 는 NIC 에서 FEC(전방향 오류 수정) 인코딩 지원을 지원합니다. NIC 에서 FEC 인코딩을 비활성화하면 중복 데이터 전송 오버헤드와 네트워크 트래픽의 대기 시간이 단축됩니다.

# nmcli con mod 커넥션이름 ethtool.fec off

# nmcli con down 커넥션이름

# nmcli con up 커넥션이름

# ethtool –show-fec 디바이스이름

 

  • NetworkManager 는 DNS 서버에 대한 경로를 자동으로 추가할 수 있습니다

ipv4.routed-dns 매개변수를 사용하면 NetworkManager 를 구성하여 네임 서버에 올바른 네트워크 인터페이스를 통해서만 접근할 수 있도록 할 수 있습니다. NetworkManager 의 systemd-resolved 및 dnsmasq 백엔드 DNS 서비스를 제외하고는 다른 백엔드 서비스는 네임 서버를 올바른 네트워크 인터페이스에 바인딩하는 기능을 지원하지 않습니다.

따라서 NetworkManager 를 사용하여 관련 네트워크 인터페이스를 통해 네임 서버에 대한 명시적 경로를 추가할 수 있습니다.

 

 

  • NetworkManager 는 연결 설정에 ip-ping-addresses 및 ip-ping-timeout 속성을 지원원

ip-ping-addresses 에 IP 주소를 추가하고 ip-ping-timeout 설정으로 타임아웃을 설정할 수 있습니다. 결과적으로 대상 네트워크에 도달한 후에만 NFS(네트워크 파일 시스템)와 같은 원격 서비스가 마운트되도록 할 수 있습니다.

 

 

  • 본딩 장치는 ESN 을 통한 IPsec HW 오프로드 지원

이전에는 본딩 장치에서 ESN(Extended Sequence Numbers)를 사용한 IPsec HW 오프로드 기능을 지원하지 않았습니다. 결과적으로 HW 오프로드 및 ESN을 사용한 IPsec 설정은 실패했습니다.

※ESN 은 IPsec 에서 사용되는, 데이터 패킷을 위한 시퀀스 번호 공간을 32bit 에서 64bit 로 확장하는 보안 기능입니다.

이번 수정 사항을 통해 본딩 장치에서 ESN을 사용한 IPsec HW 오프로드를 설정할 수 있게 되었습니다. 단, 본딩 포트가 이미 해당 기능을 지원하는 경우에만 가능합니다.

결과적으로 본딩 장치는 IPsec 트래픽을 올바르게 오프로드합니다.

 

 

 

1.4.  커널

  • 시스템 실패를 방지하기 위해 kdump 절차를 확인하는 새로운 통합 테스트

소프트웨어 또는 하드웨어 업데이트 후 kdump 프로시저의 로그 파일을 확인하여 시스템 실패를 방지할 수 있습니다. 출력 로그 파일을 분석한 후 메모리 문제 또는 일부 드라이버의 블랙리스트와 같은 구성 항목을 수정하여 kdump 절차를 검증하고 vmcore 를 생성합니다.

소프트웨어 또는 하드웨어 업데이트 후 시스템 크래시 발생 전에 kdump 절차가 검증되고 수정되도록 보장합니다.

  • IBM Power 에서 NVMf-FC kdump 지원

NVMf-FC kdump 는 kexec-tools 를 실행하기 위한 IBM Power 시스템을 지원합니다. 이를 통해 NVMe 스토리지 장치를 사용하여 파이버 채널 네트워크를 통해 시스템 메모리 덤프를 캡처할 수 있으며, 이는 크래시 덤프 데이터에 대한 고속 및 저지연 스토리지 액세스를 가능하게 합니다.

 

 

 

1.5.  파일 시스템 및 스토리지

  • EROFS 파일 시스템 지원

EROFS 는 임베디드 장치 또는 컨테이너와 같은 다양한 읽기 전용 사용 사례에 적합한 경량 범용 읽기 전용 파일 시스템입니다. 중복 제거 및 투명 압축 기능을 필요로 하는 시나리오를 위해 옵션으로 제공합니다.

  • RHEL 에서 snapm 사용 가능

스냅샷 관리자(snapm)는 시스템 상태 스냅샷을 관리하기 위해 설계된 새로운 구성 요소입니다. 이를 사용하여 업데이트 또는 변경 사항을 롤백하고 이전 시스템 스냅샷으로 부팅할 수 있습니다. 여러 볼륨에서 스냅샷을 관리하고 스냅샷 부팅 및 스냅샷 롤백을 위한 부팅 항목을 구성하는 것은 종종 복잡하고 오류가 발생할 수 있습니다. 스냅샷 관리자는 이러한 일반적인 작업을 자동화하고 Boom Boot Manager 와 원할하게 통합되어 프로세스를 단순화합니다.

시스템 상태의 스냅샷을 쉽게 가져와서 업데이트를 적용하고 필요한 경우 이전 시스템 상태로 되돌릴 수 있습니다.

 

 

  • CIFS 클라이언트는 SMB 공유 아래에 특수 파일을 생성할 수 있는 기능을 제공합니다

공통 인터넷 파일 시스템(CIFS) 클라이언트는 네이티브 서버 메시지 블록(SMB), 네트워크 파일 시스템(NFS) 또는 Windows Subsystem for Linux(WSL) 심볼릭 링크를 생성할 수 있습니다.

새로운 symlink=default|none|native|unix|mfsymlinks|sfu|nfs|wsl 마운트 옵션을 사용하여 심볼릭 링크 생성을 완전히 금지하거나 클라이언트가 생성할 심볼릭 링크 유형을 선택할 수 있습니다.

또한 reparse=default|none|nfs|wsl 마운트 옵션을 사용하여 NFS 또는 WSL 재해석 지점을 통해 문자 장치, 블록 장치, 파이프 및 소켓과 같은 특수 파일을 생성할 수도 있습니다. NT 파일 시스템(NTFS) 볼륨에서 Windows 응용 프로그램이 지원하는 네이티브 Windows 소켓을 생성하려면 nativesocket 마운트 옵션을 사용합니다.

1.6.  High Availability 및 클러스터

  • 단일 pcs 명령을 사용하여 여러 리소스 삭제

업데이트 전,

# pcs resource delete

# pcs resource remove

# pcs stonith delete

# pcs stonith remove

명령어는 오직 한번에 하나의 리소스만 삭제할 수 있었습니다. 이번 업데이트를 통해 이제 단일 명령을 사용하여 여러 리소스를 한 번에 삭제할 수 있습니다.

  • 텍스트, JSON 및 명령 형식으로 클러스터 리소스 태그를 표시하는 새로운 pcs tag 명령 옵션션

# pcs tag [config]

명령에서 다음 사용 사례에 대해 –output-format 옵션을 지원합니다.

  • –output-format=text 를 지정하여 구성된 텍스트를 일반 텍스트 형식으로 표시합니다. 이 옵션의 기본값입니다.
  • –output-format=cmd 를 지정하여 현재 클러스터 태그 구성에서 생성된 명령을 표시합니다. 이러한 명령을 사용하여 다른 시스템에서 태그를 다시 생성할 수 있습니다.
  • –output-format=json 옵션을 지정하여 구성된 태그를 JSON 형식으로 표시합니다. 이는 기계가 해석하기에 적합합니다.

 

 

  • 펜싱 레벨 구성을 JSON 형식 및 pcs 명령어로 내보내기 지원

pcs stonith config 및 pcs stonith level config 명령어는 이제 –output-format= 옵션을 지원하여 펜싱 레벨 구성을 JSON 형식 및 pcs 명령어로 표시합니다.

  • –output-format=cmd 를 지정하면 현재 클러스터 구성에서 생성된 펜싱 레벨을 구성하는 pcs 명령어가 표시됩니다. 이 명령어를 사용하여 다른 시스템에서 구성된 펜싱 레벨을 재구성할 수 있습니다.
  • –output-format=json 을 지정하면 기계가 파싱하기에 적합한 JSON 형식으로 펜싱 레벨 구성이 표시됩니다.

1.7. Red Hat Enterprise Linux System Roles

  • 새로운 system role : aide

Aide 를 사용하여 파일 ,디렉토리 및 시스템 바이너리에 대한 무단 변경 사항을 탐지할 수 있습니다.

이 역할을 통해 다음과 같은 작업을 수행할 수 있습니다:

  • 관리 대상 노드에 aide 패키지 설치
  • /etc/aide.conf 파일 생성 및 관리 대상 노드에 배포
  • AIDE(Advanced Intrusion Detection Environment) 데이터베이스 초기화
  • 관리 대상 노드에서 AIDE 무결성 검사 실행

*role 은 적합한 AIDE 구성 생성 방법을 설명하지 않습니다.

결과적으로 보안, 규정 준수 또는 감사 요구 사항을 해결하기 위해 대규모로 AIDE를 자동화된 방식으로 관리할 수 있습니다.

  • systemd RHEL system role 은 시스템 유닛 외에도 사용자 유닛을 관리할 수 있습니다

systemd_unit_files, systemd_unit_file_templates, systemd_started_units 등에 지정된 각 유닛 파일 또는 유닛에 대해, 해당 파일이나 유닛을 특정 사용자에게 관리되도록 하려면 user: name을 추가할 수 있습니다. 기본값은 시스템 유닛에 사용되는 root입니다.

role 이 관리하는 시스템의 유닛(시스템 및 사용자 유닛 모두 포함)을 가져오기 위해 새로운 반환 변수가 추가되었습니다.

systemd_units_user (dictionary): 각 키는 role 에 전달된 목록 중 하나에 지정된 사용자 이름이며, root도 포함됩니다(root가 지정되지 않은 경우에도). 각 값은 해당 사용자의 systemd 유닛 사전 또는 root의 시스템 유닛 dictionary 입니다.

*이 role 은 새 사용자를 생성하지 않으며, 존재하지 않는 사용자를 지정하면 오류를 반환합니다.

결과적으로 systemd RHEL system role 로 사용자 유닛을 관리할 수 있습니다.

 

 

  • 네트워크 RHEL system role, network_connections 변수에 새 속성 추가 : autoconnect_retries, wait_ip
  • autoconnect_retries : network_connections 역할 변수에 추가된 autoconnect_retries 속성은 자동 연결 실패 후 NetworkManager가 네트워크 연결 재연결을 시도하는 횟수를 구성합니다. 결과적으로 네트워크 RHEL 시스템 역할은 network_connections 변수의 autoconnect_retries 속성을 사용하여 자동 연결 실패 후 자동 재연결 시도 횟수를 구성할 수 있게 합니다. 이 개선 사항은 특히 불안정한 네트워크 환경에서 네트워크 안정성과 성능에 대한 더 큰 제어력을 제공합니다.
  • wait_ip : 이 속성은 특정 IP 스택이 구성되었을 때만 시스템이 네트워크 연결을 활성화된 것으로 간주해야 하는지 여부를 지정합니다. wait_ip 는 다음 값으로 구성할 수 있습니다:

any: 시스템은 어떤 IP 스택이든 구성되면 연결이 활성화된 것으로 간주합니다.

ipv4: 시스템은 IPv4가 구성될 때까지 기다립니다.

ipv6: 시스템은 IPv6이 구성될 때까지 대기합니다.

ipv4+ipv6: 시스템은 IPv4와 IPv6이 모두 구성될 때까지 대기합니다.

결과적으로 네트워크 RHEL system role 은 특정 IP 스택 구성을 기반으로 네트워크 연결을 구성할 수 있게 합니다. 이는 선택한 wait_ip 설정에 따라 IP 주소가 할당되지 않았더라도 연결이 활성화된 상태를 유지할 수 있도록 합니다.

1.8.  Lightspeed

  • RHEL Lightspeed 기반 명령줄 어시스턴트가 RHEL에서 일반 제공됩니다

RHEL Lightspeed 기반 명령줄 어시스턴트는 RHEL 명령줄 내에서 사용할 수 있습니다. 이 어시스턴트를 구동하는 생성형 AI는 RHEL 제품 문서 및 Red Hat Knowledgebase의 정보를 기반으로 훈련되었으며, RHEL을 처음 접하는 사용자와 이미 숙련된 사용자에 관계없이 RHEL 시스템을 보다 쉽게 이해하고 구성하며 문제 해결하는 데 도움을 줄 수 있습니다.

  1. Bug fix

2.1. 보안

  • Audit 이 이제 /usr/lib/modules/ 디렉터리를 참조하는 규칙을 로드합니다

이 업데이트 이전에는 auditd.service에 대해 ProtectKernelModules 옵션이 true로 설정된 경우, 감사 하위 시스템이 /usr/lib/modules/ 디렉터리의 파일을 참조하는 규칙을 로드하지 못했으며 다음과 같은 오류 메시지가 발생했습니다: Error sending add rule data request (No such file or directory). 이번 업데이트로 감사 기능이 해당 규칙도 로드하므로, auditctl -R 또는 augenrules –load 명령어를 사용해 규칙을 재로드할 필요가 없어졌습니다.

※Audit 은 리눅스 시스템에서 보안 감사 및 로그 관리를 담당하는 핵심 서브시스템입니다.

  • SELinux 정책에 qemu-guest-agent의 dac_override 및 dac_read_search 허용 규칙 추가

기존 SELinux 정책에는 qemu-guest-agent의 dac_override 및 dac_read_search 기능 허용 규칙이 없었습니다. 이로 인해 파일 시스템 마운트 지점의 DAC 권한이 root 사용자에게 접근 권한을 부여하지 않을 경우 가상 머신 파일 시스템의 동결 및 해제가 제대로 작동하지 않았습니다. 이번 업데이트로 정책에 누락된 규칙이 추가되었습니다. 그 결과, 일관된 스냅샷 생성에 중요한 qemu-ga 명령어인 fsfreeze가 정상적으로 작동합니다.

2.2. 소프트웨어 관리

  • dnf reposync 사용 시 저장소 메타데이터가 요청된 디렉터리에 직접 저장됩니다

이 업데이트 이전에는 dnf reposync 명령어가 저장소 메타데이터 다운로드 시 –norepopath 옵션을 반영하지 않았습니다. 그 결과 메타데이터는 저장소 이름을 따서 명명된 하위 디렉터리에 저장되었습니다. 이번 업데이트로 dnf reposync 명령어가 –norepopath 옵션을 반영하게 되어 저장소 메타데이터가 요청된 디렉터리에 직접 저장됩니다.

2.3. 네트워킹

  • 네트워크 인터페이스 구성이 lldpad 종료 후에도 유지됩니다

이번 업데이트 이전에는 Link Layer Discovery Protocol Agent Daemon(lldpad)이 systemd에 의해 또는 수동으로 종료될 때 네트워크 인터페이스 구성이 제거되었습니다. 이번 업데이트는 lldpad 소스 코드를 수정하여 서비스 종료 후 인터페이스 구성이 재설정되지 않도록 합니다.

※LLDP 는 네트워크 장치들이 서로의 정보를 자동으로 탐색하고 공유하는 데 사용하는 표준 프로토콜입니다.

2.4. 파일 시스템 및 스토리지

  • multipathd는 ontap prioritizor 에서 발생하는 오류로 인해 더 이상 충돌하지 않습니다

이전 업데이트에서는 multipathd 가 지원되지 않는 경로에서 ontap prioritizer 를 사용하도록 구성되었을 때 충돌했습니다. 이는 ontap prioritizer 가 NetApp 스토리지 어레이에서만 작동하기 때문입니다. 이 오류는 ontap prioritizer 의 오류 로깅 코드에 있는 버그로 인해 발생했으며, 이 버그는 오류 메시지 버퍼를 오버플로우시켰습니다. 이번 업데이트를 통해 오류 로깅 코드가 수정되었으며, 이제 multipathd 는 ontap prioritizer 에서 발생하는 오류로 인해 더 이상 충돌하지 않습니다.

  • Native NVMe 멀티패스 기능은 enable_foreign 이 설정되어 Native 멀티패스 NVMe 장치를 모니터링할 때 더 이상 메모리 누수를 일으키지 않습니다

이 업데이트 이전에는 enable_foreign 구성 매개변수가 Native 멀티패스 NVMe 장치를 모니터링하도록 설정된 경우 Native NVMe 멀티패스 기능을 활성화하면 메모리 누수가 발생했습니다. 이번 업데이트를 통해 멀티패스 모니터링 코드에서 메모리 누수 문제가 수정되었습니다. 그 결과, multipathd 는 이제 메모리 사용량을 증가시키지 않고도 Native 멀티패스 NVMe 장치를 모니터링할 수 있습니다.

  • 시스템이 /etc/fstab에 NVMe-FC 장치를 마운트 포인트로 추가할 때 정상적으로 부팅됩니다

이전에는 nvme-cli nvmf-autoconnect systemd 서비스의 Known Issue 로 인해, NVMe-FC(Non-volatile Memory Express over Fibre Channel) 장치를 /etc/fstab 파일의 마운트 포인트로 추가할 때 시스템이 부팅에 실패했습니다. 그 결과 시스템이 비상 모드로 진입했습니다. 이번 업데이트를 통해 NVMe-FC 장치를 마운트할 때 시스템이 문제없이 부팅됩니다.

2.5. High Availability 및 클러스터

  • 만료된 규칙이 있는 리소스 제약 조건이 더 이상 표시되지 않습니다

이 업데이트 이전에는 pcs constraint location config resources 명령어가 출력에 만료된 규칙이 있는 리소스 제약 조건을 표시했습니다. 이번 업데이트로 –all 옵션을 지정하지 않을 경우 해당 명령어는 만료된 규칙이 있는 제약 조건을 더 이상 표시하지 않습니다.

  • 단일 인스턴스로 실행 중인 복제 리소스의 상태가 정상적으로 표시됩니다

이전 업데이트에서는 실행 중인 인스턴스가 하나뿐인 클러스터 리소스 복제의 인스턴스 상태를 조회할 때 pcs status query 명령어가 오류 메시지를 표시했습니다. 이번 업데이트로 해당 명령어는 리소스 상태를 정상적으로 보고합니다.

  • 중단된 Pacemaker 원격 연결의 성공적인 복구

이 업데이트 이전에는 초기 연결의 TLS 핸드셰이크 단계에서 Pacemaker 원격 노드와 해당 연결을 호스팅하는 클러스터 노드 간의 네트워크 통신이 중단될 경우, 연결이 차단되어 다른 클러스터 노드에서 복구되지 못하는 경우가 있었습니다. 이번 업데이트로 TLS 핸드셰이크가 비동기식으로 처리되며 원격 연결이 다른 곳에서 성공적으로 복구됩니다.

2.6. Red Hat Enterprise Linux System Roles

  • 새로운 sshd_allow_restart 변수를 통해 필요 시 sshd 서비스를 재시작할 수 있습니다

이 업데이트 이전에는 관리 대상 노드에서 sshd RHEL system role 이 필요한 경우 sshd 서비스를 재시작하지 않았습니다. 이로 인해 `/etc/sysconfig/` 디렉토리의 구성 파일 및 환경 파일과 관련된 일부 변경 사항이 적용되지 않았습니다. 이 문제를 해결하기 위해 sshd_allow_restart(부울, 기본값 true) 변수가 도입되어 관리 대상 노드에서 필요 시 sshd 서비스를 재시작합니다. 그 결과, sshd RHEL system role 은 이제 모든 변경 사항을 올바르게 적용하고 sshd 서비스가 실제로 해당 변경 사항을 사용하도록 보장합니다.

  • 네트워크 RHEL system role 은 영구 MAC 주소 일치를 우선시합니다

다음 조건이 모두 충족된 경우:

  • 네트워크 연결이 상위 및 가상 근거리 통신망(VLAN) 연결 구성을 위해 인터페이스 이름과 미디어 액세스 제어(MAC) 주소를 모두 지정했습니다.
  • 물리적 인터페이스의 영구 MAC 주소와 현재 MAC 주소가 동일했을 때
  • 네트워킹 구성이 여러 번 적용되었을 때

네트워크 RHEL system role 은 사용자가 지정한 MAC 주소를 sysfs 가상 파일 시스템의 영구 MAC 주소 또는 현재 MAC 주소와 비교했습니다. 이후 역할은 인터페이스 이름이 사용자가 지정한 것과 다르더라도 현재 MAC 주소와의 일치를 유효한 것으로 처리했습니다. 결과적으로 “해당 인터페이스가 존재하지 않습니다” 오류가 발생했습니다. 이번 업데이트로 link_info_find() 메서드는 유효하고 사용 가능한 경우 영구 MAC 주소에 의한 링크 일치를 우선시합니다. 영구 MAC을 사용할 수 없는 경우(None 또는 “00:00:00:00:00:00”), 메서드는 현재 MAC 주소 일치로 대체됩니다. 결과적으로 이 변경 사항은 영구 주소가 우선적으로 사용되도록 보장하면서 영구 주소가 없는 인터페이스에 대한 신뢰할 수 있는 대체 메커니즘을 유지함으로써 MAC 주소 매칭의 견고성을 향상시킵니다.

  1. Known Issues

3.1. 보안

  • 특정 구문에서 scp는 동일한 위치로 복사된 파일 내용을 지웁니다

scp 유틸리티가 보안 복사 프로토콜(SCP)에서 더 안전한 SSH 파일 전송 프로토콜(SFTP)로 변경되었습니다. 이로 인해 동일한 위치에서 파일을 복사하면 파일 내용이 삭제됩니다. 이 문제는 다음 구문에 영향을 미칩니다:

# scp localhost:/myfile localhost:/myfile

해결 방법 : 이 구문을 사용하여 소스 위치와 동일한 대상 위치로 파일을 복사하지 않습니다. 다음 구문에서는 문제가 수정되었습니다:

# scp /myfile localhost:/myfile

# scp localhost:~/myfile ~/myfile

  • 기본 SELinux 정책은 제한되지 않은 실행 파일이 자체 스택을 실행 가능하게 할 수 있도록 허용합니다

SELinux 정책에서 selinuxuser_execstack 부울 값의 기본 상태는 활성화되어 있습니다. 이는 제한되지 않은 실행 파일이 자체 스택을 실행 가능하게 할 수 있음을 의미합니다. 실행 파일은 이 옵션을 사용해서는 안 되며, 이는 부실하게 작성된 실행 파일이나 잠재적 공격 가능성을 나타낼 수 있습니다. 그러나 다른 도구, 패키지 및 타사 제품과의 호환성 문제로 인해 Red Hat은 기본 정책에서 이 부울 값을 변경할 수 없습니다. 해당 호환성 측면에 의존하지 않는 시나리오라면, setsebool -P selinuxuser_execstack off 명령어를 입력하여 로컬 정책에서 이 부울 값을 비활성화할 수 있습니다.

3.2. 소프트웨어 관리

  • 로컬 저장소에서 createrepo_c 실행 시 중복된 repodata 파일 생성

로컬 저장소에서 createrepo_c 명령어를 실행하면 repodata 파일의 중복 사본이 생성됩니다. 이 중 하나는 압축된 사본이고 다른 하나는 압축되지 않은 사본입니다.

해결 방법: 해결 방법은 없으나 중복 파일을 안전하게 무시할 수 있습니다. createrepo_c 명령어가 중복 사본을 생성하는 것은 createrepo_c로 생성된 저장소에 의존하는 다른 도구들의 요구사항과 차이점 때문입니다.

3.3. 쉘 및 명령행 툴

  • ifcfg 파일을 사용한 네트워크 인터페이스 이름 변경 실패

RHEL 9에서는 initscripts 패키지가 기본적으로 설치되지 않습니다. 따라서 ifcfg 파일을 사용한 네트워크 인터페이스 이름 변경이 실패합니다.

해결 방법: 이 문제를 해결하려면 udev 규칙을 사용하거나 링크 파일을 통해 인터페이스 이름을 변경할 것을 권장합니다.

권장되는 해결 방법 중 하나를 사용할 수 없는 경우, initscripts 패키지를 설치해야 합니다.

  • sar 및 iostat 유틸리티에서 생성된 %util 열은 유효하지 않습니다

sar 또는 iostat 유틸리티를 사용하여 시스템 사용량 통계를 수집할 때, sar 또는 iostat에서 생성된 %util 열에 유효하지 않은 데이터가 포함될 수 있습니다.

※sar 는 CPU, 메모리, 디스크, 네트워크 등 시스템 자원의 사용 현황을 실시간 또는 주기적으로 기록하여 보여주는 역할을 합니다.

  • RHEL 9에서는 lsb-release 바이너리를 사용할 수 없습니다

/etc/os-release 파일에 포함된 정보는 이전에는 lsb-release 바이너리를 호출하여 확인할 수 있었습니다. 이 바이너리는 redhat-lsb 패키지에 포함되어 있었으나, RHEL 9에서 제거되었습니다. 이제 운영 체제에 대한 정보(배포판, 버전, 코드명 및 관련 메타데이터 등)는 /etc/os-release 파일을 읽어서 확인할 수 있습니다. 이 파일은 Red Hat에서 제공하며, redhat-release 패키지 업데이트 시 변경된 내용이 덮어쓰기됩니다. 파일 형식은 KEY=VALUE이며, 셸 스크립트에서 안전하게 데이터를 소스 처리할 수 있습니다.

3.4. 네트워킹

  • 런타임에 SR-IOV 가상 기능(VF) 수를 줄이면 커널이 패닉 상태에 빠질 수 있습니다

다음 조건이 모두 충족될 경우 Linux 커널이 패닉 상태에 빠질 수 있습니다:

  • 호스트에서 입출력 메모리 관리 장치(IOMMU)가 활성화되어 있습니다.
  • 네트워크 드라이버가 페이지 풀을 사용합니다.
  • 해당 드라이버를 사용하는 네트워크 인터페이스의 단일 루트 I/O 가상화(SR-IOV) 가상 기능(VF) 수를 줄입니다.

해결 방법: 실행 중에 VF 수를 줄이지 않습니다. 시스템을 재부팅하여 모든 인터페이스의 VF 수를 0으로 초기화합니다. 이후 VF 수를 새로 설정할 수 있습니다. VF 수를 늘리는 것은 커널 패닉을 유발하지 않습니다.

  • 키파일 형식의 NetworkManager 프로필에서 기본 게이트웨이 파싱이 실패할 수 있습니다

RHEL 9.6부터, 키파일 형식으로 새 프로필을 생성하거나 기존 프로필을 수정할 경우 NetworkManager는 기본 게이트웨이를 gateway 매개변수에 저장합니다.

[ipv4]
address1=192.0.2.1/24
gateway=19.2.0.2.254
...

[ipv6]
address1=2001:db8:1::fffe/64
gateway=2001:db8:1::fffe
...

RHEL 9.5 및 이전 버전에서는 기본 게이트웨이가 address1 매개변수에 연결되었습니다. 예를 들어:

[ipv4]
address1=192.0.2.1/24,192.0.2.254
...

[ipv6]
address1=2001:db8:1::fffe/64,2001:db8:1::fffe
...

결과적으로, 애플리케이션이 키 파일을 파싱할 경우 기본 게이트웨이를 더 이상 반환하지 않을 수 있습니다. 이 문제를 해결하려면 애플리케이션을 수정하여 두 형식 모두를 지원하도록 합니다.

3.5. 커널

  • dnf를 사용한 최신 실시간 커널 업그레이드는 여러 커널 버전을 병렬로 설치하지 않습니다

dnf 패키지 관리자를 사용해 최신 실시간 커널을 설치하려면 새 커널 버전과 현재 커널 버전을 동시에 유지하기 위해 패키지 종속성을 해결해야 합니다. 기본적으로 dnf는 업그레이드 과정에서 이전 kernel-rt 패키지를 제거합니다.

해결 방법: /etc/yum.conf 구성 파일의 installonlypkgs 옵션에 현재 kernel-rt 패키지를 추가합니다. 예: installonlypkgs=kernel-rt.

installonlypkgs 옵션은 dnf가 사용하는 기본 목록에 kernel-rt를 추가합니다. installonlypkgs 지시문에 나열된 패키지는 자동으로 제거되지 않으므로 여러 커널 버전을 동시에 설치할 수 있습니다.

여러 커널을 설치하는 것은 새로운 커널 버전 작업 시 대체 옵션을 확보하는 방법임을 유의합니다.

  • LUKS 암호화 대상에서 kdump 메커니즘이 vmcore 파일 캡처에 실패합니다

Linux 통합 키 설정(LUKS)으로 암호화된 파티션이 있는 시스템에서 kdump를 실행할 때 시스템은 일정량의 사용 가능한 메모리가 필요합니다. 사용 가능한 메모리가 필요한 양보다 적을 경우 systemd-cryptsetup 서비스가 파티션 마운트에 실패합니다. 결과적으로 두 번째 커널이 LUKS 암호화 대상에서 크래시 덤프 파일을 캡처하지 못합니다.

해결 방법: 권장 crashkernel 값을 조회하고 메모리 크기를 점진적으로 적절한 값으로 증가시킵니다. 권장 crashkernel 값은 필요한 메모리 크기를 설정하는 데 참고 자료로 활용할 수 있습니다.

추정 크래시 커널 값을 출력합니다.

# kdumpctl estimate

crashkernel 값을 증가시켜 필요한 메모리 양을 구성합니다.

# grubby –args=crashkernel=652M –update-kernel=ALL

변경 사항을 적용하려면 시스템을 재부팅합니다.

# reboot

결과적으로 LUKS 암호화 파티션이 있는 시스템에서 kdump가 정상적으로 작동합니다.

  • IBM Power 시스템(ppc64le)에서 io_uring이 활성화된 경우 커널 패닉 발생

ppc64le 시스템은 집중적인 입출력 작업으로 인해 io_uring 커널 매개변수를 사용할 때 커널 패닉이 발생하는 경우가 있습니다. 이로 인해 ppc64le 시스템이 작동 중단되며 시스템 재시작이 필요합니다. 시스템 중단 시 데이터가 손실될 수 있습니다.

해결 방법: 부팅 시 다음 커널 매개변수를 추가하여 io_uring 기능을 비활성화합니다:

module.builtin=io_uring=0

3.6. 파일 시스템 및 스토리지

  • Device Mapper Multipath는 NVMe/TCP에서 지원되지 않습니다

nvme-tcp 드라이버와 함께 Device Mapper Multipath를 사용하면 호출 추적 경고 및 시스템 불안정성이 발생할 수 있습니다. 이 문제를 해결하려면 NVMe/TCP 사용자는 네이티브 NVMe 멀티패스 기능을 활성화하고 NVMe와 함께 device-mapper-multipath 도구를 사용하지 않아야 합니다.

기본적으로 네이티브 NVMe 멀티패스 기능은 RHEL 9에서 활성화되어 있습니다.

  • NVMe 장치용 udev 규칙 변경

일부 벤더의 경우 장치 일련번호 앞에 공백이 있는 경우 디스크 ID 기반 명명 규칙이 변경됩니다. 이는 OPTIONS=”string_escape=replace” 매개변수를 추가하는 NVMe 장치용 udev 규칙 변경 때문입니다.

  • qedi 드라이버 사용 중 커널 패닉 발생

qedi iSCSI 드라이버 사용 시 OS 부팅 후 커널 패닉이 발생합니다. 이 문제를 해결하려면 커널 부팅 명령줄에 kfence.sample_interval=0을 추가하여 kfence 런타임 메모리 오류 감지 기능을 비활성화합니다.

 

  • IOMMU 활성화 시스템 부팅 실패

BNX2I 어댑터 사용 중 AMD 플랫폼에서 입출력 메모리 관리 장치(IOMMU)를 활성화하면, 시스템이 직접 메모리 접근 재매핑(DMAR) 타임아웃 오류로 부팅에 실패합니다.

해결 방법: 커널 명령줄 옵션 iommu=off를 사용하여 부팅 전에 IOMMU를 비활성화합니다. 그 결과 시스템은 오류 없이 부팅됩니다.

  1. 의견

Redhat Enterprise Linux 9.6 에서 가장 눈에 띄는 것은 역시 Lightspeed 라는 기능입니다. AI 를 이용해 복잡한 명령어 사용법이나 시스템 문제 해결 방법 등을 시스템 안에서 질의하고 답변을 받을 수 있다는 점이 시스템 활용의 편의성을 한층 향상시켰습니다.

앞으로 Lightspeed 에 대한 추가적인 기능 개선이 이루어져 시스템 활용에 있어 더욱 많은 이점을 제공할 것으로 생각됩니다.

더불어 기존 release 를 기반으로 보안, 성능 부분에서 개선되어 보다 안정적이고 신뢰할 수 있는 시스템을 운영할 수 있습니다.

 

 

 

 

자유롭게 댓글을 달아주세요! 언제나 환영입니다.
기타 문의:  info@neoclova.co.kr
네오클로바 기술블로그 홈 바로가기: https://neoclova.net
네오클로바 홈페이지: http://neoclova.co.kr

 

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다