Gleb Kurtsou (rfrench), estudante, participante do Google Summer of Code 2008, tem como foco a melhoria do filtro (firewall) de pacotes na Camada 2 (Layer 2) do FreeBSD. E agora uma notivade excelente, o dummynet pode atuar agora na camada OSI 2 e não mais apenas na OSI 3, gerando como resultado a possibilidade de fazer controle de banda por MAC address, independente do protocolo LLC. Ou seja agora é possível impor controle de banda em protocolos na sub-camada LLC diferentes de IPv4 e IPv6, como IPX nativo entre outros. Uma das mudança sfoi a adição da directiva ether na configuração do mask do dummynet(4). Segue exemplo de configuração, usando o novo framework (src-ether e dst-ether): # ipfw pipe 10 config bw 512Kb/s mask ether
# ipfw add pipe 10 src-ether 00:XX:YY:ZZ:KK:AA dst-ether 00:XX:YY:ZZ:KK:BB out via bridge0 layer2 # ipfw add pipe 10 dst-ether 00:XX:YY:ZZ:KK:BB src-ether 00:XX:YY:ZZ:KK:AA out via bridge0 layer2 E o resultado dos pipes dinamicamente criados podem ser observados com: # ipfw pipe show 00001: 1.000 Mbit/s 0 ms 50 sl. 2 queues (64 buckets) droptail mask: ff:ff:ff:ff:ff:ff -> ff:ff:ff:ff:ff:ff tag: 0x0000 BKT _Source Ether Addr_ _Dest. Ether Addr__ Tag Tot_pkt/bytes Pkt/Byte Drp 40 00:XX:YY:ZZ:KK:AA 00:XX:YY:ZZ:KK:BB 0 2 196 0 0 0 43 00:XX:YY:ZZ:KK:BB 00:XX:YY:ZZ:KK:AA 0 2 196 0 0 0 Ainda é possível marcar pacotes por máscara: # ipfw add 200 pipe 1 ip from any to any tagged 1-1000 via bridge0 layer2 E a palavra chave any foi adicionada para tar match em qualquer tag: # ipfw add 200 pipe 1 ip from any to any tagged any via bridge0 layer2 O recurso ainda não entrou oficialmente na árvore, mas pode ser testado com latches em FreeBSD -CURRENT e -STABLE:
|