Created
September 19, 2018 09:06
-
-
Save languitar/9ac8dc5c8db7cf4a89e1546f6e32ca7b to your computer and use it in GitHub Desktop.
Linux bridge issues
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
while true | |
do | |
echo "next" | |
ip link add vethtest0 type veth peer name vethtest1 | |
brctl addif brtest vethtest0 | |
sleep 2 | |
brctl delif brtest vethtest0 | |
ip link del vethtest0 | |
sleep 1 | |
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
# teardown | |
function cleanup { | |
set +e | |
brctl delif brtest vethtest0 | |
ip link del vethtest0 | |
iptables -t nat -D POSTROUTING -j MASQUERADE -s 10.12.10.0/24 -d 0.0.0.0/0 | |
iptables -D FORWARD -i brtest -o enp0s31f6 -j ACCEPT | |
iptables -D FORWARD -o brtest -i enp0s31f6 -j ACCEPT | |
ip link delete veth0 | |
ip link set down brtest | |
brctl delbr brtest | |
ip netns del test | |
} | |
trap cleanup EXIT | |
ip netns add test | |
brctl addbr brtest | |
ip addr add 10.12.10.1/24 dev brtest | |
ip link set up dev brtest | |
ip link add veth0 type veth peer name veth1 | |
ip link set veth1 netns test | |
brctl addif brtest veth0 | |
ip link set up dev veth0 | |
ip netns exec test ip addr add 10.12.10.42/24 dev veth1 | |
ip netns exec test ip link set up dev veth1 | |
ip netns exec test ip route add default via 10.12.10.1 dev veth1 | |
# change external interface name | |
iptables -A FORWARD -o brtest -i enp0s31f6 -j ACCEPT | |
iptables -A FORWARD -i brtest -o enp0s31f6 -j ACCEPT | |
iptables -t nat -A POSTROUTING -j MASQUERADE -s 10.12.10.0/24 -d 0.0.0.0/0 | |
while true; do ip netns exec test python3 -c "import socket; socket.gethostbyname('example.org')" && echo success; sleep 1; done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment