公司需求,MIFI产品WIFI 2.4GHz和5GHz,需要进行分流,每个热点使用不同的APN进行拨号,使用不同的网址,实现WIFI热点的分流。
1、需要增加多路APN拨号逻辑
参考Android拨号实现即可
2、原始mobile ap 逻辑中只有一路bridge0用于桥接,因此需要增加bridge1用于桥接
QCMAP_LAN_Manager.cpp中添加新的bridge,不同wifi热点网口添加到不同bridge,
另外关注dnsmasq在不同bridge上启动
brctl show 可以使用此命令查看
3、route路由,由于有两个数据网卡,因此需要配置不同的路由信息
可以设置默认路由,另外的一路的wifi热点设置路由转发规则即可
3.1、iptables FORWARD表转发
iptables -w -t filter -A FORWARD -i bridge0 -o rmnet_data0 -p tcp -m state --state INVALID -j DROP
iptables -w -t filter -A FORWARD -i bridge1 -o rmnet_data1 -p tcp -m state --state INVALID -j DROP
3.2、iptables POSTROUTING表
iptables -w -t nat -A POSTROUTING -o rmnet_data0 -m iprange --src-range 192.168.225.1-192.168.225.255 -j MASQUERADE --random
iptables -w -t nat -A POSTROUTING -o rmnet_data1 -m iprange --src-range 192.168.163.1-192.168.163.255 -j MASQUERADE --random
3.3、添加默认路由通过rmnet_data0 (192.168.225.1-192.168.225.255使用)
route add default gw 172.255.17.217 dev rmnet_data0
3.4、添加转发规则(192.168.163.1-192.168.163.255使用)
方法1、所有192.168.163.41的数据从rmnet_data1转发,需循环添加dhcp地址范围
ip rule add from 192.168.163.41/24 table 3
ip route add table 3 via 10.170.121.98 dev rmnet_data1
方法2、 所有192.168.163地址段的数据从rmnet_data1转发,目前测试好像存在问题
ip route add table 3 via 10.170.121.98 dev rmnet_data1
iptables -w -A PREROUTING -t mangle -i bridge0 -p tcp -m iprange --src-range 192.168.163.1-192.168.163.255 -j MARK --set-mark 3
ip rule add fwmark 3 table 3
通过ip route show table 3
ip rule show 等命令查看