• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

WNR3500L+TOMATO网络结构分析

网络通信/流媒体 弦苦 3067次浏览 0个评论

WNR3500L+TOMATO网络结构分析

前几个月入手了一个官翻的WNR3500L,此路由号称开源并对第三方固件支持是很吸引我的地方,开始先是刷了DD-WRT后来又换成TOMATO,在换成TOMATO后通过ssh连接到路由,ifconfig显示出了一大堆interface,除了熟悉的eth0,eht1,br0外,还多出vlan0,vlan1之类的,通过运行brctl show br0后,发现是把vlan0和eth1绑成br0的。这让我对其网络结构十分感兴趣。搜索了大量资料后,有了下面的心得:

首先 WNR3500L使用了BCM4718+BCM53115的组合方案,对比前一篇对RB450G的分析,参考下面的图片,可以看出BCM4718只有一个RGMII(Reduced Gigabit MII)通道,所以只能通过单一的端口来连接BCM53115(虽然BCM53115是支持双RGMII的,见下图)。

WNR3500L+TOMATO网络结构分析

WNR3500L+TOMATO网络结构分析

这个RGMII端口,在系统看来就是所谓的eth0。而另外一个无线ap部分,在系统看来就是eth1,所以eth0,eth1是两个“硬”interface,有实际物理线路对应,连接到cpu硬件上的有且只有这两个端口。其它inteface都是衍生于这两个“硬”interface上的“虚”interface。

既然br0是由vlan0和eth1组成的,那么就放在最后说,先看两个vlan是怎么回事。首先要说明的是BCM53115这个switch chip是具备划分vlan能力的,这也是它能被用在这个解决方案中的基本条件。先从它说起。在BCM53115中,如上面看共有7个GMAC和5个GPHY,5组GMAC+GPHY的组合就实际对应着5个物理端口,而另外两个GMAC中一个没用,另外一个通过RGMII和BCM4718上的 RGMII直接连接形成网络通道。所以从逻辑视图上看这里可以等同于一个6 ports的switch,其中port5和BCM4718的eth0相联,其它port0-4是物理端口。在划分vlan的时候,port0+port5被划分成了vlan1,port1-4+port5被划分成了vlan0。6个port分成两组,其中port5就是连接cpu那个是被共用的,从vlan角度可以视之为一个TRUNK端口(请自行搜索相关概念,这里只需要知道两个vlan都可以从它经过就是了)。其中vlan0对应着4个LAN,vlan1对应着单独的WAN

BCM53115那边划分好 VLAN后,系统这边需要有对应的interface,因为tomato是基于linux的,那一般使用vconfig add eth0 x的方式来创建应用的interface,其中x就是vlan id。这里tomato在eth0的基础上创建了vlan0和vlan1两个interface,分别对应switch中划分的vlan0,vlan1。 然后回到eth1,因为无线ap可以视之为一个无线switch,那么需要wired lan和wireless lan处在同一个lan下,所以这里使用了桥接,用brctl创建了br0,然后把eth1(无线设备组)和vlan0(有线设备组)加了进去。最后对于系统来说,只要给vlan1和br0分配ip并采取路由规则就好了。因为有线lan内机器间数据交换是在vlan0中进行的,无线lan内数据交换是在 ap中进行的,有线和无线lan内数据交换是在br0中进行的。当然,如果是用pppoe拨号的话,实际提供网络的接口是ppp0,相当于直接使用时 vlan1的作用。

可以参照下面这图(虽然是针对wrt54g的,但同样适用于3500L)理解上面那段话:

 WNR3500L+TOMATO网络结构分析

如果还是看着乱的话,逻辑视图可以参考下面:

WNR3500L+TOMATO网络结构分析

可以从图中发现没有eth0的存在。因为eth0这个interface本身并没有被使用,系统直接使用的是在它的基础上衍生出的vlan0,vlan1,ifconfig可以发现eth0根本没有分配ip。当然vlan0和eth1也是通过组合成br0的形式被使用的,我们在路由器中分配的lan ip实际上就是分配给br0的。如果是pppoe拨号的话,使用的interface是vlan1,这时vlan1也处于和eth0同样的境地,因为此时系统使用来连接网络的是拨号成功时生成的ppp0。ppp0本身使用着ISP提供的公网IP。

默认的方案是把四个lan口绑在一个vlan里了,其实完全可以设置switch的参数来划分更多的vlan,形成多wan口路由来连接不同的子网或是多拨什么的,总共5个口最多可以配成4wan+1lan。当然这是理论上的,具体情况要看路由器固件的支持程度了。配置switch的办法各个固件都不一 样,可以搜索一下。

之前一直认为做路由用的话机器上至少需要2个端口,但从分析3500L来看,单端口的linux机器,配合一个带vlan的交换机,也是同样能具备路由功能。

 

参考:

LinksysWRT54G 老去的传说

博通BCM4718 802.11n路由方案


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明WNR3500L+TOMATO网络结构分析
喜欢 (0)

您必须 登录 才能发表评论!

加载中……