am335x using brctl iptables dhcpcd make multi wan & multi lan network(十五)
构建多LAN口多WAN口动态网络
【目的】
在AM335X定制动态网络功能,如下所示,在系统当中有两个以太网口,有4G模块,有wifi芯片8188eu支持AP+STA功能。

【实验环境】
1、 Ubuntu 16.04发行版
2、 MC183平台
3、 交叉编译器arm-linux-gnueabihf-gcc-4.7.3
【步骤】
如下案例,eth0,wlan0为LAN口,eth1,wlan1,eth2(4G)为WAN口
- 本地局域网的构建
可以通过brctl,创建虚拟网卡,将网口及WIFI进行绑定。
ifconfig eth0 down
ifconfig eth0 up
brctl addbr br-lan
brctl addif br-lan wan0
brctl addif br-lan eth0
ifconfig br-lan 192.168.188.1 up
既然是局域网,那么需要要提供dhcp功能,本文可以通过dnsmasq
其中dnsmasq的配置如下所示:
root@am335x:~# cat /etc/dnsmasq-tmp.conf
interface=br-lan
listen-address=192.168.188.1,127.0.0.1
domain=am335x.iotx.cn
dhcp-range=192.168.188.100,192.168.188.200,12h
启动dhcp服务:
dnsmasq –C /etc/dnsmasq-tmp.conf
启动WIFI AP时,也需要指定bridge,这样的话,WIFI也能提供DHCP功能:
启动ap服务:
hostapd /etc/rtc_hostapd_2G-tmp.conf –B &
配置参考如下:
root@am335x:~# cat /etc/rtl_hostapd_2G-tmp.conf ctrl_interface=/var/run/hostapd
eap_server=1
wps_state=2
uuid=12345678-9abc-def0-1234-56789abcdef0
device_name=RTL8192CU
manufacturer=Realtek
model_name=RTW_SOFTAP
model_number=WLAN_CU
serial_number=12345
device_type=6-0050F204-1
os_version=01020300
config_methods=label display push_button keypad
beacon_int=100
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
max_num_sta=8
wpa_group_rekey=86400
interface=wlan0
bridge=br-lan
ssid=test_12345678
channel=8
driver=rtl871xdrv
hw_mode=g
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_passphrase=abcdefgh

- 本地WAN的构建
针对eth1当成WAN口:
dhcpcd –m 1 –t 0 eth1 &
查看结果如下,可以正常获取IP:
查看ROUTE表,看METRIC值是否生效:

针对WLAN1当成WAN口:
比如连接热点:testWAN 密码为123456789
wpa_passphrase “testWAN” “12345678” > /etc/wpa_supplicant-tmp.conf
ifconfig wlan1down
ifconfig wlan1 up
wpa_supplicant –iwlan1 –c /etc/wpa_supplicant-tmp.conf -B
dhcpcd –m 2 –t 0 wlan1 &
查看结果如下,可以正常获取IP:
查看ROUTE表,看METRIC值是否生效:

针对EC20当成WAN的配置:
由于厂家提供了完整的上层应用的软件包,用于自动的拨号,获取IP功能,故只需要修该其内部DHCP功能,本人采用system(”dhcpcd –m 3 –t 0 eth2”)替代:

至此开发板优先以太网上网,WIFI次之,最后是4G。
3 但是还存在一个问题,就是通过eth0,及ap接入板子,获取到的192.168.188网段的设备还是上不了网:
1) ip_forward转发功能没有开启,导致br-lan的数据无法从WAN出去。
echo "1" > /proc/sys/net/ipv4/ip_forward
2) 转发功能开启之后,接入该网络的设备发现还是上不了网,为什么呢?熟悉iptabes的朋友应该会对如下所示的图很熟悉,所有的数据最终都是通过postrouting出去的,显然在之前所有的配置里面,我们还是没有针对这方面的配置,通过如下指令可以实现。
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE


学习iptable可以在网上搜索朱双印博客
4 总结如下:
通过brctl,dnsmasq构建本地局域网并提供dhcp功能。
通过dhcpcd 获取wan口的IP,更新默认路由表,并指定其metric值
通过iptables配合route表配置,实现上网的优先级。
其他的相关工具移植,使用与验证可参考如下链接:
8188EU 在AM335X MC183上以AP+STA工作
https://www.cnblogs.com/lianghong881018/p/9582401.html
am335x system upgrade rootfs for bridge-utils cross compile (十四)
https://www.cnblogs.com/lianghong881018/p/10129695.html
am335x system upgrade rootfs for dhcpcd cross compile(十三)
https://www.cnblogs.com/lianghong881018/p/10129682.html
am335x using brctl iptables dhcpcd make multi wan & multi lan network(十五)的更多相关文章
- 网络小白之WAN与LAN的区别
剑指Offer--网络小白之WAN与LAN的区别 基本作用 wan接口是外网接口,是用来连接互联网或局域网等外部网络的. lan接口是内网接口,是用来连接计算机终端或其他路由器等终端设备的. 举例 w ...
- centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课
centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...
- Deep Learning 28:读论文“Multi Column Deep Neural Network for Traffic Sign Classification”-------MCDNN 简单理解
读这篇论文“ Multi Column Deep Neural Network for Traffic Sign Classification”是为了更加理解,论文“Multi-column Deep ...
- How to set an Apache Kafka multi node – multi broker cluster【z】
Set a multi node Apache ZooKeeper cluster On every node of the cluster add the following lines to th ...
- 【操作系统之十五】iptables黑白名单、自定义链、网络防火墙、常用动作
1.黑白名单当链的默认策略为ACCEPT时,链中的规则对应的动作应该为DROP或者REJECT,表示只有匹配到规则的报文才会被拒绝,没有被规则匹配到的报文都会被默认接受,这就是"黑名单&qu ...
- iptables详解(2):四表五链
关于iptables中“四表五链”,我们今天来好好唠唠: 1.表的概念: 我们把具有相同功能的规则的集合叫做"表",所以说,不同功能的规则,我们可以放置在不同的表中进行管理,而ip ...
- python multi process multi thread
muti thread: python threading: https://docs.python.org/2/library/threading.html#thread-objects https ...
- OpenWrt防火墙配置(极路由)
说明: 1.极路由使用的是OpenWrt做为操作系统,本身就是一个Linux,包管理使用opkg,只是改了一个界面而已. 2.Linux下的防火墙最终都会归iptables进行管理,OpenWrt的防 ...
- iptables rule
和H3C中的acl很像,或者就是一会事,这就是不知道底层的缺陷,形式一变,所有的积累都浮云了 参考准确的说copy from http://www.ibm.com/developerworks/cn/ ...
随机推荐
- ITIL《信息技术基础架构库》
一 概述 1. ITIL 自上世纪70年代开始,个人计算机以及计算机网络开始在欧美发达国家普及.随着时间的推移,信息系统的规模越来越大,人们对信息系统的依赖也越来越强.特别是到了80年代,互联网开始普 ...
- C# ——Parallel类
一.Parallel类 Parallel类提供了数据和任务的并行性: 二.Paraller.For() Paraller.For()方法类似于C#的for循环语句,也是多次执行一个任务.使用Paral ...
- java之hibernate之helloworld
这篇文章,会一步一步的演示hibernate的使用. 目录结构如下: 1.新建java项目 2.增加一个lib文件夹,并把 hibernate必须的jar包 和 数据库驱动包 一起复制进去 然后把hi ...
- CarbonCopyCloner 硬盘对拷
CarbonCopyCloner 硬盘对拷 建议使用 5.1.14-b1以上的版本. 安装文件包 CarbonCopyCloner-5.1.14-b1.dmg ================== E ...
- LifeGame
LifeGame 用例说明&用例图 用例名: 设置细胞颜色 说明 用户可以根据自己的喜好来设置细胞的颜色 主事件流 在菜单出点击需要的颜色游戏检测到菜单的返回的颜色更改细胞的颜色,最后显示出来 ...
- 蓝牙 BLE 三种 UUID 格式转换
蓝牙广播中对服务 UUID 格式定义都有三种 16 bit UUID.32 bit UUID.128 bit UUID. 但是熟悉安卓开发的小伙伴都知道接口都 UUID 格式,fromString 时 ...
- Kconfig和Makefile
内核源码树的目录下都有Kconfig和Makefile.在内核配置make menuconfig时,从Kconfig中读出菜单,用户勾选后保存到.config中.在内核编译时,Makefile调用这个 ...
- vue-element-admin 前端框架 使用感触
感触: 不搜不知道,一搜吓一跳!经常百度很重要. 美国有gitgub:https://github.com/search?q=vue-element-admin 中国有码云:https://gitee ...
- 时间模块time和datetime的使用
日期和时间 一 time模块 import time 时间的表示形式: 时间戳 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现 ...
- VLAN实验3:理解Hybrid接口的应用
实验环境 实验拓扑图 实验编址 实验步骤1.基本配置按照实验编址为PC配置IP地址,以PC5为例 在PC5与PC1通过ping命令测试,发现通讯正常.(以此为例,其他的我就不一一截图测试了.) 在S1 ...