如何设置静态路由
现象描述
静态路由(英语:Static routing)是一种路由的方式,路由项(routing entry)由手动配置,而非动态决定。 与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。 一般来说,静态路由是由网络管理员逐项加入路由表。
此处介绍如何配置Atlas 200I DK A2开发者套件的路由。开发者套件具有3个自带的网络设备(2个千兆以太网口和一个Type-C虚拟网口),在以下情况下,需要配置静态路由:
- 开发者套件需使用了多个网口连接了不同的局域网,需要在各个局域网内都可以访问开发者套件。
- 开发者套件需要通过某个网口连接外部网络,比如连接互联网,需要设置默认路由。
解决方案
默认设置情况下,如果使用eth0可以连接路由器,由路由器给eth0网口分配IP和路由信息。
(base) root@davinci-mini:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.137.1 0.0.0.0 UG 0 0 0 eth1
当将开发者套件放置到某个局域网下的时候,就需要给开发者套件配置静态IP和静态路由,例如将小藤放置到90.0.0.0/8网段下,将开发者套件的eth0接入该局域网。分配给开发者套件的静态IP、网段的网关信息需要咨询该网络的管理员获取,此处以分配IP90.90.128.2为例,子网掩码是23位,路由网段是90.0.0.0/8,通往该路由网段的网关是90.90.128.1。
- Ubuntu操作系统:
可以通过Netplan工具来配置网络,有关Netplan工具的介绍,请参见参考链接。Netplan通过/etc/netplan/*.yaml文件来对网络进行配置,开发者套件的默认的网络配置文件为/etc/netplan/01-netcfg.yaml。
network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: [90.90.128.2/23] routes: - to: 90.0.0.0/8 via: 90.90.128.1 nameservers: addresses: [8.8.8.8] addresses: [114.114.14.114] eth1: dhcp4: no addresses: [192.168.137.100/24] routes: - to: default via: 192.168.137.1 nameservers: addresses: [8.8.8.8] addresses: [114.114.114.114] usb0: dhcp4: no addresses: [192.168.0.2/24] routes: - to: 192.168.0.0/24 via: 192.168.0.1 nameservers: addresses: [8.8.8.8] addresses: [114.114.114.114]
- 默认路由(Default route),是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。 目的地不在路由表里的所有数据包都会使用默认路由。
- 一台主机只能配置一个默认路由,即在网络配置文件当中,以下路由配置信息最多只能出现一次:
routes: - to: default via: x.x.x.x
x.x.x.x 为默认路由的网关的IP地址。
上述/etc/netplan/01-netcfg.yaml配置文件,eth0接入90.90.128.0/23局域网,eth1接入192.168.137.0/24局域网,usb0接入192.168.0.0/24局域网,每个网口都配置了静态IP和静态路由,默认路由通过eth1接入局域网的网关192.168.137.1。
其中eth0配置的IP为90.90.128.2/23,路由为:
routes: - to: 90.0.0.0/8 via: 90.90.128.1
参数解释:
- routes: 的含义是为该网络设备指定路由,可以是多条路由(多条路即to/via有多个)。
- - to: 的含义是该条路由的目的地址(网段),即通过route -n 命令查询的Destination项。
- via: 是指网关,即通往目的地址(网段)所需要经过的设备的IP地址。
执行netplan apply配置生效后,小藤将生成如下的路由信息:
(base) root@davinci-mini:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 90.0.0.0 90.90.128.1 255.0.0.0 UG 0 0 0 eth0
- OpenEuler操作系统:
上述/etc/netplan/01-netcfg.yaml配置文件,eth0接入90.90.128.0/23局域网,eth1接入192.168.137.0/24局域网,usb0接入192.168.0.0/24局域网,每个网口都配置了静态IP和静态路由,默认路由通过eth1接入局域网的网关192.168.137.1。其中eth0配置的IP为90.90.128.2/23,路由为90.90.128.1。
TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.0.2 NETMASK=255.255.254.0 GATEWAY=90.90.128.1
在键盘按Esc键退出编辑状态,输入:wq!保存配置。执行nmcli con reload重加载配置文件,再执行nmcli con up ifcfg-eth1命令激活配置。生成路由如下:
-sh-5.1# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 90.0.0.0 90.90.128.1 255.0.0.0 UG 0 0 0 eth0
配置正确的路由后,开发者套件就可以与90.90.128.0/23网段外的设备进行通信了,比如与90.254.79.88/32主机进行通信。如果没有正确配置路由信息,将无法与90.90.128.0/23网段外的主机进行通信,这种情况下,开发者套件只能与本局域网内的其他设备进行通信,比如与IP信息为90.90.128.100/23的主机进行通信。当发现开发者套件在局域网内,无法访问外部网络(局域网外的网络)时,请检查IP、掩码、路由信息是否配置正确。必要情况下,请与您的网络管理员确认您的网络配置信息是否正确。