Configurando um roteador VDSL no OpenBSD & NIC com suporte a TCO

2

esta é a minha primeira pergunta e espero fazer tudo certo. Obrigado por configurar serverfault - um site como esse estava faltando na Internet há muito tempo.

Nas próximas semanas, receberei minha conexão VDSL 25 (na melhor das hipóteses, é 25 Mbit Download e 5 Mbit Upload). Então agora eu estava pensando em configurar meu próprio roteador para VDSL porque eu não quero usar o roteador Speedport que estou recebendo com o VDSL 25.

Eu gosto muito do OpenBSD e encontrei um guia sobre Usando o OpenBSD com VDSL . Em um artigo alemão sobre como configurar o pfSense baseado em FreeBSD para VDSL i leia que o computador deve ter pelo menos 1 GHz com 1024 MB de RAM.

Minha máquina será um Pentium 3 de 800 MHz com 512 MB de RAM, mas considero comprar uma NIC Intel Gigbit de 30 $ com TCO (TCP Checksum Offloading). Um colega de trabalho sugeriu isso para mim porque ele diminuiria muito a carga da CPU e meu P3 de 800 MHz poderia ser mais do que suficiente.

Então, você tem alguma experiência sobre os "requisitos de hardware" para o VDSL e se uma NIC com TCO poderia ajudar lá?

Agradecemos antecipadamente por todas as suas respostas!

    
por Lypsis 31.05.2009 / 21:04

2 respostas

3

As especificações recomendadas para o pfSense são muito, muito, muito exageradas. Sua máquina deve lidar com essa carga com bastante facilidade. Para um ponto de referência, usei um Soekris Net5501 em produção por um tempo e ele caiu a cerca de 45Mbps. Ele foi criado com um Geode de 500MHz, 256MB de RAM e alguns dos piores NICs já criados (Via Rhinestone - driver vr).

Na minha experiência, o obstáculo de desempenho mais comum em um roteador como este é a alternância de contexto exigida por interrupções de disparo rápido. NICs de merda como os Rhinestones disparam uma interrupção para cada pacote que recebem. Isso se torna um grande problema porque cada pacote tem que ser processado, mas oops! No meio do processamento, outro entra. Então você retira, é interrompido, etc. A troca de contexto é uma operação cara e rapidamente sobrecarrega uma CPU lenta.

As boas placas de rede (Intel e Broadcom são sólidas) têm recursos de mitigação interrompidos, o que significa que eles só incomodam a CPU quando têm um certo número de pacotes acumulados, ou quando um timer atinge 0. Funcionando em blocos como este está longe, muito mais eficiente do que a troca de contexto constante.

Alguns sistemas operacionais tentam imitar a atenuação de interrupções com polling - o kernel ignora as interrupções da NIC e apenas verifica seus buffers de tempos em tempos. Isso pode levar a uma taxa de transferência muito maior e menor utilização da CPU, mas às custas da latência, possivelmente perdendo pacotes se os buffers da NIC forem preenchidos, etc. O OpenBSD não implementou a pesquisa. Na minha experiência, a atenuação de interrupções é superior à pesquisa e o preço de NICs decentes é baixo o suficiente para que não haja muita desculpa.

A memória realmente não deve ser um problema. O OpenBSD e o PF são muito eficientes. Em um dia bastante lento (hoje), um dos meus roteadores de produção tem aproximadamente 17.5k estados na memória. Ele também está executando spam, registrando todos os pacotes bloqueados e fazendo um tcpdump em sua interface mais ativa. Usando 191MB de RAM.

Portanto, tudo o que diz que as suas especificações são mais do que suficientes, TCO ou não.

    
por 31.05.2009 / 21:35
-1

O OpenBSD não suporta o TCO, então você não terá nenhum benefício com esse cartão.

    
por 31.05.2009 / 23:20