[FUG-BR] [patch] add support setfib(1) in rc.d/routing
Rafael Ganascim
rganascim em gmail.com
Quarta Setembro 2 20:12:24 BRT 2009
Aproveitando o assunto....
Sera que o quagga de alguma maneira pode trabalhar com as varias
tabelas? Ou ele consegue apenas usar a main?
2009/9/2 Danton Dorati <danton em freebsdbrasil.com.br>:
> Para aqueles que já estão familiarizados com o novo recurso de poder
> manipular várias (no total 16) tabelas de roteamento (fib)
> no FreeBSD aqui vai um patch, mesmo que ainda não oficial (já foi
> submetido um PR para adicionar esse recurso),
> para poder manipular através do rc.conf, rotas defaults de cada tabela
> (defaultrouter_fibN) e rotas estáticas (static_routes_fibN),
> onde "N" é número da tabela de roteamento que deseja manipular
> (lembrando que a primeira fib é a 0).
>
> # fetch -o /usr/src/rc.d-routing_man-rc.conf.patch
> "http://www.freebsd.org/cgi/query-pr.cgi?prp=132476-1-txt&n=/patch.txt"
> # patch -d /usr/src -p0 < /usr/src/rc.d-routing_man-rc.conf.patch
> # cp -p /etc/rc.d/routing /etc/rc.d/routing.old
> # cp /usr/src/etc/rc.d/routing /etc/rc.d
> # chmod +x /etc/rc.d/routing
> # cp -p /usr/share/man/man5/rc.conf.5.gz
> /usr/share/man/man5/rc.conf.5.gz.old
> # gzip -cn /usr/src/share/man/man5/rc.conf.5 >
> /usr/share/man/man5/rc.conf.5.gz
>
> Para mais informações do novo recurso.
> # man rc.conf
>
> Obs.: Eu mesmo fiz alguns testes, inclusive com servidores em produção,
> ou seja rebootei as máquinas e usei os comandos:
>
> Muita atenção em executar esses comandos em máquinas remotas.
> # /etc/netstart
> # /etc/rc.d/routing (stop|start|restart)
>
> Acredito que esse Problem Report ainda não foi "committado", pois
> quando se deixa de usar a forma padrão para atribuir
> uma rota default na fib 0 e passa a usar especificando a tabela de
> roteamento (defaultrouter_fib0="IP"), ou seja ignorando
> defaultrouter="IP", a máquina fica sem rota de saída para internet. Ou
> seja o uso dessa opção ainda é necessário (obrigatório)
> caso queira que continue tendo conectividade com o mundo externo
> (nuvem). No entanto é bem simples de corrigir esse pequeno
> "bug" (patch do patch). Basta adicionar o seguinte no arquivo
> /etc/rc.d/routing na função "static_start()":
>
> Logo abaixo de "_fibs_num=`sysctl -n net.fibs`"
>
> if [ -z "${defaultrouter}" ] || [ "${defaultrouter}" = "NO" ] &&
> [ -n "${defaultrouter_fib0}" ]; then
> defaultrouter=${defaultrouter_fib0}
> fi
> if [ -z "${defaultrouter}" ] || [ "${defaultrouter}" = "NO" ] &&
> [ -z "${defaultrouter_fib0}" ]; then
> defaultrouter="NO"
> fi
>
> Ficando parecido com esse trecho:
>
> ...
> static_start()
> {
> _fibs_num=`sysctl -n net.fibs`
> if [ -z "${defaultrouter}" ] || [ "${defaultrouter}" = "NO" ] &&
> [ -n "${defaultrouter_fib0}" ]; then
> defaultrouter=${defaultrouter_fib0}
> fi
> if [ -z "${defaultrouter}" ] || [ "${defaultrouter}" = "NO" ] &&
> [ -z "${defaultrouter_fib0}" ]; then
> defaultrouter="NO"
> fi
> if [ -n "${static_routes}" ]; then
> static_routes_fib0=${static_routes}
> fi
> if [ -n "${defaultrouter}" ]; then
> defaultrouter_fib0=${defaultrouter}
> fi
>
> # Setup static routes. This should be done before router discovery.
> ...
>
>
>
>
> --
> Atenciosamente,
> Danton Dorati
>
> http://www.freebsdbrasil.com.br
> Telefone/Fax: (31) 3516 0800
> FreeBSD Brasil - FreeBSD Brasil LTDA
> Avenida Getulio Vargas, 54 - 3º andar
> Funcionarios - Belo Horizonte.
>
> "Happiness is nothing more than good health and a bad memory."
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
Mais detalhes sobre a lista de discussão freebsd