Sim, isso é possível, usando um belo recurso chamado network namespaces
(consulte man ip-netns(8)
). Basicamente, oferece várias pilhas de rede distintas, cada uma com seu próprio conjunto de interfaces, rotas, etc.
Você precisaria criar um namespace para cada um dos seus STBs e, em seguida, poderia executar os serviços necessários separadamente em cada namespace.
Para os namespaces, você deve proceder da seguinte maneira:
-
Crie um namespace chamado
net1
:ip netns add net1
-
Atribua sua interface
ethX
ao novo namespace e configure seu endereço IP 172.16.50.1:ip link set dev ethX netns net1 ip netns exec net1 ip link set dev ethX up ip netns exec net1 ip address add 172.16.50.1/24 dev ethX
O endereço IP 172.16.50.1 não é visível a partir do seu namespace padrão. Um simples ping 172.16.50.1
não funciona, primeiro você precisa mudar para o namespace net1
e executar o comando lá:
ip netns exec net1 <command>
Desta forma, você pode agora executar cada serviço em cada um dos seus namespaces.
Se você se sentir aventureiro, poderá até tentar redirecionar de alguma forma todas as solicitações de seus STBs para um serviço central. Para isso, você precisa de um túnel de cada espaço de nomes para o seu namespace padrão (veja ip link help veth
) e algumas magias do iptables ...