Konfigurowanie klienta sieciowego systemu plików dla usługi Azure NetApp Files
Konfiguracja klienta NFS opisana w tym artykule jest częścią konfiguracji podczas konfigurowania szyfrowania Kerberos NFSv4.1 lub tworzenia woluminu z podwójnym protokołem lub NFSv3/NFSv4.1 z protokołem LDAP. Dostępnych jest wiele różnych dystrybucji systemu Linux do użycia z usługą Azure NetApp Files. W tym artykule opisano konfiguracje dwóch najczęściej używanych środowisk: RHEL 8 i Ubuntu 18.04.
Wymagania i zagadnienia
Niezależnie od używanego wariantu systemu Linux wymagane są następujące konfiguracje:
- Skonfiguruj klienta NTP, aby uniknąć problemów ze niesymetrycznością czasu.
- Skonfiguruj wpisy DNS klienta systemu Linux na potrzeby rozpoznawania nazw.
Ta konfiguracja musi zawierać rekord "A" (do przodu) i rekord PTR (odwrotny). - W przypadku przyłączania do domeny utwórz konto komputera dla klienta systemu Linux w docelowej usłudze Active Directory (która jest tworzona podczas polecenia sprzężenia obszaru).
Uwaga
Zmienna
$SERVICEACCOUNT
używana w poniższych poleceniach powinna być kontem użytkownika z uprawnieniami lub delegowaniem w celu utworzenia konta komputera w docelowej jednostce organizacyjnej.
Konfiguracja systemu RHEL 8
W tej sekcji opisano konfiguracje RHEL wymagane do szyfrowania Kerberos NFSv4.1 i podwójnego protokołu.
W przykładach w tej sekcji użyto następującej nazwy domeny i adresu IP:
- Nazwa domeny:
contoso.com
- Prywatny adres IP:
10.6.1.4
Konfiguracja systemu RHEL 8, jeśli używasz szyfrowania Kerberos w systemie plików NFSv4.1
Skonfiguruj
/etc/resolv.conf
przy użyciu odpowiedniego serwera DNS.Na przykład:
[root@reddoc cbs]# cat /etc/resolv.conf
search contoso.com
nameserver 10.6.1.4(private IP)
Dodaj rekord klienta NFS na serwerze DNS dla strefy wyszukiwania wstecznego i przekazywania DNS.
Aby zweryfikować system DNS, użyj następujących poleceń z klienta NFS:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Instalowanie pakietów:
yum update
sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utils
Skonfiguruj klienta NTP.
System RHEL 8 domyślnie używa chrononii.
Dołącz do domeny usługi Active Directory:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Na przykład:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Upewnij się, że
default_realm
ustawiono wartość podanego obszaru w obiekcie/etc/krb5.conf
. Jeśli nie, dodaj go w[libdefaults]
sekcji w pliku, jak pokazano w poniższym przykładzie:[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
Uruchom ponownie wszystkie usługi NFS:
systemctl start nfs-*
systemctl restart rpc-gssd.service
Ponowne uruchomienie uniemożliwia błąd
“mount.nfs: an incorrect mount option was specified”
podczas instalacji protokołu Kerberos.Uruchom polecenie przy
kinit
użyciu konta użytkownika, aby uzyskać bilety:sudo kinit $SERVICEACCOUNT@DOMAIN
Na przykład:
sudo kinit ad_admin@CONTOSO.COM
Konfiguracja systemu RHEL 8, jeśli używasz podwójnego protokołu
Poniższe kroki są opcjonalne. Należy wykonać kroki tylko wtedy, gdy używasz mapowania użytkowników na kliencie NFS:
Wykonaj wszystkie kroki opisane w konfiguracji RHEL 8, jeśli używasz szyfrowania Kerberos NFSv4.1.
Dodaj statyczny rekord DNS w pliku /etc/hosts, aby użyć w pełni kwalifikowanej nazwy domeny (FQDN) dla usługi AD, zamiast używać adresu IP w pliku konfiguracji SSSD:
cat /etc/hosts
10.6.1.4 winad2016.contoso.com
Dodaj dodatkową sekcję dla domen, aby rozpoznawać identyfikatory z serwera LDAP usługi AD:
[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
W powyższej
[domain/contoso-ldap]
konfiguracji:id_provider
jest ustawiona naldap
wartość , a niead
.- Konfiguracja określiła bazy wyszukiwania oraz klasy użytkowników i grup dla wyszukiwań.
ldap_sasl_authid
to nazwa konta komputera zklist -kte
.use_fully_qualified_names
jest ustawiona nafalse
wartość . To ustawienie oznacza, że ta konfiguracja jest używana w przypadku użycia krótkiej nazwy.ldap_id_mapping
Nie określono wartości domyślnejfalse
.
Konfiguracja
realm join
jest generowana przez klienta i wygląda następująco:[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
W powyższej
[domain/contoso.com]
konfiguracji:id_provider
jest ustawiona naad
wartość .ldap_id_mapping
jest ustawiona natrue
wartość . Używa identyfikatorów wygenerowanych przez identyfikatory SSSD. Alternatywnie możesz ustawić tę wartość nafalse
, jeśli chcesz użyć identyfikatorów UID POSIX dla wszystkich stylów nazw użytkowników. Wartość można określić na podstawie konfiguracji klienta.- Parametr
use_fully_qualified_names
ma wartośćtrue
. To ustawienie oznacza, żeuser@CONTOSO.COM
ta konfiguracja będzie używana.
Upewnij się, że twój
/etc/nsswitch.conf
sss
wpis:cat /etc/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
Uruchom ponownie usługę
sssd
i wyczyść pamięć podręczną:service sssd stop
rm -f /var/lib/sss/db/*
service sssd start
Przetestuj, aby upewnić się, że klient jest zintegrowany z serwerem LDAP:
[root@red81 cbs]# id ldapuser1
uid=1234(ldapuser1) gid=1111(ldapgroup1) groups=1111(ldapgroup1)
Konfiguracja systemu Ubuntu
W tej sekcji opisano konfiguracje systemu Ubuntu wymagane do szyfrowania Kerberos NFSv4.1 i podwójnego protokołu.
W przykładach w tej sekcji użyto następującej nazwy domeny i adresu IP:
- Nazwa domeny:
contoso.com
- Prywatny adres IP:
10.6.1.4
Skonfiguruj
/etc/resolv.conf
przy użyciu odpowiedniego serwera DNS:root@ubuntu-rak:/home/cbs# cat /etc/resolv.conf
search contoso.com
nameserver <private IP address of DNS server>
Dodaj rekord klienta NFS na serwerze DNS dla strefy wyszukiwania do przodu i wstecznego dns.
Aby zweryfikować system DNS, użyj następujących poleceń z klienta NFS:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Instalowanie pakietów:
apt-get update
apt-get install -y realmd packagekit sssd adcli samba-common chrony krb5-user nfs-common
Po wyświetleniu monitu wprowadź dane wejściowe
$DOMAIN.NAME
(na przykładCONTOSO.COM
przy użyciu wielkich liter) jako domyślny obszar Protokołu Kerberos.Uruchom ponownie usługę
rpc-gssd.service
:sudo systemctl start rpc-gssd.service
System Ubuntu 18.04 domyślnie używa chrononii. Zgodnie z wytycznymi konfiguracji w systemie Ubuntu Bionic: konfigurowanie ntp przy użyciu chrony.
Dołącz do domeny usługi Active Directory:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Na przykład:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Wykonaj
kinit
z użytkownikiem, aby uzyskać bilety:sudo kinit $SERVICEACCOUNT
Na przykład:
sudo kinit ad_admin
Konfiguracja systemu Ubuntu, jeśli używasz podwójnego protokołu
Poniższe kroki są opcjonalne. Należy wykonać kroki tylko wtedy, gdy chcesz użyć mapowania użytkowników na kliencie NFS:
Uruchom następujące polecenie, aby uaktualnić zainstalowane pakiety:
sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
W poniższym przykładzie użyto przykładowych wartości. Gdy polecenie wyświetli monit o wprowadzenie danych wejściowych, należy podać dane wejściowe na podstawie środowiska.
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
Upewnij się, że plik
/etc/nsswitch.conf
ma następująceldap
wpisy:
passwd: compat systemd ldap
group: compat systemd ldap
Uruchom następujące polecenie, aby ponownie uruchomić i włączyć usługę:
sudo systemctl restart nscd && sudo systemctl enable nscd
Poniższy przykład wysyła zapytanie do serwera LDAP usługi AD z klienta LDAP systemu Ubuntu dla użytkownika ‘hari1’
LDAP:
root@cbs-k8s-varun4-04:/home/cbs# getent passwd hari1
hari1:*:1237:1237:hari1:/home/hari1:/bin/bash
Skonfiguruj dwie maszyny wirtualne o tej samej nazwie hosta, aby uzyskać dostęp do woluminów NFSv4.1
W tej sekcji wyjaśniono, jak skonfigurować dwie maszyny wirtualne, które mają taką samą nazwę hosta, aby uzyskać dostęp do woluminów NFSv4.1 usługi Azure NetApp Files. Ta procedura może być przydatna podczas przeprowadzania testu odzyskiwania po awarii i wymagania systemu testowego o tej samej nazwie hosta co podstawowy system odzyskiwania po awarii. Ta procedura jest wymagana tylko wtedy, gdy masz tę samą nazwę hosta na dwóch maszynach wirtualnych, które uzyskują dostęp do tych samych woluminów usługi Azure NetApp Files.
NFSv4.x wymaga, aby każdy klient zidentyfikował się na serwerach przy użyciu unikatowego ciągu. Stan otwierania i blokowania pliku współużytkowany między jednym klientem a jednym serwerem jest skojarzony z tą tożsamością. Aby obsługiwać niezawodne odzyskiwanie stanu NFSv4.x i migrację stanu przezroczystego, ten ciąg tożsamości nie może zmieniać się w przypadku ponownych uruchomień klienta.
nfs4_unique_id
Wyświetl ciąg na klientach maszyn wirtualnych przy użyciu następującego polecenia:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = ""
Aby zainstalować ten sam wolumin na dodatkowej maszynie wirtualnej o tej samej nazwie hosta, na przykład system odzyskiwania po awarii, utwórz obiekt
nfs4_unique_id
, aby mógł jednoznacznie zidentyfikować się w usłudze Azure NetApp Files NFS. Ten krok umożliwia usłudze rozróżnienie między dwiema maszynami wirtualnymi o tej samej nazwie hosta i włączenie instalowania woluminów NFSv4.1 na obu maszynach wirtualnych.Ten krok należy wykonać tylko w testowym systemie odzyskiwania po awarii. W celu zapewnienia spójności można rozważyć zastosowanie unikatowego ustawienia na każdej zaangażowanej maszynie wirtualnej.
W testowym systemie odzyskiwania po awarii dodaj następujący wiersz do
nfsclient.conf
pliku, zazwyczaj w lokalizacji/etc/modprobe.d/
:options nfs nfs4_unique_id=uniquenfs4-1
Ciąg
uniquenfs4-1
może być dowolnym ciągiem alfanumerycznym, o ile jest on unikatowy na wszystkich maszynach wirtualnych, które mają być połączone z usługą.Zapoznaj się z dokumentacją dystrybucji dotyczącą sposobu konfigurowania ustawień klienta NFS.
Uruchom ponownie maszynę wirtualną, aby zmiana weszła w życie.
W testowym systemie odzyskiwania po awarii sprawdź, czy
nfs4_unique_id
maszyna wirtualna została ustawiona po ponownym uruchomieniu maszyny wirtualnej:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = "uniquenfs4-1"
Zainstaluj wolumin NFSv4.1 na obu maszynach wirtualnych w zwykły sposób.
Obie maszyny wirtualne o tej samej nazwie hosta mogą teraz zainstalować wolumin NFSv4.1 i uzyskać do tego dostępu.