1
0
mirror of https://github.com/QSCTech/zjunet.git synced 2026-01-22 11:44:48 +08:00
zjunet/lib/route.sh

111 lines
3.7 KiB
Bash
Raw Permalink Normal View History

2014-09-28 21:39:15 +08:00
#!/bin/sh
# route.sh -- set up ip route
#
# Copyright (C) 2014 Zeno Zeng <zenoofzeng@gmail.com>
# Copyright (C) 2014 Hexcles Ma <bob1211@gmail.com>
# Copyright (C) 2014 Senorsen Zhang <sen@senorsen.com>
2014-09-28 21:39:15 +08:00
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
# <http://www.gnu.org/licenses/>.
2014-10-14 17:27:22 +08:00
ip route flush cache
2014-09-28 21:39:15 +08:00
ip_route_del() {
count=$(ip route show $1 | wc -l)
if [ "${count}" -gt "0" ]; then
ip route del $1
fi
}
echo "[INFO] Setting up ip route."
gateway=$(ip route get 10.10.0.21 | grep via | awk '{print $3}')
# Recently VPN server 10.5.1.7 has the P-t-P: 172.172.172.2, after some updates.
# Mar 2019 Update: A new VPN server 10.0.2.27 has been set up.
devs_count=$(ip addr show | grep 'inet.*ppp' | grep ' 10.5.\|172.172.172.\|10.0.2.' | awk '{print $7}' | wc -l)
2014-09-28 21:39:15 +08:00
if [ "${devs_count}" -eq "0" ]; then
dev=$(ip route get 10.10.0.21 | head -n1 | awk '{print $5}')
ip_route_del 10.0.0.0/8
ip_route_del 10.50.200.245
ip_route_del 58.196.192.0/19
ip_route_del 58.196.224.0/20
ip_route_del 58.200.100.0/24
ip_route_del 210.32.0.0/20
ip_route_del 210.32.128.0/19
ip_route_del 210.32.160.0/21
ip_route_del 210.32.168.0/22
ip_route_del 210.32.172.0/23
2023-10-13 14:42:57 +08:00
ip_route_del 210.32.174.0/24
2014-09-28 21:39:15 +08:00
ip_route_del 210.32.176.0/20
ip_route_del 222.205.0.0/17
ip_route_del 10.5.1.0/24
ip_route_del 10.10.0.0/24
ip route replace default via $gateway dev $dev
ip route
2014-10-13 21:18:58 +08:00
exit 0
#return
2014-09-28 21:39:15 +08:00
fi
ip route replace 10.5.1.0/24 via $gateway # for LNS
ip route replace 10.10.0.0/24 via $gateway # for DNS
case "$gateway" in
10.189.*)
ip route replace 10.50.200.245 via $gateway
;;
*)
# 内网静态路由
# See also: #18 (thanks Hexcles Ma)
2014-09-30 18:11:45 +08:00
ip route replace 10.0.0.0/8 via $gateway
2014-09-28 21:39:15 +08:00
# Some classroom computers (especially East 6,7)
2014-09-30 18:11:45 +08:00
ip route replace 58.196.192.0/19 via $gateway
ip route replace 58.196.224.0/20 via $gateway
ip route replace 58.200.100.0/24 via $gateway
2014-09-28 21:39:15 +08:00
# The public CERNET IP of most ZJU servers, which can be reached directly in the Intranet through 10.0.0.0/8.
# If these servers are DNATed(have 210.32.*.* IP), we can't reach it through our gateway or VPN P-t-P.
# However these addresses also belong to Yu Quan Campus, our VPN, etc.,
# Which can be reached through our internal gateway.
2014-09-30 18:11:45 +08:00
ip route replace 210.32.0.0/20 via $gateway
ip route replace 210.32.128.0/19 via $gateway
ip route replace 210.32.160.0/21 via $gateway
ip route replace 210.32.168.0/22 via $gateway
ip route replace 210.32.172.0/23 via $gateway
2023-10-13 14:42:57 +08:00
ip route replace 210.32.174.0/24 via $gateway
2014-09-30 18:11:45 +08:00
ip route replace 210.32.176.0/20 via $gateway
ip route replace 222.205.0.0/17 via $gateway
2014-09-28 21:39:15 +08:00
;;
esac
# NEXTHOP
# Recently VPN server 10.5.1.7 has the P-t-P: 172.172.172.2, after some updates.
# Mar 2019 Update: A new VPN server 10.0.2.27 has been set up.
devs=$(ip addr show | grep 'inet.*ppp' | grep ' 10.5.\|172.172.172.\|10.0.2.' | awk '{print $7}')
2014-09-28 21:39:15 +08:00
cmd="ip route replace default"
for dev in $devs; do
cmd="${cmd} nexthop dev ${dev}"
done
$cmd
2014-10-01 04:10:17 +08:00
ip route
2014-10-14 17:27:22 +08:00
ip route flush cache