terça-feira, dezembro 23, 2008

Ativando o ipfw nat no Kernel do FreeBSD

O NAT já salvou muitos administradores pelo mundo a fora pela escassez do Endereço IP IPv4. Enquanto ainda não há adesão em massa do IPv6 vamos nos arrumando.

Compilando o kernel do FreeBSD para ativar o ipfw nat é simples:
Nas séries FreeBSD 6x siga http://markmail.org/message/duwvruotxds475w4 .

Agora se estiver usando FreeBSD 7x lá vai o procedimento.

Em seu arquivo de configuração do kernel adicione:

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT # Aqui é ativo o NAT no kernel
options LIBALIAS # Necessário para o NAT
options IPDIVERT
options DUMMYNET
options HZ=1000

# cd /usr/src
# make buildkernel KERNCONF=SEUKERNEL
# make installkernel KERNCONF=SEUKERNEL
# reboot

Após subir a máquina você pode realizar alguns testes :

# ipfw nat 1 config if re0

# ipfw nat show config

Agora a idéia é documentar e trazer ambientes como balanceamento de saída e até de entrada.

Tiago

NATD já era agora é ipfw nat no FreeBSD

Olá pessoal


O ipfw nat para quem não sabe é um módulo nativo, está no kernel, que faz o NAT do tráfego de saída e também redirecionamento de portas e conexões.
O interessante é que todo mundo usa o divert com ipfw, assim dependendo do natd rodando. Dizem que o ipfw nat é mais rápido por rodar direto sob o controle do kernel, por isso estou testando a parada de sucesso para ver onde vai dar.

Abaixo está as regras de ipfw nat que consegui testar:

#!/bin/sh

# Usando a funçao de NAT do ipfw disponivel no kernel
# Por Tiago Pires

# Liberando tráfego para o loopback

ipfw -q add pass all from any to any via lo0
ipfw -q add deny all from any to 127.0.0.0/8
ipfw -q add deny ip from 127.0.0.0/8 to any

# Criando uma instancia de Redirecionamento de portas ( Tudo que
# chega na porta 3389 pela
# interface externa vai para o host 192.168.0.2)

ipfw -q nat 1 config if le0 redirect_port tcp 192.168.0.2:3389 3389

# Criando uma instancia de NAT na interface de saida

ipfw -q nat 2 config if le0

# Relaciono a regra de NAT de redicionamento com ipfw , assim
# permitindo a conexão na porta

ipfw add nat 1 ip from any to any

# Relaciono a regra NAT criada com o ipfw, assim permitindo
# o trafego

ipfw add nat 2 log ip from any to any

# Libera o tráfego

ipfw add allow ip from any to any

Logo logo posto como está o andamento dos testes

sexta-feira, dezembro 12, 2008

Iproute avançado

route add default eeeeeee ????

Para o pessoal que tiver algum problema com meu artigo ( http://www.vivaolinux.com.br/artigo/Roteamento-de-entrada-saida-com-iproute-e-iptables/) de roteamento com 2 links de entrada, abaixo está uma dica valiosa:

Se você está marcando o pacote que entra, mas o danado não volta pelo link que entrou e sua estrutura está mais ou menos assim:

ip rule add prio 22 fwmark 4 from 192.168.1.3 table link2
ip rule add prio 23 fwmark 5 from 192.168.1.2 table link1


Faça dessa maneira:

ip rule add prio 22 fwmark 4 table link2
ip rule add prio 23 fwmark 5 table link1


Tire o from e seja feliz.

att

Tiago

Retorno dos Posts

Olá pessoal

Estarei com tempo até no fim de ano para escrever vários posts então aguardem.........

FreeBSD The Power To Serve .


att

Tiago