[FUG-BR] OLá Colegas
Cleyton Agapito
cragapito em gmail.com
Quarta Março 10 15:10:22 BRT 2010
Em 10 de março de 2010 14:40, Danilo G. Baio <danilobaio2 em gmail.com> escreveu:
> 2010/3/9 Welkson Renny de Medeiros <welkson em focusautomacao.com.br>
>
>> João,
>>
>> Essa máscara 255.255.0.0 não é 0x000000ff, e sim 0xffffff00
>>
>> Dar uma olhada nisso...
>>
>> Eu utilizo assim:
>>
>> # usuarios administracao - 500kbps
>> ipfw 600 add pipe 12 ip from not me to 192.168.0.0/24 out via vr1
>> ipfw pipe 12 config bw 500Kbit/s mask dst-ip 0xffffffff
>>
>> No meu caso a máscara é 255.255.255.0
>>
>> Observe que só controlo DOWNLOAD... upload ainda preciso fazer uns
>> testes... mas o download roda perfeito (mais de 40 usuários).
>>
>>
>
> Está funcionado.. mas o certo para você, como a sua rede é 192.168.0.0/24 a
> máscara seria: 0x000000ff
> Até 254 hosts, 254 filas...
>
> Essa máscara é igual uma máscara de rede, mas, de forma invertida...
>
> Essa máscara 0xffffffff significa 254^4 = 4 162 314 256 hosts na sua rede...
> podendo abrir tudo isso de filas...
> claro que você pega só 192.168.0.0/24 , mas fica mais elegante digamos
> assim...
>
>
> Outra coisa.. não sou um expert....
> Talvez eu esteja errado... bom... estamos aqui pra isso...
> Qualquer coisa podem me corrigir...
>
Ok, as máscaras estão invertidas (acho qe alguém já disse isso), tipo,
quando um pacote chegar no roteador será efetuada uma operação de AND
na máscara para determinar o endereço da rede para a qual ele deverá
ser destinado (pra isso serve a máscara).
Relembrando a função, ela retorna verdadeiro apenas ambos os bits
forem 1, como na máscara 0xFFFFFFFF todos são 1 então o resultado é o
mesmo endereço que entrou (endereço de uma máquina), na máscara
0xFFFFFF00 tem 16 bits iguais a 0, logo a operação retorna zero para
eles, simplismente porque se um bit é zero já não é possível ambos
serem 1 para retornar verdadeiro.
Exemplo: Se entrar o endereço 192.168.254.128 (em hexa: C0.A8.FE.80)
para ser roteado, passando AND nele:
C0.A8.FE.80 && FF.FF.FF.00 = C0.A8.FE.00
C0.A8.FE.00 em decimal é 192.168.254.0, perceba que onde a máscara é 0
ficou 0 mesmo.
No roteador ele vai direcionar o pacote para a rede que está na tabela
dele, a 192.168.254.0 e lá ela que se vire em entregar o pacote pra
máquina 192.168.254.128.
No caso a máscara que você pôs retornaria o endereço de rede 0.0.0.128
para o mesmo pacote e o roteador não saberia o que fazer com ele já
que ele só conhece endereços de rede.
Espero ter ajudado.
[]'s
Mais detalhes sobre a lista de discussão freebsd