首先我这期确实没什么技术含量,其次,我觉得的没技术含量不意味着你们能听懂。
先看看我前几个月的文章中对vlan的解释:
首先你的路由器固件需要时openwrt,支持交换机vlan模式,如图
好的,接下来配置vlan交换机
我这边选择lan1与lan4为上网接口,选择端口是随意的,重点是学习原理
前面我们提到我将lan1与lan4设计为上网口,接下来将详细解释配置规则
1、如果这个lan口是用于上网的,那么他不应该跟lan口其他的接口关联,所以应当关闭其他vlan与这个接口的绑定关系。
lan1在vlan1中描述为关,即lan1与vlan1无关系(设计层面,不考虑物理层面哈)。
lan1在vlan2中描述为untagged,该描述表示不对这个lan口进行打上标签,即该接口接收与发出的数据不应该具有标签,配置时一定不要选择其他选项就是了。
lan1在vlan3中描述为关,即lan1与vlan3无关系(设计层面,不考虑物理层面哈)。
接下来是lan2与lan3
由于lan2与lan3是lan口,他们不参与上网的配置,所以他们仅绑定vlan1,这2个接口不参与上网所以在vlan2与vlan3中的配置应该是关。
lan4与lan1的原理相同,注意规划就行了,不要规划错。
总结一下,当一个接口需要与其他接口隔离时,使用vlan是最方便的方式之一,其原理就是通过给其内部划分不同的vlan实现隔离,但因接收与发出的数据不带vlan所以不对其他的设备产生影响,重点在于,接收与发出不打上标签,其分离的vlan标签仅在cpu也就是内部运行。每一个独立的区域都应该是一个单独的vlan,当然所有的lan口算一个区域,每一个虚拟的上网口算一个区域,于是,本篇一个具备3个vlan属性。
在以上的文字中,我们应清楚明白vlan到底是怎么实现的。
对于vlan1来说,由于vlan1处于缺省状态,即它似乎可以被认为没有vlan标签,所有的网络设备都可以接收该vlan发出的数据,但它确实是具备vlan作用的,何况在发出时仍然会去掉vlan标签。
对于vlan2来说,在它从光猫接收数据时是不带vlan的,在进入phy(可认为是底层的芯片)阶段会被打上vlan标签,然后根据规划进行处理。最后由于在lan1口上面是不带vlan的,发出数据时仍然不会打上标签,所以vlan2只在路由器内部才存在,在lan口与wan口之间是不存在的。当你要接收一个已有vlan标签,且发出时仍携带标签的数据时,应将lan1勾选为tagged状态。
由于我写完那篇wman3的文章后就没有使用那台路由器的,所以我没法给你们呈现截图,将就一下吧。
那么如果你的光猫是透传的话,在接收与发送时就必须要携带相应的业务vlan标签才对。
我寻思到我这篇文章貌似还没写完,趁到今天测试路由器顺便再写一下。
前面说到了vlan的划分,上面大部分都是基于untag模式的,即接收与发送均不携带vlan的标签,只在交换机内部打上标签用于区分流量。
那么接下来就是tag模式,即发送与接受均携带标签,先看看吧
在前面我说过任何vlan都应绑定cpu即交换机的phy(虽然我也不知道是不是phy),那么在配置tag时除了绑定cpu外,还需要按需对lan口进行绑定,模式选tag就行,意思就是发出数据时我可以发送vlan1 vlan2 vlan3的数据,在接收时也接收来自vlan1,2,3的数据。注意,此处的tag并不是路由交换中的trunk,还是有点不一样,看看trunk的描述
在路由交换中会存在一个缺省vlan的情况,但是在家用的vlan中并不存在(或许可以认为缺省vlan就是各个vlan在cpu中的选择项吧),家用中只有untag(不携带标签)与tag(携带标签),然后br-lan也就是正常路由器的lan口就是vlan1,除此以外的端口都是只能发送给对应标签的接口。
回到最开始的问题,到底该怎么理解上面的配置,
lan1在vlan1中为关,就意味着lan1跟vlan1没关系了,lan1在vlan2中描述为untag,就意味着lan1可以接收来着vlan2的数据,但是从网口发出与在网口接收时,都不会携带或不允许携带vlan2的标签。
理解这句话,我来举例子吧。
你们可以不太懂中间件,所以我换一个说法吧。
vlan1 vlan2 vlan3都是独立的,这个都懂。lan1呢它只让vlan2的数据通过它到对面。但是它会改写,当他收到来自vlan2的数据时,它会先剥离标签,让他变成无标签的数据,然后再把数据从lan1口发出。当它在收到数据时lan1并不会接收有vlan的数据,因为vlan2是untag。但是当vlan2把数据发给cpu时,由于vlan2在cpu中描述为tag,于是lan1在将数据发给cpu时会携带vlan2的标签。这样说应该简单一点点(吧)。
lan2与lan3就不解释了,接下来看看lan4
注意到在lan4中它绑定了vlan1,2,3,且在lan4接口中配置为tag,就意味着他可以接收vlan1,2,3的数据,且数据进入到交换机内部时仍然需要携带vlan标签,例如lan4如果接收到vlan1的数据时,会将数据发给lan2与lan3,因为lan2与lan3在vlan1中描述为有关系,注意此时看的是有没有关系,而不是状态,只要你没有选“关”,那么就是有关系。有关系接下来才看的是tag还是untag。
例如vlan2进入到lan4,那么数据就会发给lan1。
最后如果lan4中你勾选了cpu,那么lan4接收的vlan1,2,3的数据后,这个数据可以被路由器内部使用,例如可以用来上网什么的。如果在cpu中选择的是关,那么vlan的数据只能发给其他相同vlan的接口。
另外,晚上有时间我也会写一下怎么实现上网与iptv的单线复用,这种方法不用交换机就可以实现,也不难。
在写教程之前,需要先了解一下单线复用的原理。
在光猫与路由器的wan口通信时可以携带来自802.11q的vlan协议中的vlan标签,即每个以太报文可以加上一个vlan标签用来转发给对应的设备,此时路由器只会把包转发给对应设备时才会去掉vlan,vlan并不会在交换机内部拆除,因为这样数据的隔离就跟没有一样的。
先看光猫
此时我的互联网是改写模式,即光猫去掉互联网的业务vlan,但这并不意味着会将缺省vlan的互联网数据发给路由器,而是对于vlan100这个业务vlan的一个标记,用于在端口绑定中使用,这样便于理解。(此处可能有歧义,认为因为是改写模式所以会将缺省vlan发给对应设备,那你应该要注意到,在上图中,我是否有勾选网口?如果没有勾选网口,那么就算拆除了vlan也是没有任何意义的)。
那么光猫还要做什么呢?
先想想原理,我们把互联网的业务vlan指向了业务模式为internet,ip模式为ipv4/ipv6,对于端口绑定来说他就知道100这个vlan来自哪的,那么iptv的业务vlan也需要这样做,当然iptv的vlan由运营商指定,需要照抄
然后就需要在端口绑定中操作,我们主要先改一下这里的lan1数据
此时我们就将100的互联网vlan与iptv的3300vlan都通过lan1传给了路由器。注意前面的vlan来自运营商,后面的vlan意思是将会不更改vlan的,将vlan数据传给路由器(意思就是接收vlan100并将vlan100从lan1口发出)
虽然我在上面对于上网于iptv选择的是改写,但是由于没有指定从那个接口出,于是他只是对于vlan与模式之间的绑定,虽然它确实去掉了vlan,不过在进入lan1又打上了vlan(大概,我猜的)。
上网vlan你填100就行,在iptv处选择iptv与路由器互联的接口,在vlan iptv处填写对应的iptv的业务vlan就完成了,此时iptv会进去cpu内部并在lan2发出数据,不过进入lan2在未发出时它仍应该具备vlan标签以用于分别数据。
最后本期是基于老毛子的,由于各个路由器的思路不同,我再总结一下。
对于光猫来说,首先,vlan应该与业务模式绑定,不然谁知道100或者3300是什么意思。
对于光猫端口绑定的角度来看,他应该接收什么光猫的vlan,应该怎么将这个数据通过什么vlan发出,这个是你需要设置的。
对于路由器来说,他需要知道那个lan口应该被用于接收iptv的数据,上网的vlan是什么?(我感觉我上面不填上网的vlan应该也行,不一定非要填100,不过我不想试,如果后期发现有影响在额外讲述吧。
路由器接收到了来自3300的vlan数据,也知道它应该用lan2发出,对于已经明确的数据,本应该结束,但是到底是在cpu内去掉,直接发给lan2对应的设备,还是应该进入lan2后再去掉发出,此处老毛子的配置不明确,但是可以注意到,右下角的那个无标签,想必是将无标签的数据发给机顶盒吧,希望openwrt不要这样做,因为这不符合家庭侧的vlan规划,或许设计时考虑走的是路由交换中的vlan吧。