Como posso configurar um persistente ip rule
no Linux (especificamente distribuições baseadas no Redhat)? Não existe um método incorporado? Minha única opção é adicionar /etc/rc.d/rc.local
ou criar meu próprio rc.d
script?
Edit: Para esclarecimento, não estou me referindo, iptables
mas a ip
ferramenta (que eu não acho que muitas pessoas estão familiarizadas). De qualquer forma, a regra que estou tentando persistir é adicionada com o seguinte comando:
# ip rule add fwmark 1 lookup 100
# ip rule
...
32765: from all fwmark 0x1 lookup 100
...
A única referência que encontrei para fazer isso é da Novell: http://www.novell.com/support/viewContent.do?externalId=7008874&sliceId=1, que recomenda a criação de um rc.d
script
linux
networking
redhat
brent
fonte
fonte
ip rule add fwmark 1 lookup 100
Respostas:
Como é habitual, me deparo com a resposta para meu próprio problema logo após perguntar :) Encontrei uma resposta em http://grokbase.com/t/centos/centos/099bmc07mq/persisting-iproute2-routes-and-rules
No Redhat 5+, o
/etc/sysconfig/network-scripts/ifup-routes
script lida comrule-*
arquivos. Código relevante abaixo:Script para RHEL 6.5 (possivelmente com mais de 6 anos):
fonte
A descrição acima é cerca de 3/4 da resposta - a parte que falta é como formatar o arquivo / etc / sysconf / network-scripts / rule-ethX. Você também precisa adicionar as tabelas de roteamento em / etc / iproute2 / rt_tables:
E adicione o arquivo de regras / etc / sysconfig / network-scripts / rule-eth0:
Observe que os nomes das tabelas devem corresponder e diferenciam maiúsculas de minúsculas.
fonte
note que se você usar prioridades nesses arquivos de regras para qualquer uma das regras, precisará usar prioridades para todas as regras. Caso contrário, os que não têm prioridades serão adicionados à cadeia de prioridade 0.
fonte