Gerador de endereços MAC local

0

Recentemente Copiei um script do deltaray do usuário para gerar endereços MAC locais aleatórios para máquinas virtuais. Eu gosto deste script porque é o script mais fácil e eficaz para gerar um endereço MAC.

No entanto, all endereços MAC privados disponíveis têm quatro octetos OUI diferentes disponíveis para uso, e minha pergunta é:

Como randomizar o primeiro conjunto de octetos para endereços MAC privados e nunca precisar se preocupar em colidir com outra VM?

x2-xx-xx-xx-xx-xx 
x6-xx-xx-xx-xx-xx
xA-xx-xx-xx-xx-xx
xE-xx-xx-xx-xx-xx

Onde o "x" em x2, x6, xA e xE são randomizados.

Eu modifiquei o script do deltaray para um endereço MAC privado estático, mas gostaria de ser completo e ter a melhor solução, e não apenas uma única solução.

Meus mods:

#!/bin/bash
hexchars="0123456789ABCDEF"
mac=$( for i in {1..10} ; do echo -n ${hexchars:$(( $RANDOM % 16 )):1} ; done | sed -e 's/\(..\)/:/g' )
echo 02$mac

Obrigado

Por favor, veja a resposta à minha pergunta abaixo.

    
por ina2n 28.01.2017 / 18:13

2 respostas

0

Eu percebi isso.

#!/bin/bash
# This will generate every possible local MAC address available.  Works on any system that can run the bash shell.
localoctet="26AE"
hexchars="0123456789ABCDEF"
local=$( echo -n ${hexchars:$(( $RANDOM % 16 )):1} ; echo -n ${localoctet:$(( $RANDOM % 4 )):1} )
mac=$( for i in {1..10} ; do echo -n ${hexchars:$(( $RANDOM % 16 )):1} ; done | sed -e 's/\(..\)/:/g' )
echo $local$mac

Isso gerará todos os endereços MAC locais possíveis.

    
por 04.02.2017 / 18:46
0

Existe uma razão pela qual os endereços MAC da VM precisam ser aleatórios (pseudo-aleatórios, na verdade)? Parece que você está fazendo a pergunta de como obter um período maxium garantido em uma sequência de números, antes de se sobrepor. Um incremento simples seria o mais óbvio, mas existem CRC com período máximo para um intervalo mínimo / máximo permitido. mas eu não acho que você teria um problema com sequencial, então o CRC seria desnecessário.

Com o período máximo, você só precisa se preocupar se uma VM ainda existe, quando você quebra. Se isso puder acontecer (devido à vida útil de suas VMs), você deverá manter um histórico de VMs em execução e escolher outra opção até não atingir o histórico. Supondo que você tenha um intervalo mais amplo disponível do que possivelmente ainda executando VMs, você não obteria sobreposição. É improvável, no entanto, que você precise de um histórico (se usar uma sequência com o período máximo, como um incremento simples). Suponho que o tempo de vida de suas VMs e número seja relativo ao espaço disponível.

Supondo que não há outros mac addrs com os quais você precise se preocupar, além daqueles que você criou com este algoritmo. O que pode não ser verdade.

    
por 28.01.2017 / 20:14

Tags