【Router】PC连接到路由LAN,但是无法获取到IP地址问题分析及解决方案

问题描述

       PC连接到路由器LAN,正常应该可以获取到IP地址,但是查看PC端网卡信息,发现未获取到IP地址

问题分析

       使用wireshark抓取PC端网口数据报,发现只有PC的网卡发送的discover包,路由设备未回复Offer包,登录到路由设备,使用tcpdump抓取LAN物理口数据包,发现可以抓到PC的discover包,然后,再抓取br0的数据包,发现无法抓到,PC的discover包。基于以上测试,基本确定是路由设备端未回复PC。

       首先,查看路由的DHCP Server是否正常工作,确认DHCP Server正常工作。然后,确认防火墙规则是否正常。使用iptables -S查看防火墙规则,规则列表如下

/ # iptables -S
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i br0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 52881 -j REJECT --reject-with tcp-reset
-A INPUT -i lo -j ACCEPT

从以上防火墙规则可以看出,设备默认INPUT链是DROP,所以设备不会响应DHCP Discover包 ,通过分析发现,是由于系统启动过程中,防火墙规则丢失导致。默认需要增加如下规则:

iptables -A INPUT -i br0 -p tcp -m multiport --dports 22,23,53,80,443-j ACCEPT
iptables -A INPUT -i br0 -p udp -m multiport --dports 53,54,67 -j ACCEPT

解决方案

基于无法获取IP地址问题,可以通过以下方式简单修改

方法一:修改INPUT默认规则

        iptables -P INPUT ACCEPT

方法二:开放DHCP Server端口

     iptables  -I INPUT -i br0 -p udp  --dports 67 -j ACCEPT 

猜你喜欢

转载自blog.csdn.net/wgl307293845/article/details/126321498