Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-14-3:2011定义了LANDevice:1设备模板,这是UPnP互联网网关设备规范中专注于局域网管理的组件。WANIPConnection服务管理上游互联网链路,而LANDevice模板则提供配置和监控网关LAN侧网络参数的服务接口。这包括DHCP服务器配置、IP地址池管理、子网掩码和网关地址设置以及LAN接口统计信息。
LANDevice模板的设备类型为urn:schemas-upnp-org:device:LANDevice:1。它封装了LANHostConfigManagement:1服务,该服务为网关的DHCP服务器和IP地址管理提供了核心配置操作。标准将LAN设备定义为一个管理单个广播域(子网)的逻辑实体。具有多个LAN网段(如访客网络、VLAN)的网关可以暴露多个LANDevice实例,每个实例有自己的服务配置。
LANHostConfigManagement服务公开了定义网络配置的状态变量:DHCPServerEnabled(DHCP服务器启用,布尔值)、MinAddress(最小地址)、MaxAddress(最大地址,地址池范围)、SubnetMask(子网掩码)、IPRouters(默认网关)、DNSServers(DNS服务器)和DomainName(域名)。这些变量共同定义了DHCP服务器通过DHCPOFFER和DHCPACK消息交付给客户端的配置。该服务还提供了一个DHCPLeaseInfo(DHCP租约信息)变量,用于聚合活动租约信息以进行监控。
LANHostConfigManagement服务提供了读取和修改DHCP服务器配置的动作。GetSubnetMask()、GetIPRouters()、GetDNSServers()和GetDomainName()动作检索当前的网络配置参数。SetSubnetMask()、SetIPRouters()、SetDNSServers()和SetDomainName()动作允许控制点修改这些参数。一个关键的设计考虑是这些参数的更改在DHCP服务器重启之前不会生效——服务为此提供了单独的机制。
| 状态变量 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| DHCPServerEnabled | boolean | DHCP服务器是否活动 | true |
| MinAddress | string (IPv4) | DHCP地址池起始 | 192.168.1.100 |
| MaxAddress | string (IPv4) | DHCP地址池结束 | 192.168.1.200 |
| SubnetMask | string (IPv4) | LAN的子网掩码 | 255.255.255.0 |
| IPRouters | string (CSV) | 默认网关地址 | 192.168.1.1 |
| DNSServers | string (CSV) | DNS服务器地址 | 192.168.1.1 |
| DomainName | string | 本地域名 | lan |
| DHCPLeaseInfo | string (CSV) | 活动租约信息 | (变化) |
DHCP租约信息通过GetDHCPLeaseInfo()动作暴露,返回一个CSV格式的字符串,包含每个活动租约的详细信息:MAC地址、分配的IP地址、租约开始时间、租约持续时间和主机名。这对于网络监控和库存管理应用特别有价值。租约信息格式为:MAC,IP,StartTime,Duration,Hostname。例如:00:11:22:33:44:55,192.168.1.101,1265432100,86400,johns-phone。控制点可以解析此信息以构建连接设备的实时地图及其网络使用模式。
一个重要的工程细节是DHCP服务器与网关路由子系统之间的交互。当DHCP服务器为客户端分配IP地址时,网关应自动创建ARP条目,并根据配置安装相应的防火墙规则允许客户端访问WAN。LANHostConfigManagement服务不直接管理防火墙规则,但IGD整体架构期望网关协调DHCP分配与防火墙策略。这种耦合是特定于实现的,代表了网关固件工程师常见的集成复杂性来源。
MinAddress和MaxAddress状态变量定义了DHCP地址池的包含范围。地址池必须在SubnetMask定义的子网内,并且应排除网关自身的IP地址(通常是子网中的第一个地址)。当控制点修改地址池范围时,网关必须确保现有DHCP租约中地址落在新范围之外的客户端得到优雅处理——通常是通过允许它们自然到期而不是强制立即重新分配,这会导致这些客户端的网络中断。
IPRouters变量指定向DHCP客户端广告的默认网关地址。虽然通常是一个地址(网关自身的LAN IP),但CSV格式允许为具有冗余网关的网络设置多个路由器地址。类似地,DNSServers可以列出多个DNS服务器以实现冗余。网关应验证所有配置的路由器和DNS地址在本地子网内可达——广告不可达地址会导致最终用户难以诊断的连接问题。
DHCPServerEnabled布尔变量控制DHCP服务器是否活动。禁用时,LAN上的客户端必须使用静态IP配置或依赖外部DHCP服务器。这在已部署集中式DHCP服务器的企业环境中很有用。禁用DHCP时,网关应仍然维护其自身的IP地址和路由功能——只有地址分配服务被停用。使用false调用SetDHCPServerEnabled()会使网关停止响应DHCPDISCOVER消息,但不会清除现有租约,允许已连接的客户端保留其地址直到租约到期。
实现LANDevice模板需要UPnP服务层与网关网络协议栈之间的仔细协调。UPnP状态变量必须反映DHCP服务器和网络接口的实际运行配置。一种常见的架构模式使用配置抽象层,将UPnP动作转换为对底层操作系统网络API的调用。在基于Linux的网关上,这通常涉及读取和修改DHCP配置文件并向DHCP守护进程发送SIGHUP以应用更改。
多实例支持是另一个重要的考虑因素。一些网关支持通过VLAN或额外的物理接口实现多个LAN网段。每个LAN网段应作为独立的LANDevice实例暴露,具有自己的独立配置。IGD设备描述必须枚举所有LANDevice实例,控制点可以使用IGD上的操作来发现可用实例。标准建议实例按顺序编号,尽管实际实例编号是由实现定义的。
跨网关重启的DHCP租约持久性对用户体验至关重要。如果没有持久性,所有连接的设备在每次重启后都会失去其分配的IP地址,必须重新协商新租约,导致从几秒到几分钟不等的临时网络中断,具体取决于DHCP客户端超时配置。在非易失性存储中实现租约数据库,该数据库在网关初始化期间恢复。租约数据库应在每次DHCPACK事件时更新,并定期检查点以最小化意外断电时的数据丢失。