本文描述主流系统和产品添加静态路由的方法,一些具备 WEB 管理界面的产品不在讨论范围,比如防火墙、路由器等多数产品具备直观的操作界面。
macOS
1、添加路由命令(临时)
与 Linux 类似,但是网关没有 gw 参数(同 FreeBSD)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
# 查看当前路由表 netstat -rn
# 获取默认路由 route get 0.0.0.0
# 删除默认路由 sudo route -n delete default 10.2.0.1
# 添加默认路由 sudo route add -net 0.0.0.0 10.2.0.1
# 添加静态路由 (sysin) sudo route add -net 10.16.0.0 10.18.18.10 sudo route add -net 10.16.0.0/16 10.18.18.10 sudo route -n add -net 192.168.2.0 -netmask 255.255.255.0 192.168.5.254
|
2、使用 networksetup 命令设置永久静态路由
可以适用于 macOS Big Sur。
macOS 提供了一个名为 networksetup 的命令行界面,它允许您进行各种网络配置。
可以通过 networksetup –help 查看具体的帮助。其实它就是 “系统偏好设置” 中网络设置工具的命令行版本,但是功能更为强大一些。
使用 networksetup 命令添加永久静态路由,如下:
解释:
- “Wi-Fi” 指定路由走哪个设备(使用命令 networksetup -listallnetworkservices 查看当前的设备)
- 10.18.1.0/24 和 10.16.0.0 都指向 192.169.1.1
验证:
使用 netstat -nr 查看路由表。
清空路由:
1
|
networksetup -setadditionalroutes Wi-Fi
|
再次用 netstat -rn 查看路由可以看到添加的路由没有了。
FreeBSD
临时:
1
|
route add -net 10.10.1.0/24 10.10.1.1
|
与 Linux 类似,但是网关没有 gw 参数(同 macOS)
永久:
Set default router IP to 60.1.2.3:
1
|
defaultrouter="60.1.2.3"
|
Create static routing for lan network 192.168.1.0/24, append following two lines:
1 2
|
static_routes="lan" route_lan="-net 192.168.1.0/24 192.168.1.254"
|
How do I add multiple static routes (sysin)?
network | router IP |
lan (192.168.1.0/24) |
192.168.1.254 |
mumoffice (10.0.0.0/8) |
10.30.110.5 |
foo 169.254.1.1 |
via loopback (lo0) |
Add following to /etc/rc.conf
1 2 3 4
|
static_routes="lan mumoffice foo" route_lan="-net 192.168.1.0/24 192.168.1.254" route_mumoffice="-net 10.0.0.0/8 10.30.110.5" route_foo="-host 169.254.1.1 -iface lo0"
|
Windows
1 2 3 4 5
|
route add -p 10.0.0.0 mask 255.0.0.0 10.10.16.1
|
Cisco
Cisco IOS、IOS-XE
1 2
|
ip route 10.0.0.0 255.0.0.0 10.10.200.2254 ip route 10.10.11.0 255.255.255.0 10.10.12.1
|
Cisco NX-OS
1 2
|
N7K(config)#vrf context management N7K(config-vrf)# ip route 0.0.0.0/0 <下一跳 IP>
|
Linux
Linux(通用,临时)
1
|
route add -net 10.10.11.0/24 gw 10.10.1.1
|
CentOS(永久)
推荐方式:
1 2 3 4 5 6 7
|
echo ' 10.10.12.0/24 via 10.10.15.1 10.10.13.0/24 via 10.10.15.1 10.10.14.0/24 via 10.10.15.1 10.10.15.0/24 via 10.10.15.1 10.10.16.0/24 via 10.10.15.1 ' > /etc/sysconfig/network-scripts/route-eth0
|
另外一种方法:使用 network.service(CentOS7 默认,CentOS8 需要 yum install network-scripts
)
1 2 3 4 5 6
|
echo ' any net 10.10.13.0/24 gw 10.10.15.1 any net 10.10.14.0/24 gw 10.10.15.1 any net 10.10.15.0/24 gw 10.10.15.1 any net 10.10.16.0/24 gw 10.10.15.1 ' > /etc/sysconfig/static-routes
|
验证
Debian(永久)
Debian 11:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#添加 cat >> /etc/network/interfaces <<EOF # static routes up ip route add 10.10.12.0/24 via 10.10.1.1 dev eth0 up ip route add 10.10.13.0/24 via 10.10.1.1 dev eth0 up ip route add 10.10.14.0/24 via 10.10.1.1 dev eth0 up ip route add 10.10.15.0/24 via 10.10.1.1 dev eth0 up ip route add 10.10.16.0/24 via 10.10.1.1 dev eth0 EOF
#重启网络 systemctl restart networking
#验证 (sysin) ip route
|
Ubuntu 16.04(永久)
16.04
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#添加 cat >> /etc/network/interfaces <<EOF # static routes up route add -net 10.10.12.0/24 gw 10.10.15.1 dev eth0 up route add -net 10.10.13.0/24 gw 10.10.15.1 dev eth0 up route add -net 10.10.14.0/24 gw 10.10.15.1 dev eth0 up route add -net 10.10.15.0/24 gw 10.10.15.1 dev eth0 up route add -net 10.10.16.0/24 gw 10.10.15.1 dev eth0 EOF
#重启网络 service networking restart
#验证 ip route
|
Ubuntu 18.04、20.04 及以上
18.04: /etc/netplan/50-cloud-init.yaml
20.04:/etc/netplan/00-installer-config.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13
|
network: version: 2 ethernets: eth0: addresses: - 10.10.15.5/24 gateway4: 10.10.15.1 nameservers: addresses: - 10.10.15.11 - 10.10.15.12 search: - sysin.org
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
# 注释 gateway4 sed -i 's/gateway4.*/#&/' /etc/netplan/00-installer-config.yaml # 追加静态路由 cat >> /etc/netplan/00-installer-config.yaml <<EOF routes: - to: 0.0.0.0/0 via: 10.10.15.254 metric: 100 - to: 10.10.12.0/24 via: 10.10.15.1 metric: 100 - to: 10.10.13.0/24 via: 10.10.15.1 metric: 100 - to: 10.10.14.0/24 via: 10.10.15.1 metric: 100 - to: 10.10.15.0/24 via: 10.10.15.1 metric: 100 - to: 10.10.16.0/24 via: 10.10.15.1 metric: 100 EOF
|
metric:为路由指定所需跃点数的整数值(范围是 1 ~ 9999),Metric 的值越小,优先级越高。
完整配置示例(> 覆盖)
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
|
cat > /etc/netplan/00-installer-config.yaml <<EOF network: version: 2 ethernets: eth0: addresses: - 10.10.15.57/24 #gateway4: 10.10.15.254 nameservers: addresses: - 10.10.15.11 - 10.10.15.12 search: - sysin.org routes: - to: 0.0.0.0/0 via: 10.10.15.254 metric: 100 - to: 10.10.12.0/24 via: 10.10.15.1 metric: 100 - to: 10.10.13.0/24 via: 10.10.15.1 metric: 100 - to: 10.10.14.0/24 via: 10.10.15.1 metric: 100 - to: 10.10.15.0/24 via: 10.10.15.1 metric: 100 - to: 10.10.16.0/24 via: 10.10.15.1 metric: 100 EOF
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
network: version: 2 renderer: networkd ethernets: eth0: addresses: - 9.0.0.9/24 - 10.0.0.10/24 - 11.0.0.11/24
|
补充:yaml 基础
1 2 3 4
|
大小写敏感 使用缩进表示层级关系 缩进时不允许使用 Tab 键,只允许使用空格 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
|
缩进建议使用 2 个空格,使用短横线 “-” 表示列表时,”- “后面的条目需要对齐,如果使用超过 2 个空格缩进,格式将有误。
VMware
VMware ESXi
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
#查看路由 esxcfg-route -l #添加 esxcli network ip route ipv4 add --gateway 10.10.15.1 --network 10.10.12.0/24 esxcli network ip route ipv4 add --gateway 10.10.15.1 --network 10.10.13.0/24 esxcli network ip route ipv4 add --gateway 10.10.15.1 --network 10.10.14.0/24 esxcli network ip route ipv4 add --gateway 10.10.15.1 --network 10.10.15.0/24 esxcli network ip route ipv4 add --gateway 10.10.15.1 --network 10.10.16.0/24 #删除默认路由 esxcli network ip route ipv4 remove -n 0.0.0.0/0 -g 10.10.15.1 #恢复默认路由 esxcli network ip route ipv4 add --gateway 10.10.15.254 --network 0.0.0.0/0 #查看路由 (sysin) esxcfg-route -l
|
1 2 3 4 5 6 7 8 9 10 11 12 13
|
esxcfg-route -l
esxcli network ip route ipv4 add --gateway 10.10.14.1 --network 10.10.12.0/24 esxcli network ip route ipv4 add --gateway 10.10.14.1 --network 10.10.13.0/24 esxcli network ip route ipv4 add --gateway 10.10.14.1 --network 10.10.14.0/24 esxcli network ip route ipv4 add --gateway 10.10.14.1 --network 10.10.15.0/24 esxcli network ip route ipv4 add --gateway 10.10.14.1 --network 10.10.16.0/24
esxcli network ip route ipv4 remove -n 0.0.0.0/0 -g 10.10.14.1
esxcli network ip route ipv4 add --gateway 10.10.14.254 --network 0.0.0.0/0
esxcfg-route -l
|
NSX-T
基于 Ubuntu,但不可手动编辑,以下为 nsxcli (使用 admin 账号登录)
1 2 3 4 5 6 7 8 9
|
set route prefix 0.0.0.0/0 gateway 10.10.15.254 interface eth0
set route prefix 10.10.12.0/24 gateway 10.10.15.1 interface eth0 set route prefix 10.10.13.0/24 gateway 10.10.15.1 interface eth0 set route prefix 10.10.14.0/24 gateway 10.10.15.1 interface eth0 set route prefix 10.10.15.0/24 gateway 10.10.15.1 interface eth0 set route prefix 10.10.16.0/24 gateway 10.10.15.1 interface eth0
get route
|
VMware vRealize Network Insight
基于 Ubunt 16.04,与 Ubuntu 相同
使用 support 账号登录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#添加 cat >> /etc/network/interfaces <<EOF # static routes up route add -net 10.10.12.0/24 gw 10.10.15.1 dev eth0 up route add -net 10.10.13.0/24 gw 10.10.15.1 dev eth0 up route add -net 10.10.14.0/24 gw 10.10.15.1 dev eth0 up route add -net 10.10.15.0/24 gw 10.10.15.1 dev eth0 up route add -net 10.10.16.0/24 gw 10.10.15.1 dev eth0 EOF
#重启网络 service networking restart
#验证 ip route
|
VMware Photon OS
vCenter Server 6.x/7.0
用于 vRealize 8.x 系列产品(3.0),vSphere_Replication(2.0),SRM(2.0)
编辑 /etc/systemd/network/10-eth0.network
添加如下:
1 2 3 4
|
[Route] Destination=10.1.0.0/16 Gateway=10.5.0.1 GatewayOnlink=true #可选
|
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
|
cat >> /etc/systemd/network/10-eth0.network <<EOF
[Route] Destination=10.10.12.0/24 Gateway=10.10.15.1 GatewayOnlink=true
[Route] Destination=10.10.13.0/24 Gateway=10.10.15.1 GatewayOnlink=true
[Route] Destination=10.10.14.0/24 Gateway=10.10.15.1 GatewayOnlink=true
[Route] Destination=10.10.15.0/24 Gateway=10.10.15.1 GatewayOnlink=true
[Route] Destination=10.10.16.0/24 Gateway=10.10.15.1 GatewayOnlink=true EOF
|
重启网络
1
|
systemctl restart systemd-networkd
|
验证
VMware Cloud Director Availability 4.0
注意:手动修改网络配置后,WebUI 中显示错误无法直接配置。
基于 Photon OS,但是网卡名称不一样。
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
|
cat >> /etc/systemd/network/ens160.network <<EOF
[Route] Destination=10.10.12.0/24 Gateway=10.10.15.1 GatewayOnlink=true
[Route] Destination=10.10.13.0/24 Gateway=10.10.15.1 GatewayOnlink=true
[Route] Destination=10.10.14.0/24 Gateway=10.10.15.1 GatewayOnlink=true
[Route] Destination=10.10.15.0/24 Gateway=10.10.15.1 GatewayOnlink=true
[Route] Destination=10.10.16.0/24 Gateway=10.10.15.1 GatewayOnlink=true EOF
|
重启网络
1
|
systemctl restart systemd-networkd
|