spicahan 发表于 2012-2-10 20:54:48

chmjiong 发表于 2012-2-9 22:19 static/image/common/back.gif
已经查清楚为什么虚拟出的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 到底是什么情况。

chmjiong 发表于 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 netmask255.0.0.0

config interface lan
      option ifname   eth0.1
      option type   bridge
      option proto    static
      option ipaddr   192.168.1.1
      option netmask255.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究竟是怎么回事

spicahan 发表于 2012-2-10 23:02:27

chmjiong 发表于 2012-2-10 22:50 static/image/common/back.gif
但是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.

spicahan 发表于 2012-2-10 23:14:09

chmjiong 发表于 2012-2-10 22:50 static/image/common/back.gif
但是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

chmjiong 发表于 2012-2-10 23:19:27

请教:4、4t、4u、4u*之间都有点什么区别?这个配置的毛病是,lan正常,wan不能工作,一定要把wan的vid改成2才能连上上级路由,把dhcp改成pppoe就能接光猫上网,但是这样的话,itv是不能连接的

spicahan 发表于 2012-2-10 23:46:03

chmjiong 发表于 2012-2-10 23:19 static/image/common/back.gif
请教: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?

如果是的话,明天我写个完整的配置给你,你可以再试试看。

chmjiong 发表于 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版一切照旧,和正式版一个样子

spicahan 发表于 2012-2-11 15:34:39

chmjiong 发表于 2012-2-11 13:39 static/image/common/back.gif
端口没有问题了,今天继续试验那个虚拟的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
把结果贴上来看看。

chmjiong 发表于 2012-2-11 20:47:17

无论何种vlan配置,都是下面这个结果:
/root$ swconfig dev ar8216 show
Failed to connect to the switch
我甚至怀疑交换机不是8216,拆开验证确属8216无疑,顺便给CPU和交换机贴了散热片
按照您的这个配置,lan挂了{:soso_e109:}

tywg001 发表于 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
这样写对吗?
页: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18
查看完整版本: 关于用软件VLAN处理IPTV的方法