#!/bin/bash #egress interface, this should be part of bridge. INTERFACE="eth3" MTU_SIZE=1986 #this IP can be set on incoming nic interface . MY_IP="2002:b001:1001:2000::1" setup_gre_tunnel(){ echo "Setting up tunnel $1 with remote end $2" ip link add "$1" type ip6gretap remote "$2" local "$3" ttl 255 ip link set dev "$1" mtu "$MTU_SIZE" ip link set dev "$1" master br0 sleep 5 ip link set dev "$1" up } IDX=1 # Add CN lo v6 address here declare -a remote_ips=( "2002:b001:1001:2002::10" "2002:b001:1001:2002::12" ) # Create a bridge containing uplink nic interface ip link add name br0 type bridge #remove any L3 address associated on this interface ip -4 addr flush dev "$INTERFACE" 2>/dev/null ip -6 addr flush dev "$INTERFACE" 2>/dev/null #bring down the interface so that routes get deleted ip link set dev "$INTERFACE" down 2>/dev/null #add to bridge ip link set dev "$INTERFACE" master br0 2>/dev/null ip link set dev "$INTERFACE" up 2>/dev/null # in the end enable bridge ip link set dev br0 up # Add all l2gre in this bridge for i in "${remote_ips[@]}" do setup_gre_tunnel l2gre$IDX "$i" "$MY_IP" IDX=$(($IDX + 1)) done