Difference between revisions of "Scripts/make-mac.sh"

From Xen
(Created page with "The following, is a little script that can be used to assign unique MAC addresses based on the name of a VM and a Xen bridge. <pre> #!/bin/bash if $# < 1 ; then ech...")
 
 
Line 32: Line 32:
 
echo $mac
 
echo $mac
 
</pre>
 
</pre>
  +
  +
[[Category:Networking]]

Latest revision as of 16:15, 7 September 2018

The following, is a little script that can be used to assign unique MAC addresses based on the name of a VM and a Xen bridge.

#!/bin/bash
if [[ $# < 1 ]] ; then
    echo "Usage: $0 vmname [bridge]"
    exit 1
fi

name=$1
bridge="xenbr0"

if [[ $# > 1 ]] ; then
    bridge=$2
fi

hmac=$(cat /sys/class/net/${bridge}/address)

if [[ -z "$hmac" ]] ; then
    fail "Couldn't find address for device $bridge"
fi

# Get the host mac, and lop off the first two bytes
mac=$(echo $hmac | sed 's/^..:..:\(.*$\)/\1/;')

# Add an "extension" to the end based on the name
macext=$(echo "$name" | md5sum | sed 's/^\(..\).*$/\1/;')

# And pick a number for the first byte that has bit 2 set ("local")
mac="5a:${mac}:${macext}"

echo $mac