ACT 与 BUAA 网络环境介绍
BUAA 内网网络大致位于 10.0.0.0/8 子网,而 ACT 内网网络一般位于 192.168.2.0/24 下,都有 DHCP 服务为使用者提供 IP、网关 IP、DNS 等信息。在 ACT 实验室中,台式机一般通过以太网卡连接 ACT 内网(高速)、通过 USB WiFi 网卡连接 BUAA 内网(低速)。在理想情景下:
- 使用者应能在 BUAA 内网和 ACT 内网下通过 SSH 连接、管理台式机;
- 台式机应尽可能使用 ACT 内网连接互联网,以获得更快的速度。
在 Ubuntu 里配置双网卡
确认网卡信息与连接状态
通过以下命令查看网卡信息与连接状态:
1
2
3
4
$ nmcli connection show
NAME UUID TYPE DEVICE
ACT-Eth ... ethernet <act-dev>
BUAA-WiFi ... wifi <buaa-dev>
查看 IP 地址
通过以下命令查看 IP 地址:
1
$ ip address
其中,形如 inet <ip> ...
的条目指示了 IP 地址 <ip>
。这样的条目有两条,一条是 ACT 内网的 IP 地址(记作 act-ip
),一条是 BUAA 内网的 IP 地址(记作 buaa-ip
)。
查看网关信息
通过以下命令查看网关信息:
1
$ ip route
其中,形如 default via <gateway-ip> ...
的路由条目指示了默认网关的 IP 地址 <gateway-ip>
。
这样的默认路由条目有两条,一条指向 ACT 内网的网关(记作 act-gateway
),一条指向 BUAA 内网的网关(记作 buaa-gateway
)。
配置路由
通过以下命令配置路由:
1
2
3
# ip route add <buaa-gateway> dev <buaa-dev>
# ip route add 10.0.0.0/8 via <buaa-gateway> dev <buaa-dev> src <buaa-ip>
# ip route add 219.224.171.0/24 via <buaa-gateway> dev <buaa-dev> src <buaa-ip>
这样,台式机就能通过 BUAA 内网来响应来自 BUAA 内网(10.0.0.0/8)和 ACT 出口(219.224.171.0/24)的请求,从而建立 SSH 连接。对于其他请求,台式机将优先使用 ACT 内网连接(ACT 默认路由一般有更小的 metric),以获得更快的速度。
连接 WiFi 后自动配置
在 Ubuntu 中,可以通过网络接口钩子实现在连接 WiFi 后自动配置路由,具体来说,可以在 /etc/network/if-up.d/
下创建一个脚本,以在网络接口启动时执行。
1
2
3
4
5
6
#!/bin/sh
case "$IFACE" in
wl*) /srv/network/config ;;
*) exit 0 ;;
esac
并在 /srv/network/config
中写入配置路由的命令。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
set -eu
connections="$(nmcli connection show)"
function route {
ip route add $@ || true
}
function config {
echo "<<--------"
echo "... Configuring $1"
local device=$(echo "$connections" | \
grep -Eo "$1\s+\w+" | \
awk '{ print $2 }')
echo "Device Found: $device"
local ipaddr=$(ip address show dev "$device" | \
awk '/inet\s+/ { print $2 }' | \
cut -d/ -f1)
echo "IPv4 Address: $ipaddr"
local gatway=$(ip route show default dev "$device" | \
awk '{ print $3 }')
echo "IPv4 Gateway: $gatway"
route "$gatway" dev "$device"
route 10.0.0.0/8 via "$gatway" dev "$device" src "$ipaddr"
route 219.224.171.0/24 via "$gatway" dev "$device" src "$ipaddr"
echo "-------->>"
}
config wifi