Antes de tudo, o recomendado é sempre transferir ao invés de Pegar uma role! Só pegue as roles se tiver certeza que o servidor de onde irá retirá-las nunca mais será conectado novamente à rede.
Obs.: Veja ao final desse artigo a diferença entre Transferir e Pegar as Roles.
Depois de vermos o artigo anterior acabamos por conhecer o que é fsmo e sua importância em nosso ambiente samba.
Também conhecemos a função de cada role.
Para relembrar abaixo listo as 7 roles:
- PDC Emulator (um por domínio): ou pdc
- RID Master (um por domínio): ou rid
- Schema Master (um por floresta) ou schema
- Domain Naming Master (um por floresta) ou naming
- Infrastructure Master (um por domínio) ou infrastructure
- Domain DNS Zone Master role (um por domínio) ou domaindns
- Forest DNS Zone Master role (um por floresta) ou forestdns
Mas antes de sabermos como transferir roles de um servidor para outro devemos entender a diferença entre Transferir(transfer) e Pegar(seize) uma role.
Comando para Ver qual Servidor é Proprietário das Roles
Usamos o comando “samba-tool fsmo show” para vermos a lista de roles e quem as detém:
elder@server01:~$ sudo /usr/local/samba/bin/samba-tool fsmo show ldb_wrap open of secrets.ldb SchemaMasterRole owner: CN=NTDS Settings,CN=SERVER01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=lab,DC=local InfrastructureMasterRole owner: CN=NTDS Settings,CN=SERVER01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=lab,DC=local RidAllocationMasterRole owner: CN=NTDS Settings,CN=SERVER01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=lab,DC=local PdcEmulationMasterRole owner: CN=NTDS Settings,CN=SERVER01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=lab,DC=local DomainNamingMasterRole owner: CN=NTDS Settings,CN=SERVER01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=lab,DC=local DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=SERVER01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=lab,DC=local ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=SERVER01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=lab,DC=local
Acima vemos que o servidor SERVER01 é o responsável atual de todas as 7 roles.
Versões do samba 4.3.0 e anteriores
Versões anteriores ao samba 4.3.0 só exibirá 5 roles, ao invés de 7, se executarmos o comando acima. Para exibir as 7 teremos executar outros os comandos abaixo:
ldbsearch --cross-ncs -H /usr/local/samba/private/sam.ldb '(fsmoroleowner=*)' |\ grep 'dn:' | sed 's|dn: ||'
e
ldbsearch --cross-ncs -H /var/lib/samba/private/sam.ldb -b "CN=Infrastructure,DC=DomainDnsZones,DC=lab,DC=local" \ -s base fsmoroleowner
Acima assumimos que nosso domínio é o lab.local
Em Quais Situações Transfiro ou Pego as Roles?
Temos 3 situações:
- O servidor samba proprietário da role ficará inativo temporariamente:
Nesse caso cabe a você a decisão de transferir as roles para outro servidor samba ou esperar o servidor retornar à rede. - O Servidor samba proprietário das roles está danificado e offline:
Tente reparar o servidor e conectá-lo à rede novamente.
Se não há chances de retornar o servidor novamente então pegue as roles.
Obs.: Mas nunca restaure algum backup se houver outro servidor samba funcionando. - Se o servidor samba com as roles irá ser removido(samba-tool domain demote -Uadministrator) do domínio: Nesse caso, transfira as roles antes de remover.
Comando Usado para Transferir e Pegar Roles
Você deverá está acessado no servidor que receberá as roles e executar os seguintes comandos:
Comando para Transferir:
samba-tool fsmo transfer --role=nome_da_role
Comando para Pegar:
samba-tool fsmo seize --role=nome_da_role
Acima, nome_da_role pode ser substituído por: ‘rid‘, ‘pdc‘, ‘infrastructure‘, ‘schema‘, ‘naming‘, ‘domaindns‘, ‘forestdns‘, ‘all‘
Se usarmos ‘all‘ todas as roles serão transferidas ou Pega
Dica sobre as roles domaindns e forestdns
As roles domaindns e forestdns requer autenticação para serem transferidas ou pegadas. Use “…..-U admistrator” ao final do comando. Por exemplo, suponhamos que iremos transferir a role forestdns.
samba-tool fsmo transfer --role=forestdns -U administrator
O Parâmetro force
Algumas versões do samba contém bug que impede que a role Domain Naming Master seja pega. Nesse caso poderemos usar o parâmetro “force”
Diferença Entre Transferir(Transfer) e Pegar(Seize) um Role
Antes de tudo, o recomendado é sempre transferir ao invés de Pegar uma role! Só pegue as roles se tiver certeza que o servidor de onde irá retirá-las nunca mais será conectado novamente à rede.
Suponhamos que temos dois servidores, o X e o Y.
o servidor samba X é o detentor das roles, o proprietário. O Y será para quem transferiremos.
- Transferir uma Role: O servidor samba X saberá que a(s) role(s) serão transferidas para o servidor samba Y.
- Pegar uma Role: Pegar aqui está nos sentido de “retirar com força”. O servidor samba X não saberá que a(s) role(s) serão transferidas para o servidor samba Y. O servidor samba Y receberá forçadamente as roles. Só devemos pegar uma role do servidor X quando este não for ser mais conectado à rede. Se se irá ser conectado novamente isso causará conflitos e deixará o servidor de domínio(AD) inconsistente.
Conclusão
Antes de retirar da rede, permanentemente ou não, um dos servidores Controladores de Domínio(DC), lembre de verificar se ele é o detentor de alguma role. De acordo com a retirada, se é permanente ou não, decida se vale a pena transferir ou retirar à força(Seize) as roles para outro DC.
One Comment to “Samba 25: Transferindo e Pegando as Funções FSMO”