Adiciona vlan para fazer interface com um mac único - sintaxe diferente para diferentes distribuições do Linux

2

Eu preciso adicionar uma subinterface a uma interface existente, que está em uma VLAN. Além disso, a subinterface deve ter seu próprio endereço MAC. Através das páginas man encontrei esta sintaxe que funciona bem no CentOS / RH:

/usr/sbin/ip link add link eth0 name eth0.1 address 00:11:22:33:44:5F type vlan id 1

Através do googling, descobri que algumas distros usam a palavra-chave 'macvlan' em vez de 'vlan' para esse comando. Alguém sabe quais distribuições Linux usam a palavra-chave macvlan em vez da palavra-chave vlan?

    
por TSG 18.04.2015 / 01:38

2 respostas

3

Por favor, note que um vlan e um macvlan são duas coisas diferentes. Uma vlan é um padrão comum (802.1q) para separar domínios de broadcast. Isso significa que você pode criar várias redes lógicas em uma rede física. Todos os componentes usados, incluindo switches de rede, precisam ser compatíveis.

Os Macvlan's são usados em sistemas Linux para fornecer uma interface virtual separada. Esses podem ser criados tanto em interfaces físicas quanto em vlan. Macvlan não é padrão e não está relacionado a outros dispositivos de rede.

Primeiramente, você deve criar sua interface vlan, conforme mostrado no seu exemplo. Depois disso, você deve adicionar uma ou mais interfaces macvlan assim:

ip link add macvlan1 link eth0.1 type macvlan ip link add macvlan2 link eth0.1 type macvlan

Verifique com o comando ip link se as novas interfaces forem criadas. Em caso afirmativo, provavelmente você deve atribuir endereços IP usando o comando ip addr e trazer a interface com:

ip link set dev macvlan1 up ip link set dev macvlan2 up

De acordo com a pergunta, usei a vlan 1 em meus exemplos. No entanto, por favor, não use o vlan 1 em um ambiente de produção, enquanto esse id pode ser interpretado como não tendo nenhum vlan por alguns dispositivos.

Os Macvlans são introduzidos no kernel 2.6.23 como experimental e em 3.9 como produção. O pacote iproute2 (ip command) tem suporte para macvlans por um longo tempo. Então, isso deve funcionar com todas as distribuições recentes do Linux, incluindo até mesmo o Red Hat 6.

    
por 02.01.2017 / 13:35
1

Você pode atribuir o endereço MAC da VLAN com o comando ip :

# ip link add link <interface> name <vlan interface name> address <mac> type vlan id <vlan ID>

Exemplo:

# ip link add link ens33 name myvlan123 address 00:0c:29:ed:ff:ff type vlan id 123

Verifique:

# ip a
....
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:ed:ff:ea brd ff:ff:ff:ff:ff:ff
    inet 192.168.101.180/24 brd 192.168.101.255 scope global ens33
       valid_lft forever preferred_lft forever
3: myvlan123@ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:ed:ff:ff brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2fda:8335:9f2:b9c7/64 scope link 
       valid_lft forever preferred_lft forever

A interface principal é 00:0c:29:ed:ff:ea e vlan é agora 00:0c:29:ed:ff:ff .

Você pode ver mais ajuda com:

# ip link help

Verifique também se você tem o módulo vlan kernel carregado:

# lsmod | grep -i 8021q

Algumas distribuições podem ter sob vlan name. Você também pode ter que instalar o pacote vlan ou 8021q (pacman, yum, apt, ..).

    
por 08.09.2017 / 02:12