Temos um provedor de serviços (e não podemos mudar de provedor) que está nos oferecendo uma conexão no estilo "metro ethernet" entre dois de nossos locais. Em cada extremidade, conectamos uma porta Ethernet no switch de um provedor e eles enviam os quadros de um lado para outro. Nós obtemos uma certa largura de banda com eles e eles estão descartando pacotes que estouram sobre a largura de banda.
Tenho certeza de que uma boa maneira de não ultrapassar seu limite e evitar a queda de pacotes é modelar nosso tráfego para que caiba abaixo do limite. Acho que estou muito perto de entender como fazer isso, mas é bem complicado. Temos um Cisco Catalyst 3560X em cada lado da conexão.
Se eu quiser diminuir o tráfego para 50 Mbps no túnel, parece que a maneira certa (talvez apenas?) De fazê-lo é usar a modelagem nas filas de saída das portas usadas para o link em cada um dos nossos 3560s. Não precisamos marcar nem classificar nenhum tráfego, apenas queremos moldar tudo para 50 Mbps. Aqui está um exemplo de configuração de porta agora:
interface GigabitEthernet0/1
speed auto 10 100
spanning-tree portfast disable
Eu sei que vou querer fazer mls qos
no modo de configuração global. Então eu deveria ver algo assim:
[Switch name]# show mls qos int gig0/1 queueing
GigabitEthernet0/1
Egress Priority Queue : disabled
Shaped queue weights (absolute) : 25 0 0 0
Shared queue weights : 25 25 25 25
The port bandwidth limit : 100 (Operational Bandwidth:100.0)
The port is mapped to qset : 1
Até agora, meu entendimento é o seguinte, sinta-se à vontade para me corrigir:
- Todo o tráfego será CoS 0 / não marcado e, por padrão, entrará na fila de saída 2.
- A fila de saída 2 está compartilhando a largura de banda igualmente com a fila 3 e 4, e o peso da fila 1 é ignorado.
- A fila de saída 1 é modelada em 1/25 da largura de banda da interface, portanto, 4 Mbps neste caso.
Então, eu entendo que as filas 2 a 4 têm 33% da largura de banda garantida (33 Mbps, certo?) E a fila 1 tem formato de 4 Mbps. Minha primeira pergunta é:
Com essa configuração padrão, se apenas a fila 2 for usada , quanta largura de banda será obtida? 100 Mbps? E se todas as filas fossem totalmente utilizadas, a fila 1 teria 4 Mbps e as filas 2 a 4 teriam 32 Mbps (100 - 4 = 96/3 = 32)?
E agora a verdadeira questão:
Para moldar todo o tráfego de saída não classificado para caber em 50 Mbps, posso simplesmente entrar
srr-queue bandwidth shape 0 2 0 0
na interface em questão e pronto?
Parece que os limites de compartilhamento e modelagem de filas não são garantidos, portanto, talvez seja necessário diminuir para 45 Mbps nominais na fila de saída, se for necessário evitar estourar mais de 50 Mbps. Posso fazer isso executando apenas srr-queue bandwidth limit 90
combinando com a configuração acima? Seria o mesmo usar:
srr-queue bandwidth shape 0 1 0 0
srr-queue bandwidth limit 45
Essa forma ficaria na fila de 2 a 45 Mbps (em uma interface de 100 Mbps)?
Depois que eu entendo isso, acho que minha próxima parada é classificar alocações e limites de buffer, para que minha configuração caia o menor número possível de pacotes, certo? Essa pode ser uma pergunta separada, se necessário, mas, na verdade, isso parece fazer muito mais sentido até agora.