Mostrando postagens com marcador Timeout. Mostrar todas as postagens
Mostrando postagens com marcador Timeout. Mostrar todas as postagens

segunda-feira, 19 de setembro de 2011

de Colisões e Autonegociação


1. Introdução
Muitos profissionais já experimentaram problemas de intermitência na comunicação entre controladores e SCADA. É de conhecimento geral que essa falha é considerada uma das mais difíceis de serem solucionadas, embora, muitas vezes, seja causada por configurações simples.

2. Objetivo
O objetivo desse Wiki é evitar que algumas configurações de transmissão em rede sejam realizadas pelos técnicos de controle e demais pessoas envolvidas no startup dos projetos de automação. Não é escopo desse post explicar termos como half duplex e full duplex, para aqueles que desconhecem esses conceitos, esse link pode ser importante.

3. Descrição do Problema
Qual o comportamento da comunicação entre um dispositivo cuja transmissão foi fixada em 100Mbps Full Duplex, como mostra a configuração de hardware de um S7300 na Figura 1, e um switch cuja porta foi definida para autonegociação, como destacado na ferramenta de gerenciamento de um Hirschmann MACH100, Figura 2?

 

Figura 1: Configuração 100Mbps Full Duplex em um S7300


Figura 2: Configuração de autonegociação em um Hirschmann MACH 100
A resposta, como muitos devem ter imaginado, é a tão famigerada intermitência, um pesadelo para muitos profissionais de campo.

4. Explicação
Como a porta do switch está definida para autonegociação, esse dispositivo será capaz de reconhecer a velocidade com que o controlador está transmitindo, porém, o mesmo switch não será sagaz suficiente para reconhecer o parâmetro half/full duplex definido pelo controlador, e assumirá a configuração padrão (definido pela norma IEEE 802.3) para a velocidade de 100Mbps que é Half Duplex (fato que a pessoa responsável pela modificação desconhecia completamente).

Será identificada uma colisão toda vez que nosso S7300 tentar enviar algum pacote e, simultaneamente, perceber dados sendo recebidos. Contudo, por acaso do destino, o controlador conseguirá transmitir com sucesso, ocasionando a intermitência.
Para conhecimento, a configuração de half/full duplex padrão para a velocidade de 1Gbps é full duplex, por consequência, em médio prazo esse post será considerado completamente inútil.

5. Conclusão
A menos que a alteração de velocidade de transmissão e/ou a configuração para half/full duplex seja requisito do projeto, minha recomendação é deixar todos os ativos em autonegociação (afinal, não é à toa que esse é o valor default). Dessa forma, em uma eventual substituição de equipamento, não seja necessário (ou seja mínima) adequação dos seus parâmetros.

sexta-feira, 2 de setembro de 2011

de Rotas Estáticas e Timeout

1. Introdução

Tenho notado que nos projetos de automação mais recentes estamos nos defrontando com problemas relacionados a roteamento de pacotes, seja porque nossos clientes estejam adotando roteadores para segregação de redes SCADA e PLCs ou pela integração de servidores SCADA com redes corporativas. Esse Wiki descreverá como resolver um problema análogo, através de definições de rotas estáticas e alteração de métricas de roteamento.

2. Gateway

Gateway é um hardware responsável pela interligação de redes, função geralmente exercida por um roteador. É responsável por receber pacotes não alcançáveis dentro da sub-rede e encaminhá-los à rede adequada.
Para visualizar o endereço IP, a máscara e o gateway padrão atribuídos para cada interface de rede, é recomendada a utilização do comando IPCONFIG no prompt de comando, como exibe a figura abaixo.

A configuração do adaptador "Ethernet Conexão local 2" define que qualquer pacote com endereço de destino fora dos limites 172.20.10.1 a 172.20.10.15 (afinal, a máscara utiliza 28 bits) será encaminhado para o gateway 172.20.10.1.

De maneira semelhante, a configuração do adaptador "Conexão de Rede sem Fio" define que qualquer pacote com endereço de destino fora dos limites 128.1.0.1 a 128.1.255.254 (afinal, a máscara utiliza 16 bits) será encaminhado para o gateway 128.1.0.6.

3. Ping
Dessa forma, quando executamos o comando PING GOOGLE.COM.BR, como mostra a figura abaixo, esse pacote é encaminhado para o gateway (afinal, o endereço 74.125.234.81 não é alcançável em nenhuma das sub-redes), que, por sua vez, o encaminha para outro roteador. Porém, a grande questão desse Wiki é Para qual gateway esse pacote foi ou deverá ser encaminhado?
4. Custo de roteamento
Através do comando ROUTE PRINT pode-se visualizar, na seção "Rotas ativas", o custo atual do roteamento para os diversos gateways, como exibe a figura a seguir.

Na primeira linha pode-se identificar o gateway da rede IHM, já na segunda linha, um outro gateway disponibilizado pelo iPhone.
A configuração exibida na figura acima evidencia que o pacote destinado a google.com.br foi encaminhado para o gateway da IHM (128.1.0.6) pelo fato do custo de roteamento (30) ser menor que o custo associado ao iPhone (172.20.10.1).
Finalmente, como essa métrica pode ser alterada?
Passo 1: Executar o comando ROUTE DELETE 0.0.0.0, assim, é possível remover todas as rotas dinâmicas que seja destinadas à endereços 0.0.0.0.
Passo 2: Em seguida, executar o comando ROUTE ADD 0.0.0.0 MASK 0.0.0.0 172.20.10.1 METRIC 20 -P, para definir uma rota estática com custo 20 para a conexão com o iPhone.
Passo 3: Por fim, executar o comando ROUTE ADD 0.0.0.0 MASK 0.0.0.0 128.1.0.6 METRIC 30 -P, para definir uma rota estática com custo 30 para a conexão com a rede IHM.
Pronto. Os pacotes não alcançáveis nas sub-redes serão transmitidos para o gateway relacionado ao menor custo.
A verificação dos comandos poderá ser realizada, novamente, através do comando ROUTE PRINT, agora na seção "Rotas persistentes".

5. NETSH
O utilitário NETSH também possui um comando semelhante à ROUTE PRINT, NETSH INTERFACE IPV4 SHOW ROUTE e é considerado mais poderoso para realizar configurações de ambiente de rede.