Skip to content
Snippets Groups Projects
Commit a99fb3a0 authored by Romain.Moscheni's avatar Romain.Moscheni
Browse files

Initial commit

parents
Branches main
No related tags found
No related merge requests found
part1.sh 0 → 100644
#/bin/bash
ssh R1 << 'EOF'
apt update && apt install -y tcpdump
echo 1 > /proc/sys/net/ipv4/ip_forward
dhclient -v eth0
ip addr add 10.0.0.1/24 dev eth1
ip link set eth1 up
cat > /root/nat.nft << 'ENDNAT'
#!/usr/sbin/nft -f
flush ruleset
table ip nat {
chain masq {
type nat hook postrouting priority 100;
oifname "eth0" counter masquerade
}
}
ENDNAT
nft -f /root/nat.nft
EOF
ssh H1 << 'EOF'
apt update && install -y tcpdump
ip addr add 10.0.0.2/24 dev eth0
ip link set eth0 up
ip route add default via 10.0.0.1 dev eth0
EOF
part2.sh 0 → 100644
#!/bin/bash
ssh R1 << 'EOF'
set -e
ip netns del ns2 2>/dev/null || true
ip link del veth0 2>/dev/null || true
ip link del veth1 2>/dev/null || true
ip netns add ns2
ip link add veth1 type veth peer name veth1-ns
ip link add veth0 type veth peer name veth0-ns
ip link set veth1-ns netns ns2
ip link set veth0-ns netns ns2
ip link set veth1 up
ip link set veth0 up
ip netns exec ns2 ip link set lo up
ip netns exec ns2 ip link set veth1-ns name veth1
ip netns exec ns2 ip link set veth0-ns name veth0
ip netns exec ns2 ip link set veth1 up
ip netns exec ns2 ip link set veth0 up
ip addr add 192.168.1.1/24 dev veth1
ip netns exec ns2 ip addr add 192.168.1.2/24 dev veth1
ip addr add 192.168.0.1/24 dev veth0
ip netns exec ns2 ip addr add 192.168.0.2/24 dev veth0
ip netns exec ns2 echo 1 > /proc/sys/net/ipv4/ip_forward
ip netns exec ns2 bash -c cat > /root/nat-r2.nft << 'ENDNAT'
flush ruleset
table ip nat {
chain masq {
type nat hook postrouting priority 100;
oifname "veth0" counter masquerade
}
}
ENDNAT
nft -f /root/nat-r2.nft
ip netns exec ns2 ip route add 10.0.0.0/24 via 192.168.1.1
ip netns exec ns2 ip route add default via 192.168.0.1
ip route delete default || true
ip route add default via 192.168.1.1
echo 100 custom >> /etc/iproute2/rt_tables
ip rule add iif veth0 table custom
ip route add default via 172.21.1.1 table custom
EOF
part3.sh 0 → 100644
#!/bin/bash
ssh H1 << 'EOF'
set -e
ip addr flush dev eth0
ip addr add 10.0.0.2/24 dev eth0
ip link set eth0 up
ip route del default 2>/dev/null || true
ip route add default via 10.0.0.254
EOF
ssh R1 << 'EOF'
set -e
ip netns del ns2 2>/dev/null || true
ip link del br0 2>/dev/null || true
ip link del br1 2>/dev/null || true
ip link del veth1 2>/dev/null || true
ip link del veth0 2>/dev/null || true
nft flush ruleset 2>/dev/null || true
ip link add br0 type bridge
ip link set br0 up
ip link add br1 type bridge
ip link set br1 up
ip link add veth0 type veth peer name veth0-ns
ip link add veth1 type veth peer name veth1-ns
ip netns add ns2
ip link set veth0-ns netns ns2
ip link set veth1-ns netns ns2
ip link set eth0 up
ip link set eth0 master br0
ip link set eth1 up
ip link set eth1 master br1
ip link set veth0 up
ip link set veth0 master br0
ip link set veth1 up
ip link set veth1 master br1
ip netns exec ns2 ip link set veth0-ns name eth0
ip netns exec ns2 ip link set eth0 up
ip netns exec ns2 ip link set veth1-ns name eth1
ip netns exec ns2 ip link set eth1 up
ip addr add 172.21.1.100/24 dev br0
ip addr add 10.0.0.254/24 dev br1
ip netns exec ns2 echo 1 > /proc/sys/net/ipv4/ip_forward
ip route del default via 172.21.1.1 dev br0 2>/dev/null || true
ip route add default via 172.21.1.1 dev br0
ip netns exec ns2 bash -c cat > /root/nat-r2.nft << 'ENDNFT'
#!/usr/sbin/nft -f
flush ruleset
table ip nat {
chain masq {
type nat hook postrouting priority 100;
oifname "br0" counter masquerade
}
}
ENDNFT
nft -f /root/nat-r2.nft
EOF
\ No newline at end of file
part4.sh 0 → 100644
#!/bin/bash
ssh -tt H1 << 'EOF'
set -e
ip addr flush dev eth0
ip addr add 10.0.0.2/24 dev eth0
ip link set eth0 up
ip route del default 2>/dev/null || true
ip route add default via 10.0.0.254
EOF
ssh -tt R1 << 'EOF'
set -e
ip netns add ns2
ip netns add ns3
ip link add br0 type bridge
ip link set br0 up
ip link add br1 type bridge
ip link set br1 up
ip addr add 172.21.1.100/24 dev br0
ip addr add 10.0.0.254/24 dev br1
ip link set eth1 up
ip link set eth1 master br1
ip link set eth0 up
ip link set eth0 master br0
ip link add veth0-r1 type veth peer name veth0-ns2
ip link add veth1-r1 type veth peer name veth0-ns3
ip link add veth1-ns2 type veth peer name veth1-ns3
ip link set veth0-r1 up
ip link set veth0-r1 master br0
ip link set veth1-r1 up
ip link set veth1-r1 master br1
ip link set veth0-ns2 netns ns2
ip link set veth1-ns2 netns ns2
ip link set veth0-ns3 netns ns3
ip link set veth1-ns3 netns ns3
# -----------------------------------------------
ip netns exec ns3 ip link set veth0-ns3 name eth0
ip netns exec ns3 ip link set veth1-ns3 name eth1
ip netns exec ns3 ip link set eth0 up
ip netns exec ns3 ip link set eth1 up
ip netns exec ns3 ip addr add 192.168.32.2/24 dev eth1
ip netns exec ns3 ip addr add 10.0.0.254/24 dev eth0
ip netns exec ns3 ip route add default via 192.168.32.1 dev eth1
# ------------------------------------------------
ip netns exec ns2 ip link set veth0-ns2 name eth0
ip netns exec ns2 ip link set veth1-ns2 name eth1
ip netns exec ns2 ip link set eth0 up
ip netns exec ns2 ip link set eth1 up
ip netns exec ns2 ip addr add 192.168.32.1/24 dev eth1
ip netns exec ns2 ip addr add 172.21.1.100/24 dev eth0
ip netns exec ns2 ip route add 10.0.0.0/24 via 192.168.32.2 dev eth1
ip netns exec ns2 ip route add default via 172.21.1.1 dev eth0
# --------------------------------------------------
ip netns exec ns2 echo 1 > /proc/sys/net/ipv4/ip_forward
ip netns exec ns3 echo 1 > /proc/sys/net/ipv4/ip_forward
ip netns exec ns2 bash -c cat > /root/nat-r2.nft << 'ENDNFT'
#!/usr/sbin/nft -f
flush ruleset
table ip nat {
chain masq {
type nat hook postrouting priority 100;
oifname "br0" counter masquerade
}
}
ENDNFT
nft -f /root/nat-r2.nft
EOF
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment