[FUG-BR] downgrade 9 to 8

Renato Botelho rbgarga em gmail.com
Segunda Maio 21 11:48:53 BRT 2012


2012/5/21 Renato Frederick <renato at frederick.eti.br>:
> Olá Pessoal,
>
> Seguinte:
>
> Eu tenho uma gambiarra atualmente :)
>
> uso o PF.
>
> Porém, precisei no passado de uma maneira rápida de gerar gráficos do
> cacti de tráfego para diversos IP/portas.
>
> Para gerar este tipo de gráfico no PF,  usando o cacti, eu precisava
> jogar o tráfego que hoje é um allow referenciando os IPs, para uma
> table, e daí usar o "pfctl -T table blablablalbala" para gerar um
> contador de bytes/pacotes in e out e importar isto para o cacti, usando
> shell script.
>
> Porém, o PF que uso tem umas 4mil linhas e a manutenção disto já é um
> dano, trocar isto para tabela está fora de questão.
>
> Eu já fiz isto no pasado usando o "count" do IPFW, inclusive importando
> via SNMP, funciona perfeitamente, Porém neste cenário atual, qualquer
> regra de count/allow/deny do IPFW não vai funcionar(só o divert ou rdr)
> porque a regra que dá match nestes IP já é processada pelo PF. De fato,
> se eu limpo as regras do PF, o IPFW começa a contar.
>
> Então a gambiarra foi:
>
> Carregar o IPF via módulo no kernel e usar o count do IPF:
>
> more /etc/ipf.rules
> count in on bce1 from any to 187.X.X.X port = 80
> count out on bce1 from 187.X.X.X to any port = 80
> [..]
>
> Se eu carregar o IPF no kernel, ele também deixava de funcionar, já que
> aí o PF voltava a ter prioridade.
>
> Isto funcionou muito bem no freebsd 7, no 8 também.
>
> Porém no 9 parou de funcionar e preciso disto o mais rápido possível.
>
> Minha dúvida é, arriscam um downgrade do 9 para o 8? Nunca fiz antes :)

Nunca fiz isso não, mas acredito que há chances de funcionar. Eu faria
da seguinte maneira, contando que o /usr/src jah tenha os sources do
8.x:

# rm -rf /usr/obj/*
# cd /usr/src
# make buildworld buildkernel
# make installworld
# reboot

Nesse ponto vc tem o base system do 8.x e o kernel do 9. O problema
agora é que vc tem uma porrada de libraries duplicadas, com a versao
do 8 e do 9 instaladas.

Pra resolver esse caso o único jeito que consigo pensar é, baixar o src
do 9.x pra /usr/src9 e depois:

# cd /usr/src9
# make check-old-libs

Ele vai apontar pra vc o nome das libs do 8.x que ele removeria no update
pro 9, então vc teria que pegar lib por lib e ver se a versão N+1 existe, e,
se existir, remover, por exemplo, se ele listar a libm.so.5, vc checa se a
libm.so.6 existe, se existir vc remove.

Depois de limpar tudo, roda um make installworld novamente, só pra ter
certeza que tudo o que precisa do 8 ta em ordem e depois um installkernel.

Pode funcionar.

Ah, depois disso tudo ainda tem que recompilar os ports.

[]s
-- 
Renato Botelho


Mais detalhes sobre a lista de discussão freebsd