diff --git a/script/net-config.sh b/script/net-config.sh new file mode 100644 index 0000000..775fb7e --- /dev/null +++ b/script/net-config.sh @@ -0,0 +1,61 @@ +#!/bin/bash +if [ $# -eq 0 ]; then + echo "input client num" + exit 1 +fi + +client_num=$1 + +#1 配置接口IP +ifconfig ens192 192.168.10.10/24 + +#2 配置VxLAN隧道 +for (( i=0; i<$client_num; i++ )) +do + vni=$[ `expr $i + 100` ] + intf=vxlan$vni + ip link add $intf type vxlan id $vni dstport 4789 remote 192.168.10.254 local 192.168.10.10 dev ens192 + ip link set $intf up +done + + +#3 配置 bridge +for (( i=0; i<$client_num; i++ )) +do + vni=$[ `expr $i + 100` ] + brctl addbr sw_$vni + ifconfig sw_$vni up +done + + +#4 配置netns +for (( i=0; i<$client_num; i++ )) +do + vni=$[ `expr $i + 100` ] + ip netns add ns$vni + ip link add veth0 type veth peer name veth$vni + ip link set veth0 netns ns$vni + ifconfig veth$vni up + ip netns exec ns$vni ifconfig veth0 up + brctl addif sw_$vni veth$vni vxlan$vni +done + + +#5 dhclient +for (( i=0; i<$client_num; i++ )) +do + vni=$[ `expr $i + 100` ] + ip netns exec ns$vni dhclient -r + ip netns exec ns$vni dhclient + ip netns exec ns$vni ifconfig +done + +#6 run iperf +for (( i=0; i<$client_num; i++ )) +do + vni=$[ `expr $i + 100` ] + ip netns exec ns$vni ifconfig + ip netns exec ns$vni ping 192.168.123.1 -c 1 + ip netns exec ns$vni ip route add 192.168.40.254/32 via 192.168.123.1 + ip netns exec ns$vni ping 192.168.40.254 -c 1 +done