Konfigurasikan klien NFS untuk Azure NetApp Files
Konfigurasi klien NFS yang dijelaskan dalam artikel ini adalah bagian dari penyiapan saat Anda mengonfigurasi enkripsi NFSv4.1 Kerberos atau membuat volume protokol ganda atau NFSv3/NFSv4.1 dengan LDAP. Berbagai macam distribusi Linux tersedia untuk digunakan dengan Azure NetApp Files. Artikel ini menjelaskan konfigurasi untuk dua lingkungan yang lebih umum digunakan: RHEL 8 dan Ubuntu 18.04.
Persyaratan dan pertimbangan
Terlepas dari jenis Linux yang Anda gunakan, konfigurasi berikut diperlukan:
- Konfigurasikan klien NTP untuk menghindari masalah dengan penyimpangan waktu.
- Konfigurasikan entri DNS klien Linux untuk resolusi nama.
Konfigurasi ini harus menyertakan catatan “A” (forward) dan record PTR (reverse). - Untuk bergabung dengan domain, buat akun komputer untuk klien Linux di Direktori Aktif target (yang dibuat selama perintah bergabung dengan realm).
Catatan
Variabel
$SERVICEACCOUNT
yang digunakan dalam perintah di bawah ini harus berupa akun pengguna dengan izin atau delegasi untuk membuat akun komputer di Unit Organisasi yang ditargetkan.
Konfigurasi RHEL 8
Bagian ini menjelaskan konfigurasi RHEL yang diperlukan untuk enkripsi NFSv4.1 Kerberos dan protokol ganda.
Contoh di bagian ini menggunakan nama domain dan alamat IP berikut:
- Nama domain:
contoso.com
- IP Pribadi:
10.6.1.4
Konfigurasi RHEL 8 jika Anda menggunakan enkripsi NFSv4.1 Kerberos
Konfigurasikan
/etc/resolv.conf
dengan server DNS yang tepat.Contohnya:
[root@reddoc cbs]# cat /etc/resolv.conf
search contoso.com
nameserver 10.6.1.4(private IP)
Tambahkan catatan klien NFS di server DNS untuk zona pencarian maju dan mundur DNS.
Untuk memverifikasi DNS, gunakan perintah berikut dari klien NFS:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Instal paket:
yum update
sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utils
Konfigurasi klien NTP.
RHEL 8 menggunakan chrony secara default.
Bergabung dengan domain Direktori Aktif:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Contohnya:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Pastikan
default_realm
ditetapkan ke realm yang disediakan di/etc/krb5.conf
. Jika tidak, tambahkan di bagian[libdefaults]
dalam file seperti yang ditunjukkan pada contoh berikut:[libdefaults] default_realm = CONTOSO.COM default_tkt_enctypes = aes256-cts-hmac-sha1-96 default_tgs_enctypes = aes256-cts-hmac-sha1-96 permitted_enctypes = aes256-cts-hmac-sha1-96 [realms] CONTOSO.COM = { kdc = dc01.contoso.com admin_server = dc01.contoso.com master_kdc = dc01.contoso.com default_domain = contoso.com } [domain_realm] .contoso.com = CONTOSO.COM contoso.com = CONTOSO.COM [logging] kdc = SYSLOG:INFO admin_server = FILE=/var/kadm5.log
Mulai ulang semua layanan NFS:
systemctl start nfs-*
systemctl restart rpc-gssd.service
Mulai ulang mencegah kondisi kesalahan
“mount.nfs: an incorrect mount option was specified”
selama pemasangan Kerberos.Jalankan perintah
kinit
dengan akun pengguna untuk mendapatkan tiket:sudo kinit $SERVICEACCOUNT@DOMAIN
Contohnya:
sudo kinit ad_admin@CONTOSO.COM
Konfigurasi RHEL 8 jika Anda menggunakan protokol ganda
Langkah-langkah berikut ini bersifat opsional. Anda perlu melakukan langkah-langkah tersebut hanya jika Anda menggunakan pemetaan pengguna di klien NFS:
Selesaikan semua langkah yang dijelaskan di bagian konfigurasi RHEL 8 jika Anda menggunakan enkripsi NFSv4.1 Kerberos.
Tambahkan catatan DNS statis di file /etc/hosts Anda untuk menggunakan nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk AD, alih-alih menggunakan alamat IP dalam file konfigurasi SSSD:
cat /etc/hosts
10.6.1.4 winad2016.contoso.com
Tambahkan bagian tambahan untuk domain guna menyelesaikan pengidentifikasi dari server AD LDAP:
[root@reddoc cbs]# cat /etc/sssd/sssd.conf
[sssd]
domains = contoso.com, contoso-ldap (new entry added for LDAP as id_provider)
config_file_version = 2
services = nss, pam, ssh, sudo (ensure nss is present in this list)
[domain/contoso-ldap] (Copy the following lines. Modify as per your domain name.)
auth_provider = krb5
chpass_provider = krb5
id_provider = ldap
ldap_search_base = dc=contoso,dc=com(your domain)
ldap_schema = rfc2307bis
ldap_sasl_mech = GSSAPI
ldap_user_object_class = user
ldap_group_object_class = group
ldap_user_home_directory = unixHomeDirectory
ldap_user_principal = userPrincipalName
ldap_account_expire_policy = ad
ldap_force_upper_case_realm = true
ldap_user_search_base = cn=Users,dc=contoso,dc=com (based on your domain)
ldap_group_search_base = cn=Users,dc=contoso,dc=com (based on your domain)
ldap_sasl_authid = REDDOC$ (ensure $ at the end you can get this from “klist -kte” command)
krb5_server = winad2016.contoso.com (same as AD address which is added in /etc/hosts)
krb5_realm = CONTOSO.COM (domain name in caps)
krb5_kpasswd = winad2016.contoso.com (same as AD address which is added in /etc/hosts)
use_fully_qualified_names = false
Dalam konfigurasi
[domain/contoso-ldap]
di atas:id_provider
diatur keldap
danad
tidak.- Konfigurasi telah menentukan basis pencarian serta kelas pengguna dan grup untuk pencarian.
ldap_sasl_authid
adalah nama akun mesin dariklist -kte
.use_fully_qualified_names
diatur kefalse
. Pengaturan ini berarti konfigurasi ini digunakan saat nama pendek digunakan.ldap_id_mapping
TIDAK ditentukan, yang di-default kefalse
.
Konfigurasi
realm join
dihasilkan oleh klien dan terlihat seperti ini:[domain/contoso.com] (Do not edit or remove any of the following information. This information is automatically generated during the realm join process.)
ad_domain = contoso.com
krb5_realm = CONTOSO.COM
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad
Dalam konfigurasi
[domain/contoso.com]
di atas:id_provider
diatur kead
.ldap_id_mapping
diatur ketrue
. Ini menggunakan ID yang dihasilkan SSSD. Sebagai alternatif, Anda dapat mengatur nilai ini kefalse
jika Anda ingin menggunakan UID POSIX untuk SEMUA gaya nama pengguna. Anda dapat menentukan nilai berdasarkan konfigurasi klien Anda.use_fully_qualified_names
adalahtrue
. Pengaturan ini berartiuser@CONTOSO.COM
akan menggunakan konfigurasi ini.
Pastikan
/etc/nsswitch.conf
Anda memiliki entrisss
:cat /etc/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
Mulai ulang layanan
sssd
dan hapus cache:service sssd stop
rm -f /var/lib/sss/db/*
service sssd start
Uji untuk memastikan bahwa klien Anda terintegrasi dengan server LDAP:
[root@red81 cbs]# id ldapuser1
uid=1234(ldapuser1) gid=1111(ldapgroup1) groups=1111(ldapgroup1)
Konfigurasi Ubuntu
Bagian ini menjelaskan konfigurasi Ubuntu yang diperlukan untuk enkripsi NFSv4.1 Kerberos dan protokol ganda.
Contoh di bagian ini menggunakan nama domain dan alamat IP berikut:
- Nama domain:
contoso.com
- IP Pribadi:
10.6.1.4
Konfigurasikan
/etc/resolv.conf
dengan server DNS yang tepat:root@ubuntu-rak:/home/cbs# cat /etc/resolv.conf
search contoso.com
nameserver <private IP address of DNS server>
Tambahkan catatan klien NFS di server DNS untuk zona pencarian maju dan mundur DNS.
Untuk memverifikasi DNS, gunakan perintah berikut dari klien NFS:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Instal paket:
apt-get update
apt-get install -y realmd packagekit sssd adcli samba-common chrony krb5-user nfs-common
Saat diminta, masukkan
$DOMAIN.NAME
(menggunakan huruf besar, misalnya,CONTOSO.COM
) sebagai realm Kerberos default.Mulai ulang layanan
rpc-gssd.service
:sudo systemctl start rpc-gssd.service
Ubuntu 18.04 menggunakan chrony secara default. Ikuti panduan konfigurasi di Ubuntu Bionic: Menggunakan chrony untuk mengonfigurasi NTP.
Bergabung dengan domain Direktori Aktif:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Contohnya:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Lakukan
kinit
dengan pengguna untuk mendapatkan tiket:sudo kinit $SERVICEACCOUNT
Contohnya:
sudo kinit ad_admin
Konfigurasi Ubuntu jika Anda menggunakan protokol ganda
Langkah-langkah berikut ini bersifat opsional. Anda perlu melakukan langkah-langkah tersebut hanya jika Anda ingin menggunakan pemetaan pengguna di klien NFS:
Jalankan perintah berikut untuk meningkatkan paket yang diinstal:
sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
Contoh berikut menggunakan nilai sampel. Ketika perintah meminta Anda untuk memberikan input, Anda harus memberikan input berdasarkan lingkungan Anda.
base dc=contoso,dc=com uri ldap://10.20.0.4:389/ ldap_version 3 rootbinddn cn=admin,cn=Users,dc=contoso,dc=com pam_password ad
Pastikan file
/etc/nsswitch.conf
Anda memiliki entrildap
berikut:
passwd: compat systemd ldap
group: compat systemd ldap
Jalankan perintah berikut untuk memulai ulang dan mengaktifkan layanan:
sudo systemctl restart nscd && sudo systemctl enable nscd
Contoh berikut membuat kueri server AD LDAP dari klien LDAP Ubuntu untuk pengguna LDAP ‘hari1’
:
root@cbs-k8s-varun4-04:/home/cbs# getent passwd hari1
hari1:*:1237:1237:hari1:/home/hari1:/bin/bash
Mengonfigurasi dua VM dengan nama host yang sama untuk mengakses volume NFSv4.1
Bagian ini menjelaskan bagaimana Anda dapat mengonfigurasi dua VM yang memiliki nama host yang sama untuk mengakses volume Azure NetApp Files NFSv4.1. Prosedur ini dapat berguna saat Anda melakukan pengujian pemulihan bencana (DR) dan memerlukan sistem pengujian dengan nama host yang sama dengan sistem DR utama. Prosedur ini hanya diperlukan jika Anda memiliki nama host yang sama pada dua VM yang mengakses volume Azure NetApp Files yang sama.
NFSv4.x mengharuskan setiap klien untuk mengidentifikasi dirinya ke server dengan string unik. Status buka dan kunci file yang dibagikan antara satu klien dan satu server dikaitkan dengan identitas ini. Untuk mendukung pemulihan status NFSv4.x yang kuat dan migrasi status transparan, string identitas ini tidak boleh berubah di seluruh reboot klien.
Tampilkan string
nfs4_unique_id
pada klien VM dengan menggunakan perintah berikut:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = ""
Untuk memasang volume yang sama pada VM tambahan dengan nama host yang sama, misalnya sistem DR, buat
nfs4_unique_id
sehingga dapat mengidentifikasi dirinya secara unik ke layanan NFS Azure NetApp Files. Langkah ini memungkinkan layanan untuk membedakan antara dua VM dengan nama host yang sama dan mengaktifkan pemasangan volume NFSv4.1 pada kedua VM.Anda perlu melakukan langkah ini pada sistem pengujian DR saja. Agar konsistensi, Anda dapat mempertimbangkan untuk menerapkan pengaturan unik pada setiap komputer virtual yang terlibat.
Pada sistem DR pengujian, tambahkan baris berikut ke file
nfsclient.conf
, biasanya terletak di/etc/modprobe.d/
:options nfs nfs4_unique_id=uniquenfs4-1
String
uniquenfs4-1
dapat berupa string alfanumerik apa pun, asalkan unik di seluruh VM yang akan dihubungkan ke layanan.Periksa dokumentasi distribusi Anda tentang cara mengonfigurasi pengaturan klien NFS.
Reboot VM agar perubahan diterapkan.
Pada sistem DR pengujian, verifikasi bahwa
nfs4_unique_id
telah ditetapkan setelah reboot VM:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = "uniquenfs4-1"
Pasang volume NFSv4.1 pada kedua VM seperti biasa.
Kedua VM dengan nama host yang sama sekarang dapat memasang dan mengakses volume NFSv4.1.