Android网关协议

版权声明:本文为博主原创文章,欢迎转载,转载请注明转载地址 https://blog.csdn.net/u012839187/article/details/82586004

netstate -rn以及route -n 显示的route协议都是优先级相对低的协议。容易造成误导

实际上的网关协议是要通过ip命令查询的。

如果发现route命令下的网关协议是正确的。但是确无法正常的把数据包发出去或者接收。你就需要通过ip命令去确认协议是否正确。

'ip命令':
        ip rule list                                    [显示所有的路由表,并且从上往下按优先级高到低排序]

        0:  from all lookup local
        10000:  from all fwmark 0xc0000/0xd0000 lookup legacy_system
        13000:  from all fwmark 0x10063/0x1ffff lookup local_network
        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
        23000:  from all fwmark 0x0/0xffff uidrange 0-0 lookup main
        32000:  from all unreachable

'linux可以自定义从1-252个路由表''linux系统维护了4个路由表':
        0#表 系统保留表
        253#表 defulte table 没特别指定的默认路由都放在改表
        254#表 main table 没指明路由表的所有路由放在该表
        255#表 locale table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改

'路由表的查看可有以下二种方法':
        ip route list table table_number
        ip route list table table_name

'路由表序号和表名的对应关系在/data/misc/rt_tables中,可手动编辑':
        ip route add default via 192.168.1.1 table 1 在一号表中添加默认路由为192.168.1.1
        ip route add 192.168.0.0/24 via 192.168.1.2 table 1 在一号表中添加一条到192.168.0.0网段的路由为192.168.1.2
        注:各路由表中应当指明默认路由,尽量不回查路由表.路由添加完毕,即可在路由规则中应用..

'路由规则的添加':
        进行路由时,根据路由规则来进行匹配,按优先级(pref)从低到高匹配,直到找到合适的规则.所以在应用中配置默认路由是必要的..
        ip rule show 显示路由规则
        路由规则的添加
        ip rule add from 192.168.1.10/32 table 1 pref 100
        如果pref值不指定,则将在已有规则最小序号前插入
        注:创建完路由规则若需立即生效须执行#ip route flush cache;刷新路由缓冲
            可参数解析如下:
                From -- 源地址
                To -- 目的地址(这里是选择规则时使用,查找路由表时也使用)
                Tos -- IP包头的TOS(type of sevice)域Linux高级路由-
                Dev -- 物理接口
                Fwmark -- iptables标签
                采取的动作除了指定路由表外,还可以指定下面的动作:
                Table 指明所使用的表
                Nat 透明网关
                Prohibit 丢弃该包,并发送 COMM.ADM.PROHIITED的ICMP信息
                Reject 单纯丢弃该包
                Unreachable丢弃该包, 并发送 NET UNREACHABLE的ICMP信息
                具体格式如下:更强大,使用更灵活,它使网络管理员不仅能
                Usage: ip rule [ list | add | del ] SELECTOR ACTION
                SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ]
                ACTION := [ table TABLE_ID ] [ nat ADDRESS ][ prohibit | reject | unreachable ]
                          [ flowid CLASSID ]
                TABLE_ID := [ local | main | default | new | NUMBER ]

https://my.oschina.net/u/1397402/blog/736806
https://blog.csdn.net/kangear/article/details/80547073
https://blog.csdn.net/mergerly/article/details/28918081

我们在双网卡上使用的方案如下
        PREF=`ip rule list | busybox head -n 2 | busybox tail -n 1 | busybox awk '{print $1}' | busybox sed 's/://g'`
        let PREF--
        ip rule add from all table 1 pref ${PREF}
        ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0 table 1

        via应该就是from + to

猜你喜欢

转载自blog.csdn.net/u012839187/article/details/82586004
今日推荐