Danilo Egea escreveu: > On 01/07/10 11:13, Renata Dias wrote: >> Oi Nilson, >> >> 1) Mesmas regras de firewall, fiz o backup de uma maquina pra outra. >> 2) Mesmo trafego de rede, pois só troquei o servidor antigo pelo novo.. a >> rede é a mesma. >> 3) A WAN é ligada direto com a EBT e a LAN é onde está o switch e os >> clientes. >> 4) Não. >> >> Quanto a configuração de hardware... eu troquei um Desk Server Quad Core por >> esse servidor HP Proliant ML350 G6 ! >> A placa da WAN é uma Intel(R) PRO/1000 e a LAN é a onboard do servidor (HP >> NC326i Dual Port PCI-E Gigabit).... não é realtek. >> >> Meu questionamento é se as regras da forma como enviei abaixo causariam >> alguma perda de informação no meu caso que faço o controle de banda dos >> clientes por este servidor. >> >> Com a regra "allow ip from any to any layer2" os clientes voltam a responder >> com 0ms e 0% de perdas... como se a sysctl net.link.ether.ipfw estivesse >> desativada... >> >> Obrigada. >> >> 2010/1/7 Nilson<nil...@forge.com.br> >> >> >>> 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 >>> >>> >> >> > Olá Renata, > > será que a causa do problema não é a frequência do timer que você > definiu em 2000Hz? > A MAN do dummynet recomenda fortemente usar hz=1000... > > ignore se falei besteira :D > > abraços... >
Renata, alguma outra regra esta causando essa latencia. Normalmente regras de pipe, divert, queue, count com keep-state, altq, netgraph, ngtee, são os principais candidatos a merecer um "not layer2" ja que voce so precisa filtrar isso em camada 3 ou superior. Fora essas avalie o restante do seu firewall, provavelmente tem alguma outra regra que merece um "not layer2" por ai. -- Patrick Tracanelli FreeBSD Brasil LTDA. Tel.: (31) 3516-0800 316...@sip.freebsdbrasil.com.br http://www.freebsdbrasil.com.br "Long live Hanin Elias, Kim Deal!" ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd