一、odhcpd介绍
odhcpd是一个开源的DHCPv6协议栈和RA/RS守护进程。它是OpenWrt操作系统中的一部分,用于IPv6网络配置。它提供了IPv6的自动配置,并且可以根据路由器通告(RA)设置IPv6地址,路由和DNS服务器。与其他DHCPv6服务器不同,odhcpd只使用单个Socket处理DHCPv6和RA/RS消息,并使用单个进程来管理所有IPv6接口的配置信息。它的主要优点是使用少量的系统资源,因此在嵌入式系统上非常适合。
二、odhcpd 中文解析问题
odhcpd在解析中文时会出现问题,解决方法是使用IDN(Internationalized Domain Name)进行编码。例如:www.百度.com应该写成www.xn--fiq228c.com。这样odhcpd就可以正确的解析中文域名。
三、odhcpd ipv6
odhcpd支持IPv6地址的自动配置,只需要在OpenWrt操作系统中启用IPv6,odhcpd就可以自动向所有IPv6接口分配IPv6地址。
四、odhcpd-ipv6only
odhcpd-ipv6only可以用于限制odhcpd只分配IPv6地址,并禁用IPv4地址分配。
五、odhcpd wlan0
在odhcpd配置文件中,可以指定odhcpd监听的网络接口。例如,要让odhcpd只监听wlan0接口,可以将以下代码添加到odhcpd配置文件中:
config dhcp 'lan' option interface 'wlan0' #...
六、odhcpd 拨号上网
设置odhcpd用于拨号上网的第一步是将拨号网络接口纳入odhcpd服务的控制范围。以pppoe拨号作为示例,以下是将拨号接口添加到odhcpd服务的方法:
config dhcp 'wan' option dhcpv6 'server' option ra 'server' option interface 'pppoe-wan' option dhcpv4 'server'
七、odhcpd配置wlan
以下是一个odhcpd配置文件的示例,可用于配置wlan:
config dhcp 'lan' option interface 'wlan0' option start '100' option limit '150' option leasetime '12h'
在此示例中,odhcpd配置为为wlan0接口分配IP地址,起始地址为100,最大地址为150,租约时间为12小时。
八、odhcpd linux无法获取
如果odhcpd服务无法分配IPv4地址,则可能是由于Linux系统中的dhclient进程已经获取了该地址。在这种情况下,需要终止dhclient进程,然后重新启动odhcpd服务。以下是终止dhclient进程的命令:
killall -9 dhclient
九、odhcpd failed to send to
如果odhcpd服务无法发送DHCPv6与RA/RS消息,可能是由于IPv6防火墙阻止了odhcpd的输出。要解决此问题,请将以下代码添加到OpenWrt /etc/firewall.user文件中:
ip6tables -I INPUT 1 -p udp --dport 547 -j ACCEPT ip6tables -I INPUT 1 -p udp --dport 546 -j ACCEPT ip6tables -I OUTPUT 1 -p udp --sport 547 -j ACCEPT ip6tables -I OUTPUT 1 -p udp --sport 546 -j ACCEPT
此命令允许odhcpd服务的UDP报文流量通过IPv6防火墙。