Interfaces fictícias são chamadas de "fictícias" porque não funcionam de verdade. Seu único uso (eu sei) é permitir que um aplicativo de longa duração se vincule a eles, para que você possa movê-los e conectá-los a outras interfaces sem interromper o aplicativo.
Você não poderá construir uma LAN virtual com interfaces fictícias.
Em vez disso, use namespaces de rede como substituto de diferentes computadores ( "hosts"), e conecte-os com links Ethernet virtuais (pares veth).
Dessa forma, você pode construir uma LAN tão complicada quanto quiser. Faça a ponte do jeito que você quiser, faça o encaminhamento e o NAT, configure roteamento complicado, etc.
Como ponto de partida, aqui está um script que eu uso para criar um namespace de rede com uma conexão veth-pair no namespace principal e um xterm nesse namespace. Corra como root e substitua USERNAME pelo seu nome de usuário:
#!/bin/bash
# Setup network namespace with veth pair, start xterm in it
# nsterm ns0 veth0 10.0.0 yellow 24
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
NS=${1:-ns0}
DEV=${2:-veth0}
DEV_A=${DEV}a
DEV_B=${DEV}b
ADDR=${3-:10.0.0}
ADDR_A=${ADDR}.254
ADDR_B=${ADDR}.1
MASK=${5:-24}
COL=${4:-yellow}
# echo ns=$NS dev=$DEV col=$COL mask=$MASK
ip netns add $NS
ip link add $DEV_A type veth peer name $DEV_B netns $NS
ip addr add $ADDR_A/$MASK dev $DEV_A
ip link set ${DEV}a up
ip netns exec $NS ip addr add $ADDR_B/$MASK dev $DEV_B
ip netns exec $NS ip link set ${DEV}b up
ip netns exec $NS ip route add default via $ADDR_A dev $DEV_B
ip netns exec $NS su -c "xterm -bg $COL &" USERNAME