[GTER] OpenBGPd: adicionar peer sem reiniciar

Douglas Fischer fischerdouglas at gmail.com
Sun Jan 5 02:49:53 -02 2014


Entendo isso Marcelo.

E sou fã da monstruosidade que pode-se fazer na relação custo_X_performance
usando por exemplo o openbgpd(entre outros).

Mas tem um ditado que aprendi já tem um tempinho numa empresa que trabalhei:
"Faz certo que dá certo!"
O problema é com opensource, o leque de coisas a serem feitas certas, e a
métrica para considerar certo ou errado é muito aberto.

Apenas para exemplificar:
(Nem percam tempo lendo o texto, só conte o numero de linhas)

 - Começa pela escolha do hardware:  NICs vs Northbridge, Clock, nº
threads, Ram, etc...
 - Aí vai p/ o S.O.: BSD, Linux, etc...
 - Aí vai p/ o tipo de distro que vai se usar: Mais pelas que tens que
começar compliando o boot sector, ou mais confortáveis que tem tudo
pré-compilado?
        (Aqui eu penso igual a um colega de missiva
         Ficar nessa punheteação de compila e recompila
         é igual a Tosar porco! É muito grito p/ pouca lã)
 - E os pacotes, vão ser os do repositório oficial?:
   Aí o que tá no repositório oficial quase sempre é muito desatualizado.
 - Vão pegar direto do desenvolvedor:
   Só disponibiliza o source, ou se tem pré-compilado não bate com algum
parâmetro do seu ambiente.
 - Baixa o source e aquela quinquilharia toda para compilar
 - Compila, ajusta configuração...
Até aqui... tá foi chatinho, mas não matou ninguém
 - Põe para rodar, e e e e e e ? ? ? ?
      - Não funciona
      - ou funciona meia boca
      - ou não faz uma coisa como deveria fazer
      - ou simplesmente dá crash do nada

E é aqui que vem o martírio
 - Será que é alguma incompatibilidade da NIC, pode ser só o firmware.
 - Talvez atualizando a UEFI
 - E a memória? Será que tinha que ser ECC?
 - E o S.O.? Será que fiz alguma coisa errada?
    (Exs. de tortura)
      - Putz fiz RAID via software, será que é isso que tá afetando?
      - Bah, será que tá dando pau por causa do locale,
        eu sabia que devia ter deixado tudo em inglês.
      - Putz eram só 2 GB e usei 32Bits
      - Putz eram só 4 GB e usei Kernel PAE
      - Putz usei 64, porque eram 16GB,
        mas me disseram que roda bem com 32Bits
E as pitacas alheias torturantes?
 - Se usou do repositório: "É por isso, devia ter baixado a última versão"
 - Se usou pré-compilado atualizado: "É por isso, devia ter compilado"
 - Se compilou: É por isso, não instale NADA que não seja do repositório
oficial.
        (Os mais xiitas desse ramo:
         "E se for usar, compile, gere o pacote,
          coloque ele na lista de repositórios e instale
          a partir desse mesmo pacote previamente compilado.")
 - Qual foi mesmo a versão do MAKE que você usou?
 - E o kernel headers? tava certo?
Aí subindo mais o nível:
 - E o IRQ Balance? Você fez?
        (P.S.: Má poooorrrra...
         Tenho que meter a mão lá embaixo nas IRQs?
         Só me falta que daqui a pouco alguém vai me
         falar que vou ter que jumpear essa merda.)
 - E depois de tudo isso é que você vai começar a pensar nas configs
   - Será que estão certas?
      - "O cara confere aqui para mim..."
      - "Acho que está tudo certo."
      - "O Outro cara, dá uma bisoiada aqui, tá tenso o clima."
      - "Você complilou com --alguma-coisa=true"
      - "Não"
      - "aaaa então é isso. tá vendo essa opção aqui? só com --alguma-coisa"



É aí que vem o diferencial de cair para marcas consagradas.
Tua parte tá bem feita? Vejamos... Qual é tua parte?

- Medir a demanda do cliente, e propor um coeficiente
  de crescimento e aplicá-lo pelo tempo estipulado.
- Validar com o cliente quais são as features que ele
  precisa.
- Encontrar a linha e modelo de equipamento que vai guentar
  as pontas do cliente pelo tempo especificado.
- Fixá-lo no rack
- Fazer o teu serviço(teu core-business) BEM FEITO.
  configurar a porra toda.
- Fazer a ativação ou virada, e ficar no rescaldo.
  - Deu merda?
    Confere teu serviço.
  - Continuou dando merda
    Pede para o colega conferir suas configs,
    e na sequencia demais variáveis do ambiente.
  - Continuou dando merda
    Liga pro suporte, e já em paralelo informa o CEO/CIO
    que estamos aguardando retorno do fabricante.
    - Indiano te liga em até 2h.

   - Putz é um bug
 de versão? E qual é o workaround?
      A Faz o downgrade de versão?
    - Fez, testou, OK...






Em 5 de janeiro de 2014 00:05, Marcelo Gondim <gondim at bsdinfo.com.br>escreveu:

> Em 04/01/14 13:10, Douglas Fischer escreveu:
>
>  (Ciente de que vou tomar várias pedradas)
>> Sinceramente, é por isso que não sou fã de usar ferramentas como
>> openbgpd...
>>
>> "Putz, não funcionou..."
>> - Tenta o reload.
>> "Não funcionou..."
>> - Tenta o restart.
>> "Não funcionou..."
>> - Tenta o tenta o kill.
>> "Não funcionou..."
>> - Tenta o tenta o no processo pai e deixa subir com whatch-dog.
>> "Não funcionou..."
>> - Tenta usar uma meia verde e outra azul, e restart.
>> "Não funcionou..."
>> - Inverte as meia e restart denovo.
>> "Não funcionou..."
>> - Recompila o kernel com a opção --tãdã=off e restart denovo.
>>
> Douglas,
>
> Sem dar nenhuma pedrada.  :)   O caso dele deve ser algo com alguma
> configuração que não está correta em alguma ponta ou algum outro problema
> desconhecido. Ele queria uma maneira de fechar o peering sem ter que
> re-iniciar todo o serviço bgp. Eu sugeri à ele primeiro testar se existe
> algum erro de syntax e na pior das hipóteses o clear foi feito pra isso
> mesmo, reiniciar uma conexão sem ter que derrubar todo o serviço.
> Eu uso FreeBSD + OpenBGP tem mais de 2 anos e nunca tive esse problema que
> ele relatou. Tenho 5 sessões eBGP e 9 sessões iBGP sendo IPv4 e agora
> iniciando IPv6 e não tenho nenhum problema de ter que reiniciar um serviço
> quando crio uma nova sessão bgp. Simplesmente faço:
>
> # bgpd -n
> # bgpctl reload
>
> Checo se a sessão levantou tudo bem com:
>
> # bgpctl s s
>
> Caso não tenha fechado e se eu quiser resetar apenas aquele neighbor eu
> mando:
>
> # bgpctl nei nome_neighbor clear
>
> Não tem nada de errado nisso. Não é nada maceteado, ou algum bug
> contornado, são apenas comandos úteis.
>
> Respeito a sua opinião em não querer usar a ferramenta ou querer usar algo
> proprietário. Eu, sinceramente, não tenho o que reclamar pois essa solução
> segura +20mil assinantes distribuídos em 4 cidades e até hoje não me deixou
> na mão.
>
> Isso não foi pedrada, apenas um relato que alias já tiveram vários aqui.
>  :)
>
>
>
>>
>>
>>
>>
>> Em 3 de janeiro de 2014 18:00, Listas Discussão <dl.lagg0 at gmail.com
>> >escreveu:
>>
>>  Alisson, ontem quando adicionei o novo peer, fiz exatamente o que você
>>> sugeriu, efetuei as configurações no arquivo bgpd.conf e após conferir
>>> executei o comando "bgpctl reload". Após isso com o comando "bgpctl show
>>> sum" o novo peer constava no resultado, porém sempre como "Idle" tentei
>>> dar
>>> up e down e nada, executei o comando "/usr/local/etc/rc.d/openbgpd
>>> reload"
>>> para dar um reload no daemon e também não tive resultado.
>>>
>>> A última alternativa foi "/usr/local/etc/rc.d/openbgpd restart", subiu de
>>> primeira, porém nesse caso as outras sessões foram reiniciadas também.
>>> Foi
>>> tudo muito rápido, mas alguns clientes mais chatos já perceberam e
>>> reclamaram.
>>>
>>> Hoje precisei adicionar 2 novos peers, estou aguardando os clientes
>>> configurarem no lado deles, mas estou com receio de não subir novamente.
>>>
>>>
>>>
>>> Em 3 de janeiro de 2014 17:11, Alisson <alissongoncalves at bsd.com.br
>>>
>>>> escreveu:
>>>> Se o Peer não está subindo, há algo de errado em suas configurações.
>>>>
>>>> pode ser algum dos parâmetros em conflito.
>>>>
>>>>
>>>> Em 3 de janeiro de 2014 16:10, Alisson <alissongoncalves at bsd.com.br
>>>>
>>>>> escreveu:
>>>>> Após fazer todas configurações no arquivo bgpd.conf
>>>>>
>>>>> execute o comando:
>>>>>
>>>>> bgpctl reload
>>>>>
>>>>> ele não irá reiniciar o daemon, vai checar mudanças no bgpd.conf e
>>>>>
>>>> subirá
>>>
>>>> o novo peer se estiver configurado corretamente,
>>>>>
>>>>> se haver erros, seu BGP não irá parar.
>>>>>
>>>>>
>>>>> Em 3 de janeiro de 2014 15:50, Leonardo Mauricio Portela <
>>>>> leonardo.gestec at corp.globo.com> escreveu:
>>>>>
>>>>> Tenta um kill -HUP $ID no id do processo da aplicação, na teoria
>>>>>
>>>> resolve.
>>>
>>>>
>>>>>> Em 3 de janeiro de 2014 15:58, Listas Discussão <dl.lagg0 at gmail.com
>>>>>>
>>>>>>> escreveu:
>>>>>>> Boa tarde pessoal.
>>>>>>>
>>>>>>> Gostaria de saber se é possível adicionar um novo peer no OpenBGPd e
>>>>>>>
>>>>>> subir
>>>>>>
>>>>>>> a sessão sem ser necessário um restart no daemon, em caso positivo
>>>>>>>
>>>>>> como?
>>>>
>>>>>
>>>>>>> Já fiz a configuração no arquivo bgpd.conf, após dar um reload o
>>>>>>>
>>>>>> novo
>>>
>>>> peer
>>>>>>
>>>>>>> aparece como ativo na saída do comando "bgpct show sum" mas a sessão
>>>>>>>
>>>>>> não
>>>>
>>>>> fica UP, somente após um restart.
>>>>>>> --
>>>>>>>
>>>>>>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>



-- 
Douglas Fernando Fischer
Engº de Controle e Automação



More information about the gter mailing list