Infelizmente, isso não funcionará bem - não porque o IP esteja nas duas interfaces, mas porque a sub-rede é.
Se o seu dispositivo precisar falar com 192.168.1.2, em qual interface ele deve enviar o tráfego? Talvez seja o dispositivo do cliente que está tentando conversar com seu dispositivo. Talvez seja o seu dispositivo tentando falar com um de seus outros dispositivos. O kernel não sabe (sem um monte de complicada configuração de roteamento).
Algumas abordagens para isso:
-
Escolha uma sub-rede tão pequena quanto possível, fora do espaço RFC1918 usado com menos frequência. Isso minimiza a chance de conflito, mas não pode eliminá-lo.
-
Torne o espaço da rede interna configurável, para que o cliente (ou seu pessoal de suporte) possa alterá-lo para algo que não esteja em conflito.
-
Use endereços locais de links em vez do espaço RFC1918. Tanto o IPv4 quanto o IPv6 possuem endereços locais de link.
-
Solicite endereços IP públicos (roteáveis) a serem usados para isso. Você pode usar o mesmo conjunto deles em todos os seus dispositivos, basicamente você está usando-o como o espaço RFC1918, apenas você está garantido que nunca vai entrar em conflito. Muito difícil de fazer para o IPv4 (na maioria das vezes acabamos), deve ser muito mais fácil se você puder usar o IPv6.
-
Se os processos que precisam se comunicar com o equipamento do cliente forem totalmente separados daqueles que precisam se comunicar com o outro equipamento, você poderá colocar cada interface em seu próprio namespace de rede (consulte
ip netns
). cada namespace só vê uma das sub-redes 192.168.1.0/24, portanto não há conflito. Essa seria a configuração de roteamento mais simples e complicada.