Como configurar uma caixa de netem

1

Estou tentando simular uma condição de rede diferente com base em fatores como latência, largura de banda e assim por diante. Descobri que o Netem é a melhor maneira de simular diferentes condições de rede. Então, minha configuração de rede desejada seria a seguinte.

Portanto, a caixa Netem deve ter duas placas de rede e deve ligar duas conexões ethernet (eth0 e eth1). Eu tenho poucas perguntas precisam esclarecer.

1) Podemos usar uma conexão de cabo cruzado com o servidor para a caixa Netem? ou é uma VLAN diferente. 2) Pelo que entendi, o cliente acessará a eth0 e o Netem box encaminhará todos os pacotes para a eth1 e o mesmo para o servidor para a comunicação da caixa do Netem. Então eu quero esclarecer se o cliente pode se conectar diretamente ao IP do servidor (mesma rede) ou o cliente só fala com Ip da caixa do Netem, para que ele encaminhe os pacotes para o servidor?

    
por Chandana 08.04.2016 / 03:53

2 respostas

1

Suponho que você esteja se referindo a tutorial.

Com o linux bridge, você vai usar sua caixa netem como um switch, sem sequer um ip, mas para gerenciamento. Desta forma, o cliente vai se comunicar diretamente com seu servidor.

Contanto que você não especifique subinterfaces (por exemplo, eth0.101), o seu comutador encaminhará todo o tráfego com tags vlan como está.

    
por 10.04.2016 / 16:09
0

Na verdade, eu só tive que descobrir isso há algumas semanas. Eu fiz isso usando o netem box como roteador, mas não acho que isso realmente importe muito.

Basicamente, a função netem que você quer (há mais do que apenas isso) irá dizer a você para segurar o tráfego por algum tempo determinado pelo usuário. Não se preocupa com a forma como o tráfego chega ao nic, e é por isso que eu acho que você pode usar uma ponte como você descreveu.

Uma coisa que eu não entendi da sua pergunta foi em qual direção você queria atrasar o tráfego ou ambas as direções. Realmente não importa muito, mas você terá que emitir o comando netem pelo menos uma vez para cada nic de "saída" - isto é, para cada direção que o tráfego está fluindo. Por padrão, o netem afetará apenas o tráfego de saída, não a entrada.

Dito isto, aqui está o comando que você deseja:

tc qdisc add dev eth0 root handle 1:0 netem delay 25ms

Esse comando introduzirá um atraso de 25 ms em todos os pacotes que saem do host através de eth0. Você pode, é claro, ajustar o número de eth (x) para o nic apropriado e os 25 ms para o seu atraso desejado. Há uma pegadinha, no entanto: anote no comando que NÃO há ESPAÇO entre o "25" e o "ms". Isso é importante; ele irá errar se você colocar o espaço.

Na verdade, há mais coisas que você pode fazer com atraso. Você pode colocar um segundo valor, assim:

tc qdisc add dev eth0 root handle 1:0 netem delay 25ms 10ms

Isso atrasará o tráfego em uma média de 25 ms, mas cada pacote será atrasado por um número aleatório de ms entre 15ms e 35ms (25 ms + / - 10 ms)

Para "desligar" o netem, emita o mesmo comando, mas mude "add" para "del".

Há muito mais que você pode fazer com o netem também, incluindo reordenação de pacotes, queda de pacotes, corrupção de pacotes e duplicação de pacotes, tudo aleatório ou correlacionado com os pacotes anteriores. Muito mais do que eu posso entrar aqui. Para mais informações, confira www.linuxfoundation.org/collaborate/workgroups/networking/netem ou o homem página para netem, "man netem".

    
por 15.04.2016 / 16:38