找回密码
 注册

QQ登录

只需一步,快速开始

楼主: spicahan

关于用软件VLAN处理IPTV的方法

[复制链接]
 楼主| 发表于 2012-2-10 20:54:48 | 显示全部楼层
chmjiong 发表于 2012-2-9 22:19
已经查清楚为什么虚拟出的wan失效了,原来是openwrt的驱动只支持16个vlan,哪怕是truke版也没用,把wan的vl ...

是这样的,不同芯片的交换机,有自己的vlan驱动。比如broadcom的5325e和53115是在 /proc 下弄出接口来配置的。G300NH用的是Realtek的芯片,配置VLAN的时候用的是一个专门的程序,名字我忘记了。。。
但是不管是用的什么芯片,从外面来看,配置的方法都是一样的,就是改 /etc/config/network.
OpenWrt 的 UCI 自己会选择合适的方式去配置交换机芯片的。ar8216底层的VLAN驱动是什么我不清楚,不过我估计和G300NH用的Rtl8366大概是一个类型的。
G300NH/RTL8366 默认的时候只支持16个VLAN, 需要在/etc/config/network里写上 option enable_vlan4k 1 才能打开全部vlan.
你可以找找ar8216是不是也有类似的option.

最后,PVID这个 option 我记得是完全不需要的。详细文档可以看
wiki。openwrt。org / doc / uci / network / switch

等我有空的时候我会看一下 trunk 里的代码,看看 ar8216 到底是什么情况。
发表于 2012-2-10 22:50:29 | 显示全部楼层
本帖最后由 chmjiong 于 2012-2-10 22:53 编辑

但是8216的源代码里没有option enable_vlan4k 1
现在那个不能工作的network如下:
config interface loopback
        option ifname   lo
        option proto    static
        option ipaddr   127.0.0.1
        option netmask  255.0.0.0

config interface lan
        option ifname   eth0.1
        option type     bridge
        option proto    static
        option ipaddr   192.168.1.1
        option netmask  255.255.255.0

config interface wan
        option ifname   eth0.81
        option proto    dhcp
      
config switch
        option name     eth0
        option reset    1
        option enable_vlan 1
        

config switch_vlan vlan_lan
        option device   eth0
        option vlan     1
        option ports    '2 3 0t'

config switch_vlan vlan_iptvm
        option device   eth0
        option vlan     51
        option ports    '1t 4'

config switch_vlan vlan_iptvu
        option device   eth0
        option vlan     85
        option ports    '1t 4'

config switch_vlan vlan_wan
        option device   eth0
        option vlan     81
        option ports    '0t 1'
所以我非常困惑,源代码里那些128个vid究竟是怎么回事

点评

对了,我终于想起来 atheos 用什么命令改 vlan 了。。。 在我的 G300NH 上,可以用这个命令来看 vlan 的详细配置: swconfig dev rtl8366rb show 在你这里,我估计大概是用 swconfig dev ar8216 show 如果能  详情 回复 发表于 2012-2-10 23:14
config switch_vlan vlan_iptvu4 X9 a) I3 m s' n9 {, Y option device eth0 option vlan 85 option ports '1t 4' 最后一行,改成 option ports '1t 4u*' 我看了一下  详情 回复 发表于 2012-2-10 23:02
 楼主| 发表于 2012-2-10 23:02:27 | 显示全部楼层
chmjiong 发表于 2012-2-10 22:50
但是8216的源代码里没有option enable_vlan4k 1
现在那个不能工作的network如下:
config interface loop ...


config switch_vlan vlan_iptvu
        option device   eth0
        option vlan     85
        option ports    '1t 4'

最后一行,改成 option ports '1t 4u*'
我看了一下我自己之前写的配置,85那里居然没有星号。。可能是运气好,正好rtl8366的驱动把85作为了那个端口上的PVID.
 楼主| 发表于 2012-2-10 23:14:09 | 显示全部楼层
chmjiong 发表于 2012-2-10 22:50
但是8216的源代码里没有option enable_vlan4k 1
现在那个不能工作的network如下:
config interface loop ...

对了,我终于想起来 atheos 用什么命令改 vlan 了。。。
在我的 G300NH 上,可以用这个命令来看 vlan 的详细配置:
swconfig dev rtl8366rb show

在你这里,我估计大概是用
swconfig dev ar8216 show
如果能工作的话,你把结果都贴上来我看看

另外,swconfig的文档:
wiki。openwrt。org / doc / techref / swconfig
发表于 2012-2-10 23:19:27 | 显示全部楼层
请教:4、4t、4u、4u*之间都有点什么区别?这个配置的毛病是,lan正常,wan不能工作,一定要把wan的vid改成2才能连上上级路由,把dhcp改成pppoe就能接光猫上网,但是这样的话,itv是不能连接的

点评

4 和 4u 的意思是一样的,都是说从这个端口发出去的数据包是不带VLAN标签的,所谓的Untagged 4t 的意思就是说从这个端口发出去的数据是带VLAN标签的,所谓的Tagged 4u* (理论上和4*是一个意思,不过我一般写成u*)  详情 回复 发表于 2012-2-10 23:46
 楼主| 发表于 2012-2-10 23:46:03 | 显示全部楼层
chmjiong 发表于 2012-2-10 23:19
请教:4、4t、4u、4u*之间都有点什么区别?这个配置的毛病是,lan正常,wan不能工作,一定要把wan的vid改成 ...

4 和 4u 的意思是一样的,都是说从这个端口发出去的数据包是不带VLAN标签的,所谓的Untagged
4t 的意思就是说从这个端口发出去的数据是带VLAN标签的,所谓的Tagged
4u* (理论上和4*是一个意思,不过我一般写成u*)的意思除了有4u的意思之外,还说了从这个端口上收到的数据包,如果是untagged, 那么将把它当成端口的PVID所在的VLAN来处理。在这里,PVID是85, 因为option vlan 是 85

4t* 也是可以的,意思你自己就可以推出来了吧。

我不理解你说的接上级路由是什么意思。我现在看出来了,这个无线路由器的VLAN功能是全的。正确的用法就是把 LAN 口中的一个当 WAN 口来用,然后接光猫。WAN 配成 PPPoE.

config switch_vlan vlan_wan
        option device   eth0
        option vlan     81
        option ports    '0t 1''

最后一行改成 option ports '0t 1u*'.
如果我没理解错的话,你这里端口
0 是 CPU 口
1 是 WAN
2, 3 是 LAN
4 是 IPTV?

如果是的话,明天我写个完整的配置给你,你可以再试试看。
发表于 2012-2-11 13:39:27 | 显示全部楼层
本帖最后由 chmjiong 于 2012-2-11 14:17 编辑

端口没有问题了,今天继续试验那个虚拟的wan,
config switch_vlan vlan_wan
        option device   eth0
        option vlan     2
        option ports    "0t 1*"
wan不通,表现为只有发送没有接受,去掉那个*以后就拿到ip
再进一步试验
        option vlan    81
        option ports    "0t 1"
也不通,如果把81改成11,又通了

更进一步,把lan改成81,wan改成82,lan挂掉,只能重刷
目前刷的是10.03正式版,等下刷trunk版再试试看

默认的network是这样的:config 'interface' 'loopback'
        option 'ifname' 'lo'
        option 'proto' 'static'
        option 'ipaddr' '127.0.0.1'
        option 'netmask' '255.0.0.0'

config 'interface' 'lan'
        option 'ifname' 'eth0'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'ipaddr' '192.168.1.1'
        option 'netmask' '255.255.255.0'

config 'interface' 'wan'
        option 'ifname' 'eth1'
        option 'proto' 'dhcp'

config 'switch'
        option 'name' 'eth0'
        option 'reset' '1'
        option 'enable_vlan' '1'

config 'switch_vlan'
        option 'device' 'eth0'
        option 'vlan' '1'
        option 'ports' '0 1 2 3 4'

在web里面看,1234对应4个端口,5关闭,0是cpu


trunk版一切照旧,和正式版一个样子

点评

完整的配置文件应该是这样的: config 'interface' 'loopback'         option 'ifname' 'lo'         option 'proto' 'static'       &  详情 回复 发表于 2012-2-11 15:34
 楼主| 发表于 2012-2-11 15:34:39 | 显示全部楼层
chmjiong 发表于 2012-2-11 13:39
端口没有问题了,今天继续试验那个虚拟的wan,
config switch_vlan vlan_wan
        option device   et ...

完整的配置文件应该是这样的:

config 'interface' 'loopback'
        option 'ifname' 'lo'
        option 'proto' 'static'
        option 'ipaddr' '127.0.0.1'
        option 'netmask' '255.0.0.0'

config 'interface' 'lan'
        option 'ifname' 'eth0.1'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'ipaddr' '192.168.1.1'
        option 'netmask' '255.255.255.0'

config 'interface' 'wan'
        option 'ifname' 'eth0.81'
        option 'proto' 'pppoe'
        option 'username'
        option 'password'

config 'switch'
        option 'name' 'eth0'
        option 'reset' '1'
        option 'enable_vlan' '1'

config 'switch_vlan_lan'
        option 'device' 'eth0'
        option 'vlan' '1'
        option 'ports' '0t 2 3'

config 'switch_vlan_iptvm'
        option 'device' 'eth0'
        option 'vlan' '51'
        option 'ports' '1t 4'

config 'switch_vlan_iptvu'
        option 'device' 'eth0'
        option 'vlan' '85'
        option 'ports' '1t 4u*'

config 'switch_vlan_wan'
        option 'device' 'eth0'
        option 'vlan' '81'
        option 'ports' '0t 1u*'

起来之后不管行不行,你先运行
swconfig dev ar8216 show
把结果贴上来看看。
发表于 2012-2-11 20:47:17 | 显示全部楼层
无论何种vlan配置,都是下面这个结果:
/root$ swconfig dev ar8216 show
Failed to connect to the switch
我甚至怀疑交换机不是8216,拆开验证确属8216无疑,顺便给CPU和交换机贴了散热片
按照您的这个配置,lan挂了{:soso_e109:}

点评

那你在正常起来之后,跑一下dmesg, 把结果贴一下吧。或者你试试 swconfig dev eth0 show  详情 回复 发表于 2012-2-11 23:31
发表于 2012-2-11 21:19:15 | 显示全部楼层
不好意思,openwrt的端口映射怎么操作?我怎么做都不对,是写在firewall.user里
### Forward uTorrent GUI
iptables -I INPUT -p tcp --dport 800 -j ACCEPT
iptables -A INPUT -d 192.168.1.90 -p tcp -m tcp --dport 800 -i ppp0 -j ACCEPT
这样写对吗?

点评

我一般直接改 /etc/config/firewall 这个文件,比 iptables 直观一点。 IPTABLES我玩得也不是特别好。。你这个需求,似乎应该这样写: iptables -I INPUT -p tcp --dport 800 -j ACCEPT iptables -A PREROUTING  详情 回复 发表于 2012-2-11 23:48
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|宽带技术网 |网站地图

粤公网安备 44152102000001号

GMT+8, 2024-4-27 14:00 , Processed in 0.027762 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表