NFS4, 불안정, 포트 번호, rdma 충돌 도움말

NFS4, 불안정, 포트 번호, rdma 충돌 도움말
  • 현재 RHEL 8.8 및 RHEL 9.x의 경우 최신 NFS 버전은 4.2입니다.
  • NFS 4가 출시되었을 때 NFS3에서 몇 가지 사항이 제거되었으며 그 중 하나는 여러 포트 번호였습니다.
    • 네트워크 파일 시스템 4승인하다이제 모든 트래픽은 TCP입니다.잘 알려진 단일 포트 2049를 사용하세요..
    • https://www.snia.org/sites/default/files/SNIA_An_Overview_of_NFSv4-3_0.pdf
    • 같은 내용을 언급하는 더 유명한 기사를 찾을 수 있습니다.
    • RHEL 7.9의 NFS 4.1 방화벽에서 TCP 2049만 열어 이를 확인했습니다. /etc/nfs.conf기본 구성을 변경하지 않는 한 포트 111이나 다른 포트를 사용하지 않습니다 /etc/sysconfig/nfs. 실제로 rdma가 작동하게 했을 때(포트 20049를 통해) rdma 프로토콜은 특별히 방화벽을 우회했습니다. 이것이 rdma가 cpy 주기를 절약하고 더 빠른 이유라고 생각합니다.

국유림청불안정옵션 /etc/exports 모든 포트에서 클라이언트의 요청을 수신하도록 서버를 설정합니다. 이를 보안(기본값)으로 변경하면 서버가 클라이언트 포트 1-1024의 요청만 수신합니다. 따라서 클라이언트의 권한 없는 사용자는 NFS 대화를 시작할 수 없습니다. 참고로:https://security.stackexchange.com/questions/246527/what-is-insecure-about-the-insecure-option-of-nfs-exports

기본값은안전한그리고불안정NFS4 내보내기를 수행할 때 /etc/exports.

그리고안전 규칙사람들은 종종 말한다. NFS 서버에는 안전하지 않은 파일 잠금 옵션이 활성화되어 있어서는 안 됩니다..

먼저 /etc/exports secure옵션을 사용하면 NFS4가 포트 2049에서 실행되므로 기본적으로 1024 미만의 보안 포트에서만 실행되는 것은 완전히 잘못된 것 같습니다. 숫자 2049는 1024보다 큽니다. 내가 뭘 놓치고 있는 걸까요?

RDMA평소처럼 항구에서 일어나는 일 에 대해 20049간과되는 사실이 있는 것 같습니다 .분명히성명불안정/etc/exports에서 옵션을 사용하려는 경우 , 그렇지 않으면 표시 없이 mount -o rdma설치가 항상 발생합니다 .proto=tcpproto=rdma

클라이언트에 표시 되는 대신 MLNX_OFED_LINUX-23.04-1.1.3.0-rhel8.8-x86_64.iso설치된 Redhat 패키지를 사용하여 이를 확인했습니다 .InfiniBand Supportmount -o rdma,port=1023mountproto=rdma

하지만(MLNX로만?) echo rdma 20049 > /proc/sys/nfsd/portlist또는 안전한 내보내기의 경우에도 실행해야 합니다.에코 RDMA 1023. 이러한 값이 존재하지 않는 이유/방법 /proc/sys/nfsd/portlist과 수동으로 수행해야 하는 이유를 아는 사람이 있습니까? 그렇다면 이 숫자를 거기에 넣는 올바른 방법은 무엇입니까?그러면 시작 후 /etc/fstab내 데이터 폴더의 nfs 마운트가 rdma로 성공적으로 발생합니까? MLNX 튜토리얼 PDF에는 결함이 있습니다.

RDMA가 작동하도록 벽에 머리를 부딪혔는데 일반적으로 NFS에는 많은 단점이 있는 것 같습니다. 구성을 위한 RDMA 자리 표시자가 있는 유료 클러스터 관리자 소프트웨어가 있지만 모든 마운트는 항상 proto=tcp 입니다. 따라서 누군가 설명된 내용에 대한 정보를 제공할 수 있다면 도움이 될 것이며 +어떤 답변이라도 드리겠습니다.

반품:결국 보안 규칙을 충족하기 위해 일부 포트 번호 1023 이하를 /etc/exports선택 하겠습니다 . secure이 범위 내에서 적합한 숫자를 선택하는 방법은 무엇입니까? 아무도 론으로서 내 물건을 설정하기 위해 1000 또는 1024보다 낮은 포트 번호를 사용해서는 안된다는 것을 이해합니까?

고쳐 쓰다:/etc/exports매개변수 인 것 같습니다.안전한또는불안정관련이 없습니다. 중요한 것은 nfsserver rdma 20049에 있습니다 /proc/fs/nfsd/portlist. 이 번호 또는 다른 번호로 작동하는 것 같습니다.안전한파일 내보내기.

답변1

NFS(Network File System) 버전 4, 해당 보안 옵션, 포트 번호 및 RDMA(Remote Direct Memory Access) 사용에 대해 몇 가지 질문과 우려 사항이 있습니다.

NFS 버전 4에서는 NFS 버전 3에서 사용되는 여러 포트 번호가 필요하지 않습니다. 따라서 NFSv4의 경우 모든 트래픽은 포트 2049의 TCP를 통해 처리됩니다.

보안과 NFS

insecure의 옵션은 /etc/exports포트 번호를 참조하지 않습니다. NFS 서버가 클라이언트의 모든 포트(비보안) 또는 포트 1-1024(보안)의 요청을 수락하는지 여부를 결정합니다. 이 옵션은 NFSv4에서 사용되는 잘 알려진 포트 2049와는 아무런 관련이 없습니다.

NFS 내보내기의 "안전하지 않은" 옵션 중 안전하지 않은 점은 무엇입니까?

서버는 "1024 미만의 보안 포트에서만 실행"는 1024보다 큰 포트 2049에서 실행되기 때문에 NFSv4의 컨텍스트에서는 올바르지 않습니다.

NFS와 함께 RDMA를 사용하는 경우 RDMA 마운트를 허용 insecure하는 옵션을 지정해야 합니다 . /etc/exports이 옵션이 없으면 NFS는 기본적으로 (proto=tcp)RDMA 대신 TCP를 사용합니다.(proto=rdma)

1024보다 낮은 포트 번호를 선택하려면 잘 알려진 서비스에 할당되지 않은 1~1023 범위의 포트를 선택하세요.

IANA(Internet Assigned Numbers Authority) 서비스 이름 및 포트 번호 레지스트리를 참조하여 이미 사용 중인 포트를 선택하고 있지 않은지 확인할 수 있습니다.

서비스 이름 및 전송 프로토콜 포트 번호 레지스트리

/etc/services서비스 이름과 포트 번호의 매핑을 확인하세요 .

cat /etc/services

사용된 숫자의 큰 목록이 필요한 경우 nmap 패키지를 설치하십시오.

답변2

/proc/fs/nfsd/portlist이것이 크게 문제이다

https://patchwork.kernel.org/project/linux-nfs/patch/[이메일 보호됨]/

/etc/nfs.conf파일은 RHEL 8에서 다음과 같이 해석됩니다.주형#rdma=n안에 있어요. 따라서 논리적으로 주석을 제거하고 rdma=y... where is to 를 수행하는 것이 좋습니다 y. 이것은 정확히 작동하지 않습니다.

rdma=nfsrdma. 대신에 수행해야 합니다 rdma=y. 그러면 . 또는 .또는 . 에 지정된 내용이 rdma 20049나타납니다 . 그러면 MLNX가 설치된 상태에서 NFS RDMA가 작동합니다. 완료 후 proc의 변경 사항을 관찰하는 데 1분 정도 걸립니다./proc/fs/nfsd/portlistrdma-port/etc/nfs.confservice nfs-server restart

답변3

최신 Linux 시스템에는 해결해야 할 두 가지 문제가 있습니다.

  • 서버와 클라이언트 모두 rpcrdma 커널 모듈을 로드해야 합니다.
  • 포트와 관련된 rdma(어느 포트에 관계없이)가 있어야 합니다./proc/fs/nfsd/portlist

이들 중 첫 번째를 완료하려면 다음을 rpcrdma추가하세요 ./etc/modules-load.d/modules.conf

/usr/sbin/rpc.nfsd두 번째 작업을 수행하려면 이 매개변수가 명령줄 에 있어야 합니다 --rdma=2049. Ubuntu에서는 다음 줄을 추가하면 가장 쉽게 수행할 수 있습니다 /etc/default/nfs-kernel-server.

RPCNFSDOPTS="--rdma=2049"

(향후 잠재적인 방화벽 문제를 피하기 위해 20049 대신 일반 NFSv4 포트를 사용했습니다.)

완전성을 기하기 위해 남은 모든 구성은 NFS 서버 설정을 위한 표준 구성일 뿐이라는 점을 덧붙여야 합니다.

관련 정보