Re: [FUG-BR] Packet loss com Layer2

2010-01-08 Por tôpico Renata Dias
Realmente, quando o servidor era i386 o HZ estava em 1000, mas de
qualquer forma recompilei o kernel dessa AMD64 passando o HZ pra 1000 e não
adiantou nada.

Como o Patrick disse, deve ter mesmo alguma regra precisando de uma
atenção extra... o estranho é que antes de trocar a maquina não tinha esse
problema..

   Bom... mas solucionei adicionando regra de allow para tudo que for layer2
depois das regras de bloqueio dos MACs indesejados, restando assim somente o
tr4afego not layer2 para as demais regras do firewall...


Obrigada!

2010/1/7 Patrick Tracanelli eks...@freebsdbrasil.com.br

 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 Nilsonnil...@forge.com.br
 
 
  2010/1/6 Renata Diasrenatchi...@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 

Re: [FUG-BR] Packet loss com Layer2

2010-01-07 Por tôpico Renata Dias
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 1 all from any to any 

Re: [FUG-BR] Packet loss com Layer2

2010-01-07 Por tôpico Danilo Egea
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 Nilsonnil...@forge.com.br


 2010/1/6 Renata Diasrenatchi...@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...
 

Re: [FUG-BR] Packet loss com Layer2

2010-01-07 Por tôpico Alessandro de Souza Rocha
geralmente eu uso hz=1000, por padrao nao tenho muito trafego na rede.

2010/1/7 Danilo Egea daniloe...@yahoo.com.br:
 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 Nilsonnil...@forge.com.br


 2010/1/6 Renata Diasrenatchi...@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 

Re: [FUG-BR] Packet loss com Layer2

2010-01-07 Por tôpico Patrick Tracanelli
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 Nilsonnil...@forge.com.br


 2010/1/6 Renata Diasrenatchi...@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 

[FUG-BR] Packet loss com Layer2

2010-01-06 Por tôpico Renata Dias
Boa tarde!


Tenho um FreeBSD 7.2 STABLE rodando como router da minha rede e o trafego da
rede é de 34Mbps.

Servidor HP:

Intel(R) Xeon(R) CPU   E5520  @ 2.27GHz
usable memory = 6424711168 (6127 MB)
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP/HT): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP/HT): APIC ID:  3
 cpu4 (AP): APIC ID:  4
 cpu5 (AP/HT): APIC ID:  5
 cpu6 (AP): APIC ID:  6
 cpu7 (AP/HT): APIC ID:  7
Kernel AMD64

Opções adicionadas no kernel DEFAULT:

options HZ=2000
maxusers6121

options ACCEPT_FILTER_DATA
options DEVICE_POLLING
options ACCEPT_FILTER_HTTP
options IPSTEALTH
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options DUMMYNET


Quando eu habilito a sysctl net.link.ether.ipfw=1 toda minha rede passa a
apresentar tempo de latencia acima de 80ms (quando rede local deveria ser 0
ou 1ms) e perdas de pacote acima de 10%. É só eu voltar a sysctl
net.link.ether.ipfw para 0 (zero) e a rede volta a responder com 0ms e 0% de
perdas.

No meu Firewall tenho algumas regras de bloqueio de MAC e em seguida regras
de controle de banda:

01608 deny log logamount 100 ip from any to any in via bge0 MAC any
00:12:0e:a1:38:47 layer2
01609 deny log logamount 100 ip from any to any in via bge0 MAC any
00:e0:4c:fa:87:48 layer2
01650 allow ip from any to any layer2 not mac-type 0x0800

# 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
# Cliente 2
20060 pipe 20060 ip from any to 200.200.200.220 out via bge0 not layer2
20061 pipe 20061 ip from 200.200.200.220 to any in via bge0 not layer2
20065 allow ip from any to 200.200.200.220
20066 allow ip from 200.200.200.220 to any

Obrigada!

-- 
Renata Dias
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Packet loss com Layer2

2010-01-06 Por tôpico Márcio Luciano Donada
Renata Dias escreveu:
 # 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
 # Cliente 2
 20060 pipe 20060 ip from any to 200.200.200.220 out via bge0 not layer2
 20061 pipe 20061 ip from 200.200.200.220 to any in via bge0 not layer2
 20065 allow ip from any to 200.200.200.220
 20066 allow ip from 200.200.200.220 to any
   

Renata,
Camada de enlace lê nível MAC, você está montando regras com
endereçamento IP, que é na camada superior. Veja esse link [1], talvez
tenha que refazer essas regras.

[1]. http://www.fug.com.br/historico/html/freebsd/2005-02/msg00274.html

Abraço,
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Packet loss com Layer2

2010-01-06 Por tôpico Alessandro de Souza Rocha
renata vc desativou a passagem unica outra coisa eu uso controle de
mac e ip desta forma.

ipfw disable one_pass
#liberar a tabela arp
ipfw add 10 allow layer2 not mac-type ip


##
#Controle de mac e ip de cada Cliente  #
##
# Cliente: Cliente 1
ipfw add 1 allow layer2 src-ip 192.168.0.1 mac any 00:11:09:d9:3f:6b in via rl0

# Cliente: Cliente 2
ipfw add 104 allow layer2 src-ip 10.1.1.2 MAC any 00:0b:d0:fe:00:d1 in via rl0

# Cliente: Cliente 3
ipfw add 5 allow layer2 src-ip  100.1.1.2 MAC any 00:0A:52:00:88:2D in via rl0

#fechando tudo que não  tiver cadastro na tabela acima
ipfw add 65000 deny all from any to any layer2 in via rl0

2010/1/6, Renata Dias renatchi...@gmail.com:
 Boa tarde!


 Tenho um FreeBSD 7.2 STABLE rodando como router da minha rede e o trafego da
 rede é de 34Mbps.

 Servidor HP:

 Intel(R) Xeon(R) CPU   E5520  @ 2.27GHz
 usable memory = 6424711168 (6127 MB)
 FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP/HT): APIC ID:  1
  cpu2 (AP): APIC ID:  2
  cpu3 (AP/HT): APIC ID:  3
  cpu4 (AP): APIC ID:  4
  cpu5 (AP/HT): APIC ID:  5
  cpu6 (AP): APIC ID:  6
  cpu7 (AP/HT): APIC ID:  7
 Kernel AMD64

 Opções adicionadas no kernel DEFAULT:

 options HZ=2000
 maxusers6121

 options ACCEPT_FILTER_DATA
 options DEVICE_POLLING
 options ACCEPT_FILTER_HTTP
 options IPSTEALTH
 options IPFIREWALL
 options IPFIREWALL_FORWARD
 options IPFIREWALL_VERBOSE
 options IPFIREWALL_VERBOSE_LIMIT=100
 options IPFIREWALL_DEFAULT_TO_ACCEPT
 options IPDIVERT
 options DUMMYNET


 Quando eu habilito a sysctl net.link.ether.ipfw=1 toda minha rede passa a
 apresentar tempo de latencia acima de 80ms (quando rede local deveria ser 0
 ou 1ms) e perdas de pacote acima de 10%. É só eu voltar a sysctl
 net.link.ether.ipfw para 0 (zero) e a rede volta a responder com 0ms e 0% de
 perdas.

 No meu Firewall tenho algumas regras de bloqueio de MAC e em seguida regras
 de controle de banda:

 01608 deny log logamount 100 ip from any to any in via bge0 MAC any
 00:12:0e:a1:38:47 layer2
 01609 deny log logamount 100 ip from any to any in via bge0 MAC any
 00:e0:4c:fa:87:48 layer2
 01650 allow ip from any to any layer2 not mac-type 0x0800

 # 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
 # Cliente 2
 20060 pipe 20060 ip from any to 200.200.200.220 out via bge0 not layer2
 20061 pipe 20061 ip from 200.200.200.220 to any in via bge0 not layer2
 20065 allow ip from any to 200.200.200.220
 20066 allow ip from 200.200.200.220 to any

 Obrigada!

 --
 Renata Dias
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd



-- 
Alessandro de Souza Rocha
Administrador de Redes e Sistemas
FreeBSD-BR User #117
 Long live FreeBSD

 Powered by 

  (__)
   \\\'',)
 \/  \ ^
 .\._/_)

 www.FreeBSD.org
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Packet loss com Layer2

2010-01-06 Por tôpico Renata Dias
Alessandro,

Estou executando o ipfw disable one_pass, sim.

A minha regra:
01650 allow ip from any to any layer2 not mac-type 0x0800

É a mesma que a sua:
ipfw add 10 allow layer2 not mac-type ip

Essa regra para liberar tudo que não for do tipo IP.

Quanto ao controle de MAC e IP eu não faço, utilizo o layer2 apenas para
bloquear alguns MAC indesejaveis e em seguida as regras de PIPE para
controle de banda dos clientes.

Como não faço o controle de MAC eu não posso seguir o link que o Márcio me
enviou, pois esse coloca um deny layer2 antes de adicionar as regras de
PIPE. Se eu fizer isso irei bloquear todo o trafego dos clientes, pois o MAC
deles não está pré definido.

Nas regras de PIPE eu utilizo not layer2 justamente para que o controle de
banda seja feito somente no protocolo IP e dessa forma a banda de navegação
não fique reduzida à metade do que for definido no PIPE.


Alguma idéia do porque das perdas de pacote?

Obrigada.



2010/1/6 Alessandro de Souza Rocha etherlin...@gmail.com

 renata vc desativou a passagem unica outra coisa eu uso controle de
 mac e ip desta forma.

 ipfw disable one_pass
 #liberar a tabela arp
 ipfw add 10 allow layer2 not mac-type ip


 ##
 #Controle de mac e ip de cada Cliente  #
 ##
 # Cliente: Cliente 1
 ipfw add 1 allow layer2 src-ip 192.168.0.1 mac any 00:11:09:d9:3f:6b in via
 rl0

 # Cliente: Cliente 2
 ipfw add 104 allow layer2 src-ip 10.1.1.2 MAC any 00:0b:d0:fe:00:d1 in via
 rl0

 # Cliente: Cliente 3
 ipfw add 5 allow layer2 src-ip  100.1.1.2 MAC any 00:0A:52:00:88:2D in via
 rl0

 #fechando tudo que não  tiver cadastro na tabela acima
 ipfw add 65000 deny all from any to any layer2 in via rl0

 2010/1/6, Renata Dias renatchi...@gmail.com:
   Boa tarde!
 
 
  Tenho um FreeBSD 7.2 STABLE rodando como router da minha rede e o trafego
 da
  rede é de 34Mbps.
 
  Servidor HP:
 
  Intel(R) Xeon(R) CPU   E5520  @ 2.27GHz
  usable memory = 6424711168 (6127 MB)
  FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
   cpu0 (BSP): APIC ID:  0
   cpu1 (AP/HT): APIC ID:  1
   cpu2 (AP): APIC ID:  2
   cpu3 (AP/HT): APIC ID:  3
   cpu4 (AP): APIC ID:  4
   cpu5 (AP/HT): APIC ID:  5
   cpu6 (AP): APIC ID:  6
   cpu7 (AP/HT): APIC ID:  7
  Kernel AMD64
 
  Opções adicionadas no kernel DEFAULT:
 
  options HZ=2000
  maxusers6121
 
  options ACCEPT_FILTER_DATA
  options DEVICE_POLLING
  options ACCEPT_FILTER_HTTP
  options IPSTEALTH
  options IPFIREWALL
  options IPFIREWALL_FORWARD
  options IPFIREWALL_VERBOSE
  options IPFIREWALL_VERBOSE_LIMIT=100
  options IPFIREWALL_DEFAULT_TO_ACCEPT
  options IPDIVERT
  options DUMMYNET
 
 
  Quando eu habilito a sysctl net.link.ether.ipfw=1 toda minha rede passa a
  apresentar tempo de latencia acima de 80ms (quando rede local deveria ser
 0
  ou 1ms) e perdas de pacote acima de 10%. É só eu voltar a sysctl
  net.link.ether.ipfw para 0 (zero) e a rede volta a responder com 0ms e 0%
 de
  perdas.
 
  No meu Firewall tenho algumas regras de bloqueio de MAC e em seguida
 regras
  de controle de banda:
 
  01608 deny log logamount 100 ip from any to any in via bge0 MAC any
  00:12:0e:a1:38:47 layer2
  01609 deny log logamount 100 ip from any to any in via bge0 MAC any
  00:e0:4c:fa:87:48 layer2
  01650 allow ip from any to any layer2 not mac-type 0x0800
 
  # 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
  # Cliente 2
  20060 pipe 20060 ip from any to 200.200.200.220 out via bge0 not layer2
  20061 pipe 20061 ip from 200.200.200.220 to any in via bge0 not layer2
  20065 allow ip from any to 200.200.200.220
  20066 allow ip from 200.200.200.220 to any
 
  Obrigada!
 
  --
  Renata Dias
  -
  Histórico: http://www.fug.com.br/historico/html/freebsd/
  Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
 


 --
 Alessandro de Souza Rocha
 Administrador de Redes e Sistemas
 FreeBSD-BR User #117
 Long live FreeBSD

 Powered by 

  (__)
   \\\'',)
 \/  \ ^
 .\._/_)

 www.FreeBSD.orghttp://www.freebsd.org/
  -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd




-- 
Renata Dias
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Packet loss com Layer2

2010-01-06 Por tôpico Alessandro de Souza Rocha
quando vc ativa o sysctl net.link.ether.ipfw=1 habilitar o suporte a
camada 2 para o ipfw, vai comerca filtra na camada 2 por isso que vai
aumentar a latencia vai consumir memoria e processamento.
qualquer duvida da uma lida no man do ipfw nesta parte
habilitar o suporte a camada 2 para o ipfw.

  ^to upper layersV
  |   |
  +--+
  ^   V
[ip(6)_input]   [ip(6)_output]
net.inet(6).ip(6).fw.enable=1
  |   |
  ^   V
[ether_demux][ether_output_frame]  net.link.ether.ipfw=1
  |   |
  +[bdg_forward]+net.link.bridge.ipfw=1
  ^   V
  |  to devices   |


2010/1/6, Renata Dias renatchi...@gmail.com:
 Boa tarde!


 Tenho um FreeBSD 7.2 STABLE rodando como router da minha rede e o trafego da
 rede é de 34Mbps.

 Servidor HP:

 Intel(R) Xeon(R) CPU   E5520  @ 2.27GHz
 usable memory = 6424711168 (6127 MB)
 FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP/HT): APIC ID:  1
  cpu2 (AP): APIC ID:  2
  cpu3 (AP/HT): APIC ID:  3
  cpu4 (AP): APIC ID:  4
  cpu5 (AP/HT): APIC ID:  5
  cpu6 (AP): APIC ID:  6
  cpu7 (AP/HT): APIC ID:  7
 Kernel AMD64

 Opções adicionadas no kernel DEFAULT:

 options HZ=2000
 maxusers6121

 options ACCEPT_FILTER_DATA
 options DEVICE_POLLING
 options ACCEPT_FILTER_HTTP
 options IPSTEALTH
 options IPFIREWALL
 options IPFIREWALL_FORWARD
 options IPFIREWALL_VERBOSE
 options IPFIREWALL_VERBOSE_LIMIT=100
 options IPFIREWALL_DEFAULT_TO_ACCEPT
 options IPDIVERT
 options DUMMYNET


 Quando eu habilito a sysctl net.link.ether.ipfw=1 toda minha rede passa a
 apresentar tempo de latencia acima de 80ms (quando rede local deveria ser 0
 ou 1ms) e perdas de pacote acima de 10%. É só eu voltar a sysctl
 net.link.ether.ipfw para 0 (zero) e a rede volta a responder com 0ms e 0% de
 perdas.

 No meu Firewall tenho algumas regras de bloqueio de MAC e em seguida regras
 de controle de banda:

 01608 deny log logamount 100 ip from any to any in via bge0 MAC any
 00:12:0e:a1:38:47 layer2
 01609 deny log logamount 100 ip from any to any in via bge0 MAC any
 00:e0:4c:fa:87:48 layer2
 01650 allow ip from any to any layer2 not mac-type 0x0800

 # 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
 # Cliente 2
 20060 pipe 20060 ip from any to 200.200.200.220 out via bge0 not layer2
 20061 pipe 20061 ip from 200.200.200.220 to any in via bge0 not layer2
 20065 allow ip from any to 200.200.200.220
 20066 allow ip from 200.200.200.220 to any

 Obrigada!

 --
 Renata Dias
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd



Alessandro de Souza Rocha
Administrador de Redes e Sistemas
FreeBSD-BR User #117
 Long live FreeBSD

 Powered by 

  (__)
   \\\'',)
 \/  \ ^
 .\._/_)

 www.FreeBSD.org
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Packet loss com Layer2

2010-01-06 Por tôpico Renata Dias
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.

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?

Obrigada!



2010/1/6 Alessandro de Souza Rocha etherlin...@gmail.com

 quando vc ativa o sysctl net.link.ether.ipfw=1 habilitar o suporte a
 camada 2 para o ipfw, vai comerca filtra na camada 2 por isso que vai
 aumentar a latencia vai consumir memoria e processamento.
 qualquer duvida da uma lida no man do ipfw nesta parte
 habilitar o suporte a camada 2 para o ipfw.

  ^to upper layersV
  |   |
  +--+
  ^   V
[ip(6)_input]   [ip(6)_output]
 net.inet(6).ip(6).fw.enable=1
  |   |
  ^   V
[ether_demux][ether_output_frame]  net.link.ether.ipfw=1
  |   |
  +[bdg_forward]+
  net.link.bridge.ipfw=1
  ^   V
  |  to devices   |


 2010/1/6, Renata Dias renatchi...@gmail.com:
   Boa tarde!
 
 
  Tenho um FreeBSD 7.2 STABLE rodando como router da minha rede e o trafego
 da
  rede é de 34Mbps.
 
  Servidor HP:
 
  Intel(R) Xeon(R) CPU   E5520  @ 2.27GHz
  usable memory = 6424711168 (6127 MB)
  FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
   cpu0 (BSP): APIC ID:  0
   cpu1 (AP/HT): APIC ID:  1
   cpu2 (AP): APIC ID:  2
   cpu3 (AP/HT): APIC ID:  3
   cpu4 (AP): APIC ID:  4
   cpu5 (AP/HT): APIC ID:  5
   cpu6 (AP): APIC ID:  6
   cpu7 (AP/HT): APIC ID:  7
  Kernel AMD64
 
  Opções adicionadas no kernel DEFAULT:
 
  options HZ=2000
  maxusers6121
 
  options ACCEPT_FILTER_DATA
  options DEVICE_POLLING
  options ACCEPT_FILTER_HTTP
  options IPSTEALTH
  options IPFIREWALL
  options IPFIREWALL_FORWARD
  options IPFIREWALL_VERBOSE
  options IPFIREWALL_VERBOSE_LIMIT=100
  options IPFIREWALL_DEFAULT_TO_ACCEPT
  options IPDIVERT
  options DUMMYNET
 
 
  Quando eu habilito a sysctl net.link.ether.ipfw=1 toda minha rede passa a
  apresentar tempo de latencia acima de 80ms (quando rede local deveria ser
 0
  ou 1ms) e perdas de pacote acima de 10%. É só eu voltar a sysctl
  net.link.ether.ipfw para 0 (zero) e a rede volta a responder com 0ms e 0%
 de
  perdas.
 
  No meu Firewall tenho algumas regras de bloqueio de MAC e em seguida
 regras
  de controle de banda:
 
  01608 deny log logamount 100 ip from any to any in via bge0 MAC any
  00:12:0e:a1:38:47 layer2
  01609 deny log logamount 100 ip from any to any in via bge0 MAC any
  00:e0:4c:fa:87:48 layer2
  01650 allow ip from any to any layer2 not mac-type 0x0800
 
  # 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
  # Cliente 2
  20060 pipe 20060 ip from any to 200.200.200.220 out via bge0 not layer2
  20061 pipe 20061 ip from 200.200.200.220 to any in via bge0 not layer2
  20065 allow ip from any to 200.200.200.220
  20066 allow ip from 200.200.200.220 to any
 
  Obrigada!
 
  --
  Renata Dias
   -
  Histórico: http://www.fug.com.br/historico/html/freebsd/
  Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
 


 Alessandro de 

Re: [FUG-BR] Packet loss com Layer2

2010-01-06 Por tôpico Nilson
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 1 all from any to any layer2 in

# pacotes entrando L3
ipfw add 2002 skipto 2 all from any to any not layer2 in

# pacotes saindo L3
ipfw add 2003 skipto 3 all from any to any not layer2 out

# pacotes saindo L2
ipfw add 2004 skipto 4 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 1 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 2 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ê