我如何知道我的数据包发生了什么情况?

我如何知道我的数据包发生了什么情况?

我正在尝试在我的网络上启动一个小盒子。我刚刚刷新了固件,它应该会默认启动192.168.1.1。我的路由器是 DSL 调制解调器192.168.0.1;它通常使用 的网络掩码255.255.255.0,所以我无法与新盒子通信。

我通过 telnet 进入路由器,并使用ifconfig将网络掩码更改为255.255.0.0,但仍然无法 ping 192.168.1.1。(显然我现在应该使用ip,但我知道ifconfig这样做更好。)

我想也许是iptables妨碍了我,所以我尝试了这个: iptables -F; iptables -X; iptables -t nat -F; iptables -t nat -X; iptables -t mangle -F; iptables -t mangle -X; iptables -P INPUT ACCEPT; iptables -P OUTPUT ACCEPT; iptables -P FORWARD ACCEPT 果然现在我看到了:

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

对我来说这看起来不错,但当我尝试时仍然ping 192.168.1.1没有得到回复。

但如果我在跑步时这样做# tcpdump -n -i br0 -v host 192.168.1.1,我会看到以下内容:

tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 68 bytes
15:09:21.057458 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.0.1 > 192.168.1.1: ICMP echo request, id 26859, seq 1, length 64
15:09:25.036912 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.1.1 tell 192.168.0.1, length 28
15:09:25.037321 ARP, Ethernet (len 6), IPv4 (len 4), Reply 192.168.1.1 is-at 00:18:39:2c:9c:30, length 46

arp回复的 MAC 地址与我的新盒子相匹配!那么为什么我的数据包无法到达那里并返回呢?

# ip route show
205.171.X.X via 72.160.X.1 dev ppp0 
72.160.X.X dev ppp0  proto kernel  scope link  src 72.160.X.X 
205.141.X.X via 72.160.X.1 dev ppp0 
192.168.0.0/16 dev br0  proto kernel  scope link  src 192.168.0.1 
default via 72.160.X.1 dev ppp0 

我很确定这是路由器的问题,而不是目标盒的问题。会是什么问题?

答案1

@kasperd 是对的 - 目标盒子的网络掩码是255.255.255.0。我可以通过提供br0一个新的 IP 地址进行通信:

# ip addr add 192.168.1.2/24 dev br0
# ip addr show br0
8: br0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue
link/ether 10:7b:ef:92:ca:af brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global br0
inet 192.168.1.2/24 scope global br0
# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=64 time=31.187 ms

相关内容