Konfigurera en NFS-klient för Azure NetApp Files
NFS-klientkonfigurationen som beskrivs i den här artikeln är en del av konfigurationen när du konfigurerar NFSv4.1 Kerberos-kryptering eller skapar en volym med dubbla protokoll eller NFSv3/NFSv4.1 med LDAP. Det finns en mängd olika Linux-distributioner att använda med Azure NetApp Files. I den här artikeln beskrivs konfigurationer för två av de vanligaste miljöerna: RHEL 8 och Ubuntu 18.04.
Krav och överväganden
Oavsett vilken Linux-smak du använder krävs följande konfigurationer:
- Konfigurera en NTP-klient för att undvika problem med tidsförskjutning.
- Konfigurera DNS-poster för Linux-klienten för namnmatchning.
Den här konfigurationen måste innehålla posten "A" (framåt) och PTR-posten (omvänd). - För domänanslutning skapar du ett datorkonto för Linux-klienten i active directory-målet (som skapas under kommandot realm join).
Kommentar
Variabeln
$SERVICEACCOUNT
som används i kommandona nedan bör vara ett användarkonto med behörigheter eller delegering för att skapa ett datorkonto i den riktade organisationsenheten.
RHEL 8-konfiguration
I det här avsnittet beskrivs DE RHEL-konfigurationer som krävs för NFSv4.1 Kerberos-kryptering och dubbla protokoll.
Exemplen i det här avsnittet använder följande domännamn och IP-adress:
- Domännamn:
contoso.com
- Privat IP-adress:
10.6.1.4
RHEL 8-konfiguration om du använder NFSv4.1 Kerberos-kryptering
Konfigurera
/etc/resolv.conf
med rätt DNS-server.Till exempel:
[root@reddoc cbs]# cat /etc/resolv.conf
search contoso.com
nameserver 10.6.1.4(private IP)
Lägg till NFS-klientposten i DNS-servern för dns-zonen vidarebefordran och omvänd sökning.
Kontrollera DNS genom att använda följande kommandon från NFS-klienten:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Installera paket:
yum update
sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utils
Konfigurera NTP-klienten.
RHEL 8 använder krona som standard.
Anslut till Active Directory-domänen:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Till exempel:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Se till att
default_realm
är inställt på den angivna sfären i/etc/krb5.conf
. Annars lägger du till den under[libdefaults]
avsnittet i filen enligt följande exempel:[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
Starta om alla NFS-tjänster:
systemctl start nfs-*
systemctl restart rpc-gssd.service
Omstarten förhindrar feltillståndet
“mount.nfs: an incorrect mount option was specified”
under Kerberos-monteringen.kinit
Kör kommandot med användarkontot för att hämta biljetter:sudo kinit $SERVICEACCOUNT@DOMAIN
Till exempel:
sudo kinit ad_admin@CONTOSO.COM
RHEL 8-konfiguration om du använder dubbla protokoll
Följande steg är valfria. Du behöver bara utföra stegen om du använder användarmappning på NFS-klienten:
Slutför alla steg som beskrivs i RHEL 8-konfigurationen om du använder avsnittet NFSv4.1 Kerberos-kryptering .
Lägg till en statisk DNS-post i filen /etc/hosts för att använda fullständigt kvalificerat domännamn (FQDN) för din AD i stället för att använda IP-adressen i SSSD-konfigurationsfilen:
cat /etc/hosts
10.6.1.4 winad2016.contoso.com
Lägg till ett extra avsnitt för domäner för att matcha identifierare från AD LDAP-servern:
[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
I konfigurationen
[domain/contoso-ldap]
ovan:id_provider
är inställt påldap
och intead
.- Konfigurationen har angett sökbaser och användar- och gruppklasser för sökningar.
ldap_sasl_authid
är datorkontonamnet frånklist -kte
.use_fully_qualified_names
är inställt påfalse
. Den här inställningen innebär att den här konfigurationen används när ett kort namn används.ldap_id_mapping
har INTE angetts, vilket är standardvärdetfalse
.
Konfigurationen
realm join
genereras av klienten och ser ut så här:[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
I konfigurationen
[domain/contoso.com]
ovan:id_provider
är inställt påad
.ldap_id_mapping
är inställt påtrue
. Den använder de SSSD-genererade ID:erna. Alternativt kan du ange det här värdet tillfalse
om du vill använda POSIX-användargränssnitt för ALLA format med användarnamn. Du kan fastställa värdet baserat på klientkonfigurationen.use_fully_qualified_names
ärtrue
. Den här inställningen innebäruser@CONTOSO.COM
att den här konfigurationen används.
Kontrollera att du
/etc/nsswitch.conf
harsss
posten:cat /etc/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
sssd
Starta om tjänsten och rensa cacheminnet:service sssd stop
rm -f /var/lib/sss/db/*
service sssd start
Testa för att säkerställa att klienten är integrerad med LDAP-servern:
[root@red81 cbs]# id ldapuser1
uid=1234(ldapuser1) gid=1111(ldapgroup1) groups=1111(ldapgroup1)
Ubuntu-konfiguration
I det här avsnittet beskrivs Ubuntu-konfigurationer som krävs för NFSv4.1 Kerberos-kryptering och dubbla protokoll.
Exemplen i det här avsnittet använder följande domännamn och IP-adress:
- Domännamn:
contoso.com
- Privat IP-adress:
10.6.1.4
Konfigurera
/etc/resolv.conf
med rätt DNS-server:root@ubuntu-rak:/home/cbs# cat /etc/resolv.conf
search contoso.com
nameserver <private IP address of DNS server>
Lägg till NFS-klientpost i DNS-servern för dns-zonen vidarebefordra och omvänd sökning.
Kontrollera DNS genom att använda följande kommandon från NFS-klienten:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Installera paket:
apt-get update
apt-get install -y realmd packagekit sssd adcli samba-common chrony krb5-user nfs-common
När du uppmanas till det anger du
$DOMAIN.NAME
(med versaler,CONTOSO.COM
till exempel ) som standard-Kerberos-sfär.Starta om tjänsten
rpc-gssd.service
:sudo systemctl start rpc-gssd.service
Ubuntu 18.04 använder krona som standard. Följ konfigurationsriktlinjerna i Ubuntu Bionic: Använda chrony för att konfigurera NTP.
Anslut till Active Directory-domänen:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Till exempel:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Utför
kinit
med användaren för att hämta biljetter:sudo kinit $SERVICEACCOUNT
Till exempel:
sudo kinit ad_admin
Ubuntu-konfiguration om du använder dubbla protokoll
Följande steg är valfria. Du behöver bara utföra stegen om du vill använda användarmappning på NFS-klienten:
Kör följande kommando för att uppgradera de installerade paketen:
sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
I följande exempel används exempelvärden. När kommandot frågar efter indata bör du ange indata baserat på din miljö.
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
Kontrollera att
/etc/nsswitch.conf
filen har följandeldap
poster:
passwd: compat systemd ldap
group: compat systemd ldap
Kör följande kommando för att starta om och aktivera tjänsten:
sudo systemctl restart nscd && sudo systemctl enable nscd
Följande exempel frågar AD LDAP-servern från Ubuntu LDAP-klienten för en LDAP-användare ‘hari1’
:
root@cbs-k8s-varun4-04:/home/cbs# getent passwd hari1
hari1:*:1237:1237:hari1:/home/hari1:/bin/bash
Konfigurera två virtuella datorer med samma värdnamn för åtkomst till NFSv4.1-volymer
I det här avsnittet beskrivs hur du kan konfigurera två virtuella datorer som har samma värdnamn för åtkomst till Azure NetApp Files NFSv4.1-volymer. Den här proceduren kan vara användbar när du utför ett haveriberedskapstest (DR) och kräver ett testsystem med samma värdnamn som det primära DR-systemet. Den här proceduren krävs bara när du har samma värdnamn på två virtuella datorer som har åtkomst till samma Azure NetApp Files-volymer.
NFSv4.x kräver att varje klient identifierar sig för servrar med en unik sträng. Filöppnings- och låstillstånd som delas mellan en klient och en server är associerat med den här identiteten. För att stödja robust NFSv4.x-tillståndsåterställning och transparent tillståndsmigrering får den här identitetssträngen inte ändras mellan klientomstarter.
Visa strängen
nfs4_unique_id
på de virtuella datorklienterna med hjälp av följande kommando:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = ""
Om du vill montera samma volym på en ytterligare virtuell dator med samma värdnamn, till exempel DR-systemet, skapar du en
nfs4_unique_id
så att den unikt kan identifiera sig för Azure NetApp Files NFS-tjänsten. Med det här steget kan tjänsten skilja mellan de två virtuella datorerna med samma värdnamn och aktivera montering av NFSv4.1-volymer på båda de virtuella datorerna.Du behöver endast utföra det här steget på test-DR-systemet. För konsekvens kan du överväga att tillämpa en unik inställning på varje berörd virtuell dator.
I test-DR-systemet lägger du till följande rad i
nfsclient.conf
filen, som vanligtvis finns i/etc/modprobe.d/
:options nfs nfs4_unique_id=uniquenfs4-1
Strängen
uniquenfs4-1
kan vara valfri alfanumerisk sträng, så länge den är unik för de virtuella datorer som ska anslutas till tjänsten.Kontrollera distributionens dokumentation om hur du konfigurerar NFS-klientinställningar.
Starta om den virtuella datorn för att ändringen ska börja gälla.
Kontrollera att
nfs4_unique_id
har angetts efter omstarten av den virtuella datorn på testdatorn:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = "uniquenfs4-1"
Montera NFSv4.1-volymen på båda de virtuella datorerna som vanligt.
Båda de virtuella datorerna med samma värdnamn kan nu montera och komma åt NFSv4.1-volymen.