试想有这样一个场景,你使用手机时,想为手机配置静态路由,应该怎么操作?
对于网络设备而言,配置静态路由再简单不过了(网络之路2:初识路由表),一条命令就能解决;对于终端操作系统而言,配置也很简单(CentOS 7多网卡配置(最小化安装))。
但是对于手机,一时间就会让人犯难,因为他没有可以交互的配置;也不是完全没有,使用ADB还是可以操作的(不使用USB,Windows电脑如何通过网络操控Android手机?)。
那有没有一种可能,我们能给手机推送路由?
在很久很久之前,我们曾经发过有关DHCP高阶玩法的几篇介绍,也就是配置option选项(【先码后看】DHCP 扩展选项大全,动态主机配置协议(DHCPv4)的无类静态路由选项)。
在(【先码后看】DHCP 扩展选项大全)中,我们介绍了Option-33选项,此选项可以指定客户端写入到其路由表缓存中的静态路由列表。如果指定了到同一目的地的多条路由,它们将按优先级降序排列。当然,默认路由(0.0.0.0)是静态路由的非法目的地址,被禁止了。
在(动态主机配置协议(DHCPv4)的无类静态路由选项)中,我们介绍了Option-121选项,该选项可以从DHCP服务器传递到DHCP客户端,用来配置客户端中的静态路由列表。这些路由中的网络目的地址是无类别的,即每个路由表条目都包含一个子网掩码。
当然,作为世界领先的H3C设备,肯定也是支持这些DHCP选项的,根据官网资料介绍:Option-33为静态路由选项,该选项中包含一组有分类静态路由(即目的网络地址的掩码固定为自然掩码,不能划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。而Option-121为无分类路由选项,该选项中包含一组无分类静态路由(即目的网络地址的掩码为任意值,可以通过掩码来划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。
当然,如果Option 33和Option 121同时存在,则忽略Option 33,这跟RFC3442的描述相符(动态主机配置协议(DHCPv4)的无类静态路由选项),因为Option 121废弃了RFC 2132中定义的Option 33(【先码后看】DHCP 扩展选项大全)。
那我们应该怎么用呢?
按照RFC所描述的,DHCP选项33的报文格式如下所示:
其中,路由条目由IP地址对列表组成,第一个地址是目的地址(Destination),第二个地址是下一跳路由设备(Router)。此选项的最小长度为8字节,且长度必须为8的倍数。
那H3C设备是怎么处理的呢?我们用HCL来简单演示一下(网络之路11:认识网络设备模拟器HCL)。
搭建一个如下所示的网络拓扑:
其中,我们用一台交换机来作为DHCP服务器,下发网关设备为GW的同时,下发一条到SEC设备的静态路由;一个VLAN作为一个业务区,划分多个VLAN即可复制多个业务区;配置VLAN 101为管理区,要求所有终端都有达到SEC安全设备的路由,避免设备脱管。
交换机的设备上,除DHCP选项之外的配置如下:
# dhcp enable#vlan 11#vlan 101#dhcp server ip-pool vlan11 gateway-list 10.1.11.1 network 10.1.11.0 mask 255.255.255.0 dns-list 223.5.5.5 forbidden-ip 10.1.11.100#interface Vlan-interface11 ip address 10.1.11.100 255.255.255.0#interface Vlan-interface101 ip address 10.1.101.1 255.255.255.0#interface GigabitEthernet1/0/1 port link-mode bridge port access vlan 11 combo enable fiber#interface GigabitEthernet1/0/2 port link-mode bridge port access vlan 11 combo enable fiber#interface GigabitEthernet1/0/3 port link-mode bridge port access vlan 101 combo enable fiber
如果此时让PHONE终端设备上线,则获取到的配置如下:
可以看到,获取到了IP地址10.1.11.2/24,网关为10.1.11.1。我们看一下现在的网络情况。