84 lines
1.7 KiB
Bash
84 lines
1.7 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
echo "reboot to erase the old configurations;"
|
||
|
bash ~/reboot.sh
|
||
|
echo "rebooting"
|
||
|
countdown=40
|
||
|
while [ $countdown -gt 0 ]; do
|
||
|
echo -ne "counting down: $countdown s \033[0K\r"
|
||
|
sleep 1
|
||
|
countdown=$((countdown - 1))
|
||
|
done
|
||
|
|
||
|
assign_ip(){
|
||
|
local dev=$1
|
||
|
local eth_num=$2
|
||
|
local ip=$3
|
||
|
ssh $dev "ip link set dev eth$eth_num up"
|
||
|
ssh $dev "ip addr add $ip dev eth$eth_num"
|
||
|
echo "dev $dev eth$eth_num assign $ip"
|
||
|
}
|
||
|
|
||
|
assign_br(){
|
||
|
local dev=$1
|
||
|
local ip=$2
|
||
|
local ip_nocode=$3
|
||
|
ssh $dev "ip link add name br0 type bridge"
|
||
|
ssh $dev "ip link set dev br0 up"
|
||
|
ssh $dev "ip address add $ip dev br0"
|
||
|
ssh $dev "ip route append default via $ip_nocode dev br0"
|
||
|
}
|
||
|
|
||
|
turn_up(){
|
||
|
local dev=$1
|
||
|
local eth_num1=$2
|
||
|
local eth_num2=$3
|
||
|
local eth_num3=$4
|
||
|
ssh $dev "ip link set eth$eth_num1 up"
|
||
|
ssh $dev "ip link set eth$eth_num1 master br0"
|
||
|
ssh $dev "ip link set eth$eth_num2 up"
|
||
|
ssh $dev "ip link set eth$eth_num2 master br0"
|
||
|
ssh $dev "ip link set eth$eth_num3 up"
|
||
|
ssh $dev "ip link set eth$eth_num3 master br0"
|
||
|
}
|
||
|
|
||
|
ping_dev(){
|
||
|
local dev=$1
|
||
|
local ip=$2
|
||
|
local eth_n=$3
|
||
|
ssh $dev "which ping"
|
||
|
local cmd="ping -c 5 -W 2 -I eth$eth_n $ip"
|
||
|
echo $cmd
|
||
|
ssh "$dev" $cmd
|
||
|
}
|
||
|
|
||
|
assign_ip "pc1" 1 "10.5.1.1/24"
|
||
|
|
||
|
assign_ip "pc2" 1 "10.5.1.2/24"
|
||
|
|
||
|
assign_ip "pc3" 1 "10.5.1.3/24"
|
||
|
|
||
|
|
||
|
assign_ip "router4" 1 "10.5.1.4/24"
|
||
|
|
||
|
|
||
|
assign_br "router1" "10.5.1.5/24" "10.5.1.5"
|
||
|
turn_up "router1" 1 3 4
|
||
|
|
||
|
assign_br "router2" "10.5.1.5/24" "10.5.1.5"
|
||
|
turn_up "router2" 1 3 4
|
||
|
|
||
|
assign_br "router3" "10.5.1.6/24" "10.5.1.6"
|
||
|
turn_up "router3" 1 2 3
|
||
|
|
||
|
ping_dev "pc1" "10.5.1.3" "1"
|
||
|
ping_dev "router4" "10.5.1.3" "1"
|
||
|
ping_dev "router4" "10.5.1.1" "1"
|
||
|
ping_dev "router4" "10.5.1.2" "1"
|
||
|
ping_dev "pc1" "10.5.1.4" "1"
|
||
|
ping_dev "pc2" "10.5.1.4" "1"
|
||
|
ping_dev "pc3" "10.5.1.4" "1"
|
||
|
|
||
|
|
||
|
|