android和ubuntu策略路由的差异

ubuntu:

策略路由如下,策略路由根据优先级主要有3个表,0为优先级最大

$ ip rule
0:from all lookup local
32766:from all lookup main
32767:from all lookup default

所有的上网路由都在main表里:

通过ifconfig配置的ip地址,内核都会默认生成一条路由到main表里

$ ip route show table main
default via 10.245.1.254 dev eno1 proto dhcp metric 20100
10.245.1.0/24 dev eno1 proto kernel scope link src 10.245.1.166 metric 100

android:

1、默认只有eth0,车机上一般使用静态ip,由framework侧配置,手动无法更改eth0的ip地址

下面是ip rule的路由规则, 14000优先级的是eth0表,意思是所有走eth0接口的都匹配eth0表,表里有通过framework配置默认网关和 网段路由

hqcos:/ # ip rule
0:from all lookup local
10000:from all fwmark 0xc0000/0xd0000 lookup legacy_system
10500:from all iif lo oif dummy0 uidrange 0-0 lookup dummy0
10500:from all iif lo oif eth0 uidrange 0-0 lookup eth0
13000:from all fwmark 0x10063/0x1ffff iif lo lookup local_network
13000:from all fwmark 0x10064/0x1ffff iif lo lookup eth0
14000:from all iif lo oif dummy0 lookup dummy0
14000:from all iif lo oif eth0 lookup eth0
15000:from all fwmark 0x0/0x10000 lookup legacy_system
16000:from all fwmark 0x0/0x10000 lookup legacy_network
17000:from all fwmark 0x0/0x10000 lookup local_network
19000:from all fwmark 0x64/0x1ffff iif lo lookup eth0
22000:from all fwmark 0x0/0xffff iif lo lookup eth0
32000:from all unreachable
hqcos:/ #
hqcos:/ # ip route show table eth0 //列举eth0路由表下面的路由规则
default via 172.20.0.40 dev eth0 proto static
172.20.0.0/24 dev eth0 proto static scope link

  1. 加vlan,并且让vlan6上网

我们在这儿做的最大修改是将上网的接口由原先的eth0改成了eth0.6(也就是vlan6),所有14000优先级的规则变成了eth0.6的表(替换掉原先的eth0),这个eth0.6的表里设置默认路由和 6网段的路由

所有这时我们没有了eth0的网段路由在规则里匹配不到了,所以我们在前面单独加了一条9999优先级、路由表id为1000的路由表,1000的路由表里的路由写的是0网段的路由

hqcos:/ # ip rule
0:from all lookup local
9995:from all to 172.20.7.0/24 lookup 7
9996:from all to 172.20.6.0/24 lookup 6
9997:from all to 172.20.4.0/24 lookup 4
9998:from all to 172.20.3.0/24 lookup 3
9999:from all to 172.20.0.0/24 lookup 1000
10000:from all fwmark 0xc0000/0xd0000 lookup legacy_system
10500:from all iif lo oif dummy0 uidrange 0-0 lookup dummy0
10500:from all iif lo oif eth0.6 uidrange 0-0 lookup eth0.6
13000:from all fwmark 0x10063/0x1ffff iif lo lookup local_network
13000:from all fwmark 0x10064/0x1ffff iif lo lookup eth0.6
14000:from all iif lo oif dummy0 lookup dummy0
14000:from all iif lo oif eth0.6 lookup eth0.6
15000:from all fwmark 0x0/0x10000 lookup legacy_system
16000:from all fwmark 0x0/0x10000 lookup legacy_network
17000:from all fwmark 0x0/0x10000 lookup local_network
19000:from all fwmark 0x64/0x1ffff iif lo lookup eth0.6
22000:from all fwmark 0x0/0xffff iif lo lookup eth0.6
32000:from all unreachable

默认路由表由eth0替换为eth0.6

hqcos:/ # ip route show table eth0.6
default via 172.20.6.40 dev eth0.6 proto static
172.20.6.0/24 dev eth0.6 proto static scope link

hqcos:/ # ip route show table 7 172.20.7.0/24 dev eth0.7 proto static scope link

hqcos:/ # ip route show table 1000 172.20.0.0/24 dev eth0 proto static scope link

  1. wlan开启:

vlan路由的更改为啥不影响wifi的路由:

理由:当wifi建立的时候,我们看到14000处的eth0.6的默认路由表,改成了wifi路由表wlan0,说明现在上网只使用wifi上网,而且wifi的ip地址能匹配到ip rule的14000的wlan0路由表,故能直接上网,不用手动添加路由

hqcos:/ # ip rule
0:from all lookup local
9995:from all to 172.20.7.0/24 lookup 7
9996:from all to 172.20.6.0/24 lookup 6
9997:from all to 172.20.4.0/24 lookup 4
9998:from all to 172.20.3.0/24 lookup 3
9999:from all to 172.20.0.0/24 lookup 1000
10000:from all fwmark 0xc0000/0xd0000 lookup legacy_system
10500:from all iif lo oif dummy0 uidrange 0-0 lookup dummy0
10500:from all iif lo oif wlan0 uidrange 0-0 lookup wlan0
13000:from all fwmark 0x10063/0x1ffff iif lo lookup local_network
13000:from all fwmark 0x10065/0x1ffff iif lo lookup wlan0
14000:from all iif lo oif dummy0 lookup dummy0
14000:from all iif lo oif wlan0 lookup wlan0
15000:from all fwmark 0x0/0x10000 lookup legacy_system
16000:from all fwmark 0x0/0x10000 lookup legacy_network
17000:from all fwmark 0x0/0x10000 lookup local_network
19000:from all fwmark 0x65/0x1ffff iif lo lookup wlan0
22000:from all fwmark 0x0/0xffff iif lo lookup wlan0
32000:from all unreachable
hqcos:/ #

hqcos:/ # ip route show table wlan0
default via 10.245.4.254 dev wlan0 proto static
10.245.4.0/24 dev wlan0 proto static scope link
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值