网桥的静态 IP 设置为 10.245.245.253/30。我的 Android 设备的 IP 通过 DHCP 设置为 172.17.2.200。如果我将接口 IP 设置更改为 10.245.245.254/30,它就可以工作。
但我想要 DHCP IP 设置,但只需添加一个辅助 IP 地址,或到接口的路由,这样我就可以访问网络和访问我的桥同时。
我已经尝试过这个命令,但它仍然不起作用。
ip addr add 10.245.245.254/30 dev wlan0
这是我的配置。
130|shell@msm8916_64:/ # busybox ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop
link/ether 76:0d:fc:b7:9d:4f brd ff:ff:ff:ff:ff:ff
3: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
link/ether 00:0a:f5:80:c2:50 brd ff:ff:ff:ff:ff:ff
inet 172.17.2.245/24 brd 172.17.2.255 scope global wlan0
valid_lft forever preferred_lft forever
inet 10.245.245.254/30 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::20a:f5ff:fe80:c250/64 scope link
valid_lft forever preferred_lft forever
5: p2p0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq qlen 1000
link/ether 02:0a:f5:80:c2:50 brd ff:ff:ff:ff:ff:ff
shell@msm8916_64:/ # busybox ip route show
10.245.245.252/30 dev wlan0 src 10.245.245.254
172.17.2.0/24 dev wlan0 src 172.17.2.245 metric 304
shell@msm8916_64:/ # busybox traceroute 10.245.245.253
traceroute to 10.245.245.253 (10.245.245.253), 30 hops max, 38 byte packets
1 172.17.2.1 (172.17.2.1) 12.263 ms 2.305 ms 2.102 ms
我可以 ping 通我自己的 IP:
130|shell@msm8916_64:/ # ping 10.245.245.254
PING 10.245.245.254 (10.245.245.254) 56(84) bytes of data.
64 bytes from 10.245.245.254: icmp_seq=1 ttl=64 time=0.775 ms
64 bytes from 10.245.245.254: icmp_seq=2 ttl=64 time=0.201 ms
有任何想法吗?
编辑1:澄清大局。无线桥接器是我正在开发的设备。当您插入以太网电缆时,该设备将提供对网络的无线访问。我对那个网络一无所知。这就是我在无线网桥上禁用 DHCP 客户端的原因,因为我无法确定我连接到的网络是否有工作的 DHCP 服务器。
由于固件更新,我仍然希望为无线网桥设置 IP 地址。这就是为什么我选择与外部任何内容发生冲突的可能性很小的 IP 地址的原因。
在我的 Android 设备上,我想要一个工作互联网连接和访问我的桥在同时。这就是为什么我想添加一个静态路由。
有关我的配置的更多详细信息
shell@msm8916_64:/ $ busybox ip route get 10.245.245.253
10.245.245.253 via 172.17.2.1 dev wlan0 src 172.17.2.245
还有更多
1|shell@msm8916_64:/ $ busybox ip rule
0: from all lookup local
10000: from all fwmark 0xc0000 lookup 99
13000: from all fwmark 0x10063 lookup 97
13000: from all fwmark 0x10069 lookup 236
14000: from all lookup 236
15000: from all lookup 99
16000: from all lookup 98
17000: from all lookup 97
19000: from all fwmark 0x69 lookup 236
22000: from all lookup 236
23000: from all lookup main
32000: from all unreachable
还有更多:
shell@msm8916_64:/ # ip route list table main
10.245.245.252/30 dev wlan0 proto kernel scope link src 10.245.245.254
172.17.2.0/24 dev wlan0 proto kernel scope link src 172.17.2.245 metric 304
shell@msm8916_64:/ # ip route list table local
broadcast 10.245.245.252 dev wlan0 proto kernel scope link src 10.245.245.254
local 10.245.245.254 dev wlan0 proto kernel scope host src 10.245.245.254
broadcast 10.245.245.255 dev wlan0 proto kernel scope link src 10.245.245.254
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 172.17.2.0 dev wlan0 proto kernel scope link src 172.17.2.245
local 172.17.2.245 dev wlan0 proto kernel scope host src 172.17.2.245
broadcast 172.17.2.255 dev wlan0 proto kernel scope link src 172.17.2.245
1|shell@msm8916_64:/ # iptables -t main -n -L
iptables v1.4.20: can't initialize iptables table `main': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
答案1
那里有一个相当复杂的路由设置,有四个额外的路由表和防火墙设置的标记的额外路由规则。这几乎肯定是问题所在。因此,查看exta表(ip route list table 99
等),查看防火墙规则(iptables -t table_name -n -L
针对所有table_name
),然后弄清楚发生了什么。
编辑
路由表和防火墙表 ( iptables
) 完全不同,因此iptables -t main -n -L
没有意义,因为main
它是路由表,而不是防火墙表。
请使用 等的输出编辑问题ip route list table 97
,ip route list table 98
包括99
和236
。还具有 等的输出iptables -t filter -n -L
,iptables -t nat -n -L
包括mangle
,raw
以及规则中可能提到的任何其他表。如果输出太长,请将所有内容放入粘贴箱并链接到它。
iptables
如果您想阅读,网上有很多关于策略路由的教程。但即使我们弄清楚是什么阻止了第二个地址成为源地址,更困难的任务是弄清楚为什么所有这些规则都在那里,制定这些规则的人想要实现什么,以及我们如何更改规则以使第二个地址正常工作而不破坏其他东西。
因此,如果您对“因为某种防火墙规则阻止它”的答案感到满意,我们也可以就此保留。 :-)