Samba 25: Transferindo e Pegando as Funções FSMO

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:

  1. 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.
  2. 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. 
  3. 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.

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

One Comment to “Samba 25: Transferindo e Pegando as Funções FSMO”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *