Tôi chạy hai máy chủ nfs với các thư mục chính của người dùng và các chia sẻ khác trên chúng. Các máy chủ cung cấp ngàm nfsv4 được kerberized cũng như v3 cũ.
Cho đến gần đây, tôi đã có thể gắn kết nfs4 một chia sẻ đã xuất krb5
từ một máy chủ trên máy chủ thứ hai mà không gặp bất kỳ sự cố nào. Nếu tôi cố gắng bây giờ
Tôi bị từ chối cấp quyền và trong nhật ký máy chủ nfs, tôi luôn thấy lỗi này được hiển thị bên dưới. Các hệ thống tệp có dữ liệu người dùng trên máy chủ nfs được đặt tại /export/user1 trên máy chủ server1.uni-ko.de và /export/user2 trên máy chủ server2.uni-ko.de (tên máy chủ đã thay đổi).
Đường dẫn /export/ được sử dụng làm gốc xuất nfs4 phổ biến được đánh dấu bởi fsid=0.
## chạy trên máy chủ server1.uni-ko.de
# mount -t nfs4 -o sec=krb5 server2.uni-ko.de:/user2 /mnt
mount.nfs4: truy cập bị từ chối bởi máy chủ trong khi cài đặt server2.uni-ko.de:/user2
và trong nhật ký máy chủ nfs, tôi thấy lỗi này:
từ chối yêu cầu gắn kết từ server1.uni-ko.de cho /user2 (/): không được xuất
Điều tương tự cũng xảy ra nếu tôi cố gắng gắn cục bộ một chia sẻ trên cùng một máy chủ
thông qua nfs4 như thế này:
## trên máy chủ server1.uni-ko.de
# mount -t nfs4 -o sec=krb5 server1.uni-ko.de:/user1 /mnt
mount.nfs4: truy cập bị từ chối bởi máy chủ trong khi cài đặt server1.uni-ko.de:/user1
Có thể gắn kết nfs3 (mount server1.uni-ko.de:/export/user1 /mnt) mà không gặp bất kỳ sự cố nào.
Tệp /etc/exports trên máy chủ server2.uni-ko.de trông như thế này:
/export gss/krb5(rw,fsid=0,nohide,no_subtree_check,no_root_squash,async,crossmnt) \
gss/krb5i(rw,fsid=0,nohide,no_subtree_check,no_root_squash,async,crossmnt) \
gss/krb5p(rw,fsid=0,nohide,no_subtree_check,no_root_squash,async,crossmnt)
# Xuất NFS V3 qua các nhóm mạng NIS
/export/user2 @nfsv3client(rw,async,no_subtree_check,no_subtree_check,fsid=2000)
exportfs -v hiển thị các chia sẻ được (krb5-nfs4) xuất:
# xuấtfs -v
....
/export gss/krb5(rw,async,wdelay,nohide,crossmnt,no_subtree_check,fsid=0,sec=sys,secure,no_root_squash,no_all_squash)
/export gss/krb5i(rw,async,wdelay,nohide,crossmnt,no_subtree_check,fsid=0,sec=sys,secure,no_root_squash,no_all_squash)
/export gss/krb5p(rw,async,wdelay,nohide,crossmnt,no_subtree_check,fsid=0,sec=sys,secure,no_root_squash,no_all_squash)
/export/user2 @nfsv3client(rw,async,wdelay,hide,no_subtree_check,fsid=2000,sec=sys,secure,root_squash,no_all_squash)
Mọi thứ thậm chí còn trở nên kỳ lạ hơn vì từ ứng dụng khách nfs4 mặc định, tôi vẫn có thể nfs4 gắn thư mục đã cho mà không gặp bất kỳ sự cố nào chính xác như được mô tả ở trên và cả hai hệ thống đều chia sẻ cùng một hệ điều hành trong cùng một phiên bản và cấp độ bản vá, đó là SuSE SLES15SP3 với phiên bản mới nhất các bản vá được cài đặt.
Trên các máy chủ nfs, có một tường lửa chạy mở các cổng được gán tĩnh cần thiết cho NFS như mountd,statd,lockd cũng như các cổng 111 và 2049 (tất cả đều được mở cho tcp và udp). Đây là những gì tôi đã thay đổi gần đây. Trước khi thay đổi này, các cổng máy chủ nfs không tĩnh mà được đặt theo mặc định, nhưng tôi không thể hiểu điều này có thể dẫn đến hành vi gắn kết kỳ lạ như mô tả như thế nào. Tôi cũng đã tắt hoàn toàn tường lửa và kiểm tra lại với kết quả tương tự.
Đằng sau hậu trường, có một máy chủ kerberos đang chạy giữ tất cả các hiệu trưởng cần thiết. Đối với các máy chủ nfs và tất cả các máy khách nfs4, có sẵn các phần chính "nfs" và "host", đồng thời mỗi máy chủ và máy khách có một /etc/krb5.keytab chứa phần chính "nfs" và "host" đã xuất cho máy chủ này. Tất nhiên tiền gốc của người dùng cũng được lưu trữ trong máy chủ kerberos. Tất cả điều này đã hoạt động hoàn hảo trong nhiều năm và vẫn vậy, ngoại trừ vấn đề mới được mô tả.