No post de hoje ensinarei alguns passos para ordenar e renomear interfaces de rede no Linux CentOS 6.8 SAGE versão 27-17 modificado pelo CEPEL. Recentemente adquirimos alguns PC industriais da empresa Advantech, modelo ECU-4784, para utilização com o SCADA SAGE nas subestações da empresa onde trabalho. Dentre suas especificações de comunicação são: 8 LANs 10/100/1000 BaseT RJ45, 10 portas seriais isoladas, sendo 2 RS-232 via DB-09 e 8 RS-232/422/485 via bloco de terminal e 4 LANs fibra ótica via SC multi-modo.
Após a instalação do SO, CentOS 6.8 (SAGE 27.17), notamos que as portas LAN (LAN1 a LAN12) não estavam ordenadas conforme detecção do UDEV do Linux. Por outro lado, fazer relação das interfaces de rede eth0-lan1, eth1-lan2, eth2-lan3 etc, gera possível confusão durante a manutenção. Então vamos aos passos para ordenar e renomear todas as interfaces de rede, RJ45 e SC para estarem com conformidade com a codificação do painel.
Primeiramente, vamos listar todas as interfaces de rede e seus respectivos mac-address.
A listagem do comando servirá para ordenamos usando a mesma sequencia ordenada dos macs.
# ifconfig –a | grep eth | grep HW
eth0 Link encap:Ethernet Endereço de HW 00:DD:FF:EE:87:CA
eth1 Link encap:Ethernet Endereço de HW 00:DD:FF:EE:87:CB
eth2 Link encap:Ethernet Endereço de HW 00:DD:FF:EE:87:CC
eth3 Link encap:Ethernet Endereço de HW 00:DD:FF:EE:87:CD
eth4 Link encap:Ethernet Endereço de HW 00:DD:FF:EE:87:CE
eth5 Link encap:Ethernet Endereço de HW 00:DD:FF:EE:87:CF
eth6 Link encap:Ethernet Endereço de HW 00:DD:FF:EE:87:D0
eth7 Link encap:Ethernet Endereço de HW 00:EE:FF:DD:4E:B1
eth8 Link encap:Ethernet Endereço de HW 00:FF:DD:EE:00:1D
eth9 Link encap:Ethernet Endereço de HW 00:FF:DD:EE:00:1C
eth10 Link encap:Ethernet Endereço de HW 00:FF:DD:EE:00:1B
eth11 Link encap:Ethernet Endereço de HW 00:FF:DD:EE:00:1A
A interface eth7 na saída do comando é a lan1 da porta física, pois é a única com o prefixo do mac diferente de todas as outras. A interface lan1 possui características para gerenciamento do PC remotamente independente do SO, como função Wake-On-Lan.
Olhando para as demais interfaces, localizamos sete outras como prefixos iguais e mais outras quatro que são as portas de fibra. A última parte do mac será o ajuste do nosso ordenamento. A ordem crescente da última parte do mac segue a mesma sequencia das portas físicas.
A tabela mostra abaixo o resultado final do arranjo.
Interface | Mac-Address | Porta Física |
eth0 | 00:DD:FF:EE:87:CA | lan2 |
eth1 | 00:DD:FF:EE:87:CB | lan3 |
eth2 | 00:DD:FF:EE:87:CC | lan4 |
eth3 | 00:DD:FF:EE:87:CD | lan5 |
eth4 | 00:DD:FF:EE:87:CE | lan6 |
eth5 | 00:DD:FF:EE:87:CF | lan7 |
eth6 | 00:DD:FF:EE:87:D0 | lan8 |
eth7 | 00:EE:FF:DD:4E:B1 | lan1 |
eth8 | 00:FF:DD:EE:00:1D | fib4 |
eth9 | 00:FF:DD:EE:00:1C | fib3 |
eth10 | 00:FF:DD:EE:00:1B | fib2 |
eth11 | 00:FF:DD:EE:00:1A | fib1 |
Identificado os respectivos macs e as portas físicas, vamos editar o arquivo responsável por renomear as interfaces de rede.
Com usuário root, edite o arquivo 70-persistent-net.rules
que está localizado no /etc/udev/rules.d
. No arquivos já devem estar listadas as 12 interfaces de rede. Mude os parâmetros NAME
atribuindo o nome da porta física conforme tabela acima para cada uma das interfaces listadas e salve o arquivo.
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="macaddress-da-placa-rj45", ATTR{type}=="1", KERNEL=="eth*", NAME="lan1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="macaddress-da-placa-fibra", ATTR{type}=="1", KERNEL=="eth*", NAME="fib1"
Ainda com o usuário root, edite o arquivo 75-persistent-net-generator.rules
que está localizado no /lib/udev/rules.d
.
Na linha KERNEL!=”eth*|ath*|...|hsi*”, GOTO=”persistent_net_generator_end”
remova o texto eth*
e salve o arquivo.
Desta forma as suas alterações no arquivo 70-persistent-net.rules
não serão sobrescritas.
Remova todos os arquivos de configuração as interfaces de rede do /etc/sysconfig/network-scripts
.
# rm –f /etc/sysconfig/network-scripts/ifcfg-eth*
Reinicie o computador para que o SO carregue os novos nomes das placas;
# init 6
Vamos agora atribuir os IP para as interfaces de rede. Para isso vamos utilizar o utilitário de configuração das interfaces de rede.
# system-config-network
Acessaremos o menu configuração do dispositivo e na listagem iremos editar as interfaces, adicionar caso não existam e remover as antigas ethN
. Salve as configurações.
Um ponto importante é deixar marcado a opção “On boot” que irá levantar a placa na inicialização do SO e deixar desmarcada a opção “Controlled by NetworkManager”, por ter sido detectado um bug que desabilita e desconfigura a interface quando o cabo é desconectado da porta física.
Rode o comando para levantar as configurações das interfaces de rede.
# service network restart
Liste a configuração as interfaces de rede.
# ifconfig -a
Essa é uma forma como solucionei o problema de ordem e nomes das interfaces de rede.