2010/1/6 Renata Dias <renatchi...@gmail.com>: > Certo, mas eu tinha esse mesmo sistema (router, ipfw e layer2) em um outro > servidor i386. Quando reinstalei nesse amd64 me deparei com essas perdas.
Creio que o fato de ser AMD64 nao muda nada, então lhe pergunto: 1) Eram as mesmas regras de firewall? (com pequenas mudanças...) 2) O trafego na rede era semelhante? 3) Ambos as redes usam SWITCHES? 4) Sua interface LAN está em modo promisquo? > Como eu não faço o controle de MAC de meus clientes por este servidor, > talvez eu possa modificar meu firewall para que fique da seguinte forma: > > 1550 allow layer2 not mac-type ip // Libera todos os frames que não forem do > tipo IP > 1607 deny log all from any to any in via bge0 MAC any 00:12:17:34:eb:a0 > layer2 // Bloqueia esse MAC indesejado > 1608 deny log all from any to any in via bge0 MAC any 00:12:0e:a1:38:47 > layer2 // Bloqueia esse MAC indesejado > 1650 allow layer2 // Libera tudo que for layer2 - seria a mesma coisa de não > ter o net.link.ether.ipfw ativado, correto?? > > > // Controle de banda dos clientes como está atualmente > // Cliente 1 > 20040 pipe 20040 ip from any to 200.200.200.243 out via bge0 not layer2 > 20041 pipe 20041 ip from 200.200.200.243 to any in via bge0 not layer2 > 20045 allow ip from any to 200.200.200.243 > 20046 allow ip from 200.200.200.243 to any > > Ou então, como ja liberei layer2 na regra 1650 é lógico que só sobrou > pacotes "not layer2", então poderia ficar assim tbm: > > // Cliente 1 > 20040 pipe 20040 ip from any to 200.200.200.243 out via bge0 > 20041 pipe 20041 ip from 200.200.200.243 to any in via bge0 > 20045 allow ip from any to 200.200.200.243 > 20046 allow ip from 200.200.200.243 to any > > > Alguém discorda do meu raciocínio? Será que dessa forma eu vou prejudicar a > rede de alguma forma? O controle de banda nas regras pipe sofrerão alguma > deficiencia? A banda será controlada corretamente? > Dados insuficientes para uma afirmação conclusiva, mas olhando apenas esses pedaços do firewall que nos enviaste, eu fico tensionado a discordar. Existem varias formas de desenhar um firewall e em geral em pequenas redes isso pouco importa em termos de performance, pois o hardware que você estará usando como router (aquele PC velhinho que ninguem mais queria usar na empresa) é muito poderoso com FreeBSD, e dá conta com sobra para tratar aqueles 100 packets por segundo num link de uns 2Mbps. Mas quando você tem um trafego alto, torna-se evidente que o design vai fazer diferença e terás que usar hardware adequado para dar conta do recado. Quanto ao hardware, um detalhe da sua configuração me chamou a atenção e lhe sugiro uma troca: inverter as interfaces de rede, pois você está usando uma Broadcom (muito boa) para a rede roteável, onde o trafego é muito menor e sem lixo ARP, enquanto usas uma realtek (muito ruim) para a rede interna onde em relação a iface externa o trafego deve ser mais que o dobro, com todo aquele lixo ARP, broadcasts, netbios, virus, muitos pacotes que serão bloqueados no firewall, e talvez um proxy com cache. Bom, continuando com o firewall, tens que lembrar que como você faz NAT, todos os pacotes (não todos, tem aqueles que foram bloqueados e tals, mas vou generalizar pra simplificar a história) IP tem que passar pelo firewall 2 vezes: quando ele chega pela LAN (in) e quando ele está saindo para a WAN (out). Quando você habilita a camada 2 no fw, cada pacote passa 4 vezes pelo seu ipfw: L2 (in) -> L3 (in) -> **NAT** -> L3 (out) -> L2 (out) Partindo desse ponto de vista, nos meus firewalls (principalmente nos HEAVYs) gosto de dividir as checagens de cada tipo de trafego em blocos separados, fazendo com que os pacotes sejam checkados apenas pelas regras que lhes são pertinentes, e não por todas as regras existentes, segue um exemplo simples para lhe dar uma boa idéia disso que falei: # INICIO, REGRAS GERAIS QUE VC QUEIRA, # E OS "DIVISORES": ipfw blablabla... ipfw blablabla... ipfw blablabla... # DIVISORES: # pacotes entrando L2 ipfw add 2001 skipto 10000 all from any to any layer2 in # pacotes entrando L3 ipfw add 2002 skipto 20000 all from any to any not layer2 in # pacotes saindo L3 ipfw add 2003 skipto 30000 all from any to any not layer2 out # pacotes saindo L2 ipfw add 2004 skipto 40000 all from any to any layer2 out # se algo não bateu em nenhuma dessas, kill it! ipfw add 2005 deny all from any to any # 10.000 -> trate a partir daqui suas regras de L2 in, # e entao mande pro final do firewall ipfw add 10000 blablabla... ipfw add skipto 65000 all from any to any # 20.000 -> trate a partir daqui suas regras de L3 in, e skito final ipfw add 20000 blablabla... ipfw add skipto 65000 all from any to any # e assim por diante até que finalmente: ipfw add 65000 allow all from any to any -------------------------- Isso foi apenas um exemplo, dependendo da sua necessidade ou imaginação você poderia subdividi-lo muito mais, como fazer essa mesma divisao por interfaces, um bloco exclusivo para os pipes (dummynet), e o que mais você quiser inventar. []s Nilson ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd