[FUG-BR] PFSENSE e BGP e TABLES e PF

Renato Frederick renato em frederick.eti.br
Terça Julho 17 13:55:11 BRT 2012


Opa e aí Brandi! :)


Em 17/07/2012 10:09, Edson Brandi escreveu:
> São tabelas :)
Legal, meio caminho andado!
> Vc já deu uma olhada no /etc/inc/filter.inc ?
Estou olhando, admito que pouco editei dos .inc, apenas a muito tempo 
inclui um ajuste de MTU para resolver um problema do PPPTP, mas acho que 
era no 1 ainda

>
> Abre ele ai e da uma olhada nas linhas que vem depois da linha 542
[...]
>
> Ou seja, se você criar um alias pela interface web e não cadastrar
> nenhum IP, pfSense vai gerar uma linha no seu /tmp/rules.debug do
> tipo:
>
> # User Aliases
> table <NOME_DO_ALIAS> persist
> MONE_DO_ALIAS = "<NOME_DO_ALIAS>"
>
> Se você criar cadastrar manualmente um endereço ele vai gerar uma
> entrada do tipo:
>
> # User Aliases
> table <NOME_DO_ALIAS> {   10.10.10.0/24  10.10.20.0/24  10.10.30.0/24 }
> NOME_DO_ALIAS = "<NOME_DO_ALIAS>"
>
> Se você quiser que ele faça as tabelas serem persistentes mesmo quando
> vc insere manualmente os dados, vc precisa alterar a linha 566 de:
>
> $aliases .= "table <{$aliased['name']}> { {$addrlist}{$extralias} } \n";
>
> para
>
> $aliases .= "table <{$aliased['name']}> { {$addrlist}{$extralias} } persist\n";
Certo, mais um problema resolvido, os aliases, que serão as tabelas que 
irão receber as redes do BGP vão ficar em branco, ficando persist. :)
Se eu precisar de uma route-to específico(do tipo HTTPS), crio outro 
alias e o ponho antes destas regras, no firewall.

>
> Eu não testei Renato, mas acredito que devido o comportamento default
> do pfSense, sempre que vc aplica uma alteração na interface web ele
> gera um /tmp/rules.debug e faz o load do mesmo usando o pfctl, o que
> acredito que ocorra nesse caso é que ele vai "limpar" os dados
> inseridos pelo bgpd , sobrescrevendo com os dados cadastrados na
> interface web.
Vou ter que testar com um AS privado divulgando umas redes classe A, 
acho que alguém na GTER até já publicou um script prá popular a routing 
table.
>
> Mas acho que o bgpd não vai repopular essa tabela, se vc não restartar ele...
Repopula(para mais a menos) "a quente" só se aprender/desaprender alguma 
rede(ou seja, receber um BGP UPDATE do peer) e limpa os dados da table 
se receber um BGP NOTIFICATION
>
> Talvez uma saida para este caso (para alimentar o alias com dados
> gerados por um outro software), seria criar um firewall  alias do tipo
> "url". Este tipo de alias permite que vc especifique uma url com um
> arquivo (pode estar inclusive compactado) o qual contem a lista de
> redes/ips que vc quer que façam parte do alias.
Bacana, não sabia que o pfsense tinha este recurso!
>
> Periodicamente o pfsense busca essa informação e atualiza o as tabelas
> do pf (vc pode ajustar essa periodicidade no cron pro exemplo).
Certo.
>
> Acredito que se você conseguir fazer um shell script para gerar um
> dump dos dados do bgpd para um arquivo texto (os mesmos que ele
> gravaria no pf), e este mesmo script na sequencia chamar o script do
> pfsense que faz a atualização do aliases
> (/etc/rc.update_alias_url_data e na sequencia o rc.update_urltables),
> vc conseguiria o que quer :)
>
> O que acha?
Acho que é tranquilo, um shell que compara a quantidade de rotas atual e 
joga no arquivo. na próxima execução, um "if" se =!, joga no arquivo 
again e roda de novo, se =, não faz nada.

Valeu de novo, vou dar uma pesquisada :)




Mais detalhes sobre a lista de discussão freebsd