Macvlan and Macvtap

来源:互联网 发布:js中scrolltop 编辑:程序博客网 时间:2024/05/21 17:31

Refer to  Enabling host-guest networking with KVM, Macvlan and Macvtap


!/bin/bashTESTHOST=www.google.comMACVLAN_PREFIX=macvlanMAC_ADDR_PREFIX=aa:bb:cc:dd:ee:fif [[ "$#" -ne 2 ]]; then  echo "[USAGE] $0 <ethX> <number of macvlans>"  exitfiHWLINK=$1NUM_MACVLAN=$2if [[ $NUM_MACVLAN -gt 16 ]];  then  echo "ASSUME the number of macvlan's is less or equal to 16"  exitfi# ------------# wait for network availability# ------------while ! ping -q -c 1 $TESTHOST > /dev/nulldo  echo "$0: Cannot ping $TESTHOST, waiting another 5 secs..."  sleep 5doneIP=$(ip address show dev $HWLINK | `which grep` "inet " | `which awk` '{print $2}')echoecho "$HWLINK's IP is $IP"echo "Use the same IP for all macvlan for now"echo# ------------# setting up $MACVLN interface# ------------for idx in `seq 1 $NUM_MACVLAN`do  echo  echo "===== Setting MAC VLAN #$idx ====="  mac_idx=$[$idx-1]  MACVLAN=${MACVLAN_PREFIX}${mac_idx}  echo "Interface: $MACVLAN"  MAC_ADDR=${MAC_ADDR_PREFIX}${mac_idx}  echo "MAC addr:  $MAC_ADDR"#-------------# First delete existing interface#-------------  echo "** Delete exisiting interface"  echo "ip link set dev $MACVLAN down"  ip link set dev $MACVLAN down  echo "ip link delete $MACVLAN"  ip link delete $MACVLAN  echo #-------------# Create new interfaces#-------------  echo "** Create new interface"  echo "ip link add link $HWLINK $MACVLAN address $MAC_ADDR type macvlan"   ip link add link $HWLINK $MACVLAN address $MAC_ADDR type macvlan  echo "ip address add $IP dev $MACVLAN"  ip address add $IP dev $MACVLAN  echo "ip link set dev $MACVLAN up"  ip link set dev $MACVLAN up  echo done


0 0