teknoraver icon

bridge vlan filtering vs netdev

teknoraver | PRO | 01/28/20 05:28:56 PM UTC | 0 ⭐ | 991 👁️ | Never ⏰ | []
Bash |

1.39 KB

|

None

|

0 👍

/

0 👎

#!/bin/sh
 
# cleanup
for i in br-filt br-dev veth-dev veth-filt; do
        [ -d /sys/class/net/$i ] && ip link del dev $i
done
ip -all netns del
 
# create bridges
ip link add br-filt type bridge
ip link add br-dev type bridge
ip link set br-filt up
ip link set br-dev up
 
# create netns and disable IPv6 globally
ip netns add filt
ip netns add dev
sysctl -w net.ipv6.conf.all.disable_ipv6=1
ip -all netns exec sysctl -w net.ipv6.conf.all.disable_ipv6=1
 
# create veth pairs
ip link add veth-dev type veth peer name veth0 netns dev
ip link add veth-filt type veth peer name veth0 netns filt
ip link set veth-filt up
ip link set veth-dev up
ip -n filt link set lo up
ip -n filt link set veth0 up promisc on
ip -n dev link set lo up
ip -n dev link set veth0 up promisc on
 
# add tc drop rule
tc -n dev qdisc replace dev veth0 clsact
tc -n dev filter add dev veth0 ingress matchall action gact drop
tc -n filt qdisc replace dev veth0 clsact
tc -n filt qdisc replace dev veth0 clsact
 
# create vlan dev in bridge with netdev
ip link add veth-dev.1 link veth-dev type vlan id 1
ip link set veth-dev.1 master br-dev
ip link set veth-dev.1 up
 
# add plain veth in bridge with vlan filtering
ip link set veth-filt master br-filt
 
# set vlan filtering
ip link set dev br-filt up type bridge vlan_filtering 1
bridge vlan del vid 1 dev veth-filt
bridge vlan add vid 1 dev veth-filt

Comments