#!/bin/sh # # Copyright (c) 2018 Intel Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Setup virtual lan (VLAN) in Linux side that would work with this sample. if [ -z "$1" ]; then echo "Network interface is missing." echo "This is the network interface where the VLAN will be running." echo "Example: eth0, tap0 etc." exit 1 fi if [ `id -u` != 0 ]; then echo "Run this script as a root user!" exit 2 fi IFACE="$1" VLAN_NAME_PREFIX="vlan" PREFIX_1_IPV6="2001:db8:100" PREFIXLEN_1_IPV6="64" PREFIX_2_IPV6="2001:db8:200" PREFIXLEN_2_IPV6="64" # From RFC 5737 PREFIX_1_IPV4="198.51.100" PREFIXLEN_1_IPV4="24" PREFIX_2_IPV4="203.0.113" PREFIXLEN_2_IPV4="24" ip link add link ${IFACE} name ${VLAN_NAME_PREFIX}.100 type vlan id 100 ip link add link ${IFACE} name ${VLAN_NAME_PREFIX}.200 type vlan id 200 ip link set ${VLAN_NAME_PREFIX}.100 up ip link set ${VLAN_NAME_PREFIX}.200 up ip -6 addr add ${PREFIX_1_IPV6}::2 dev ${VLAN_NAME_PREFIX}.100 ip -6 route add ${PREFIX_1_IPV6}::/${PREFIXLEN_1_IPV6} \ dev ${VLAN_NAME_PREFIX}.100 ip -6 addr add ${PREFIX_2_IPV6}::2 dev ${VLAN_NAME_PREFIX}.200 ip -6 route add ${PREFIX_2_IPV6}::/${PREFIXLEN_2_IPV6} \ dev ${VLAN_NAME_PREFIX}.200 ip addr add ${PREFIX_1_IPV4}.2 dev ${VLAN_NAME_PREFIX}.100 ip route add ${PREFIX_1_IPV4}/${PREFIXLEN_1_IPV4} dev ${VLAN_NAME_PREFIX}.100 ip addr add ${PREFIX_2_IPV4}.2 dev ${VLAN_NAME_PREFIX}.200 ip route add ${PREFIX_2_IPV4}/${PREFIXLEN_2_IPV4} dev ${VLAN_NAME_PREFIX}.200 # You can remove the virtual interface like this # ip link del link eth0 dev vlan.100 # ip link del link eth0 dev vlan.200 # If your devices HW MAC address changes when rebooting or flashing, # then you can flush the neighbor cache in Linux like this: # ip neigh flush dev vlan.100 # ip neigh flush dev vlan.200