VLAN e interfaces virtuais no Ubuntu

1

Estou usando um switch em um dispositivo com dimensões físicas. essas dimensões existem fora da rede, só para deixar claro que não estou tentando usar algum tipo de terminologia de rede.

As portas do switch correspondem a diferentes partes físicas do dispositivo, portanto, quando um "computador" é conectado a uma porta diferente, ele fica em um local físico diferente.

A exceção é a porta 1, que sempre será conectada ao "computador" principal. Note que eu continuo usando aspas porque estas não são laptops ou servidores, etc ... Este é um robô e estas são partes diferentes do dito robô. Daí a necessidade de saber onde ela está conectada fisicamente.

Foi-me dito que posso usar VLANs para fazer essa segregação. Eu só tenho que porta de tronco 1 e separar as VLANs e mapeá-las para diferentes interfaces Ethernet virtuais no “computador” principal.

Tudo bem e bom. Eu meio que entendo os conceitos. Mas eu tenho duas perguntas principais:

  1. Existe uma maneira mais fácil de saber em qual porta física um computador está conectado? Se eu tiver um dispositivo conectado à porta 2 e movê-lo para a porta 3, eu deveria poder para dizer que este dispositivo está agora na porta 3 porque o endereço IP mudou para um intervalo diferente, (sub-rede?) ou alguma outra forma legal que eu simplesmente não conheça.

  2. Existem tutoriais claros sobre isso? Eu tenho andado a pesquisar e estou a tentar definir dnsmasq.conf e o meu ficheiro de interfaces (acabei de incluir linhas abaixo da minha interface principal de ethernet p2p1 que se parecem com iface p2p1: 0 inet dhcp ) para configurar as VLANs, mas não consegui encontrar algo que claramente me guie pelas etapas. Muitas coisas parecem estar relacionadas a configurações específicas, como o OpenStack.

por Eric D 05.10.2014 / 21:25

2 respostas

1

Deixe-me preencher alguns detalhes para ter certeza de que estou respondendo à pergunta que você fez. Você tem um robô com várias portas Ethernet em diferentes locais e esse robô contém um comutador Ethernet configurável. Ele tem uma porta, "porta 1", que está conectada a um host que você chamou de "computador principal", que é o que roda o Ubuntu. Você quer ser capaz de determinar, a partir do host do Ubuntu, em qual porta do robô um determinado host está conectado, e você gostaria de fazê-lo com VLANs e entroncamento de VLAN.

Você pode pensar em uma VLAN como um comutador virtual e um tronco de VLAN como várias conexões Ethernet virtuais feitas através de uma única conexão Ethernet física. Portanto, a solução que você está procurando envolve atribuir cada porta (diferente da porta 1) à sua própria VLAN e, em seguida, passar todas essas VLANs pela porta 1 para o host do Ubuntu. Para simplificar, recomendo atribuir a porta 2 à VLAN 2, a porta 3 à VLAN 3 e assim por diante. Como você não especificou o tipo de switch que este robô contém, esse é todo o detalhe que posso fornecer na configuração do switch.

A idéia é atribuir cada VLAN à sua própria sub-rede IP e executar o DHCP nessa sub-rede, para que um dispositivo conectado à porta no robô obtenha um IP na sub-rede atribuída a essa VLAN (e, portanto, porta). Novamente, para simplificar, eu recomendaria manter a numeração igual, portanto, a VLAN 2 tem 192.168.2.0/24, a VLAN 3 tem 192.168.3.0/24 e assim por diante. Seu host Ubuntu precisará de um IP em cada VLAN, terminando por convenção em .1. E você precisará configurar um servidor DHCP em cada VLAN (via dnsmasq.conf).

Baseado em a página 'vlan' do wiki do Ubuntu , o /etc/network/interfaces do computador principal conteria algo assim além do configuração básica do host (assumindo que eth1 é sua conexão de rede "noral" e eth2 está conectada à porta do robô 1)

auto eth2.2
iface eth1.2 inet static
  address 192.168.2.1
  netmask 255.255.255.0
  vlan-raw-device eth2
auto eth2.3
iface eth2.3 inet static
  address 192.168.3.1
  netmask 255.255.255.0
  vlan-raw-device eth2

e assim por diante. O auto eth2.N configura o entroncamento da VLAN N na eth2 e as linhas recuadas atribuem um endereço IP e uma máscara de rede nessa VLAN ao computador principal.

Seu dnsmasq.conf conteria

dhcp-range=eth2.2,192.168.2.100,192.168.2.199,4h
dhcp-range=eth2.3,192.168.3.100,192.168.3.199,4h

para atribuir endereços IP novos a qualquer coisa que apareça na VLAN 2 (porta 2) e na VLAN 3 (porta 3), respectivamente.

Você deve configurar o software nos computadores conectados ao robô para falar com o endereço IP principal (eth1) do computador principal. Então, qualquer tráfego de um IP correspondente 192.168.2.x é de um computador conectado à porta 2, qualquer tráfego de um IP correspondente a 192.168.3.x é de um computador conectado à porta 3 e assim por diante.

Para responder sua segunda pergunta, eu não encontrei nenhum tutorial sobre isso, e parece uma configuração muito incomum, então isso não é especialmente surpreendente!

    
por 06.10.2014 / 01:31
0

Se o seu switch fala LLDP , você pode interagir com isso instalando o lldpd. A maioria dos switches anunciam a porta atualmente conectada via LLDP, que você pode determinar / script usando as ferramentas fornecidas no pacote lldpd.

apt-get install lldpd

Veja também a página de manual do lldpd .

O lldpd também irá anunciar a existência do computador (e o nome da interface) no switch.

No que diz respeito a VLANs, sua melhor aposta é verificar o específico do Ubuntu (embora, realmente específico do derivado do Debian) página de manual .

Você precisa do pacote 'vlan' instalado para usar as VLANs no Ubuntu.

apt-get install vlan

Felicidades, TW

    
por 06.10.2014 / 01:26

Tags