Macvlan and Macvtap

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


!/bin/bash

TESTHOST=www.google.com
MACVLAN_PREFIX=macvlan
MAC_ADDR_PREFIX=aa:bb:cc:dd:ee:f


if [[ "$#" -ne 2 ]]; then
  echo "[USAGE] $0 <ethX> <number of macvlans>"
  exit
fi

HWLINK=$1
NUM_MACVLAN=$2

if [[ $NUM_MACVLAN -gt 16 ]];  then
  echo "ASSUME the number of macvlan's is less or equal to 16"
  exit
fi
# ------------
# wait for network availability
# ------------
while ! ping -q -c 1 $TESTHOST > /dev/null
do
  echo "$0: Cannot ping $TESTHOST, waiting another 5 secs..."
  sleep 5
done

IP=$(ip address show dev $HWLINK | `which grep` "inet " | `which awk` '{print $2}')

echo
echo "$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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值