找回密码
 注册

QQ登录

只需一步,快速开始

楼主: spicahan

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

[复制链接]
 楼主| 发表于 2012-2-10 20:54:48 | 显示全部楼层
chmjiong 发表于 2012-2-9 22:19 3 S$ g/ T2 g9 i) e- I  V! f
已经查清楚为什么虚拟出的wan失效了,原来是openwrt的驱动只支持16个vlan,哪怕是truke版也没用,把wan的vl ...
: u; `2 c8 \: ^; ~$ c$ _8 K7 X% h5 X
是这样的,不同芯片的交换机,有自己的vlan驱动。比如broadcom的5325e和53115是在 /proc 下弄出接口来配置的。G300NH用的是Realtek的芯片,配置VLAN的时候用的是一个专门的程序,名字我忘记了。。。
( [) J1 _+ b& M0 {; O但是不管是用的什么芯片,从外面来看,配置的方法都是一样的,就是改 /etc/config/network.
5 H: B* j. k. I4 V1 rOpenWrt 的 UCI 自己会选择合适的方式去配置交换机芯片的。ar8216底层的VLAN驱动是什么我不清楚,不过我估计和G300NH用的Rtl8366大概是一个类型的。
2 I& o. X; d3 eG300NH/RTL8366 默认的时候只支持16个VLAN, 需要在/etc/config/network里写上 option enable_vlan4k 1 才能打开全部vlan.
( d) d3 s' U2 a/ u& c1 x7 q/ y* ]你可以找找ar8216是不是也有类似的option.# ]( c' D: A# ?5 g; [3 N
- b2 }5 p: p4 |5 M
最后,PVID这个 option 我记得是完全不需要的。详细文档可以看
0 p  n6 W* L% C( i8 k3 jwiki。openwrt。org / doc / uci / network / switch
# E* ~+ l- s% Y( q( e4 ^3 I$ I2 \3 M- G/ ~
等我有空的时候我会看一下 trunk 里的代码,看看 ar8216 到底是什么情况。
发表于 2012-2-10 22:50:29 | 显示全部楼层
本帖最后由 chmjiong 于 2012-2-10 22:53 编辑 * I3 }$ |! p6 s  ]
! e1 K5 p# i! \1 e& o: ^/ c1 c$ `" Q
但是8216的源代码里没有option enable_vlan4k 1- q% U0 m& r+ w  u
现在那个不能工作的network如下:9 M1 S: S/ E: f8 x, |
config interface loopback
4 O4 D8 e: x! @; o        option ifname   lo; R* X: A+ p; b  S% s2 W- B
        option proto    static
& [$ T  t2 t- c# q. \; ?9 U        option ipaddr   127.0.0.1
; }# x' D$ m- d3 @; I* }        option netmask  255.0.0.0
$ [! |1 N  d1 J- h% ~
; N% }& b& h  k( m6 A2 _4 Econfig interface lan
5 F! d2 \! K7 R) x        option ifname   eth0.1
8 w7 |( t4 Q- T- E+ E5 A0 a# N        option type     bridge! R* f- Y5 Q% r: t5 _
        option proto    static
" h$ n& T" m: I3 |3 \        option ipaddr   192.168.1.1, @) a  g" s( U% U+ K1 A  h
        option netmask  255.255.255.0# B5 h; L' `& e
8 V# T, `3 H+ v. t/ T" z* t
config interface wan# p+ h  ^( k  o* O
        option ifname   eth0.81
* M- |# T" m! A2 q# R+ b1 A        option proto    dhcp) p1 j4 f3 P( ^- J, v/ ?+ h
      
$ @- m9 s$ h& R: {3 ]- Xconfig switch
' d# W% \1 h- r) o3 O6 }        option name     eth0% Q2 d5 J+ {1 g- ~  p' [7 v7 G$ Z
        option reset    1
) @- D, O# h' n' {$ T        option enable_vlan 1' M; c( F0 t: }% ~1 {' ~
        , f; q7 P( O2 c. C/ a9 A6 b) ?+ j* a
6 W3 W" R* b; `1 {3 D! n
config switch_vlan vlan_lan% x' i" ?* T# F8 y8 x1 O0 h4 }
        option device   eth0
6 N* J4 s4 R& S1 Z        option vlan     1
0 [* D# M) Z. F        option ports    '2 3 0t'# J5 \6 M7 {* x' L# D" k) E6 {

, v: a' R* \# p) w: oconfig switch_vlan vlan_iptvm
6 N! B' W2 X6 f. w! w, Z1 E        option device   eth0+ S% j4 n0 T# i8 Q. G5 D
        option vlan     51( d3 ?$ A" C' W: H9 }
        option ports    '1t 4') k, \  B; ^) N6 D+ q1 d( {9 P$ u
! J  m& O) O2 P) v4 Q
config switch_vlan vlan_iptvu
/ V; k* A  [) r1 P; a        option device   eth0
- O3 O2 U( z  G8 J        option vlan     85" r9 j- g4 K. M2 R8 w" t
        option ports    '1t 4'
% j* ]+ `5 w# v
( I7 b. r# _/ Y  L+ m0 _* Gconfig switch_vlan vlan_wan) o5 F4 Y# v( n% ?! `% [! c
        option device   eth0
  f5 f. k2 ~( H        option vlan     81
1 y2 ^4 E7 r  C        option ports    '0t 1'4 v: G! h/ u- ^9 n* I5 N
所以我非常困惑,源代码里那些128个vid究竟是怎么回事
 楼主| 发表于 2012-2-10 23:02:27 | 显示全部楼层
chmjiong 发表于 2012-2-10 22:50
1 E# Z( [0 H7 Y' x0 ]& d& X4 g6 U但是8216的源代码里没有option enable_vlan4k 1- C6 y- u2 v, |
现在那个不能工作的network如下:
  c) N+ ~7 A1 h" \config interface loop ...

* y, {( ^) `5 e
7 c+ u4 ^) ?* F( F8 l' T  Gconfig switch_vlan vlan_iptvu
9 `; ?4 }$ H! o; r. F; m" [        option device   eth0
$ N7 E) ?) f$ _# K( Y& l# C' X7 [        option vlan     85
; \; f$ s# g$ K* ~        option ports    '1t 4'* E6 }, f8 }4 k
2 Y$ S, \: v  n# C( ~' E
最后一行,改成 option ports '1t 4u*'; G  S; P2 w# d0 R. m5 Z
我看了一下我自己之前写的配置,85那里居然没有星号。。可能是运气好,正好rtl8366的驱动把85作为了那个端口上的PVID.
 楼主| 发表于 2012-2-10 23:14:09 | 显示全部楼层
chmjiong 发表于 2012-2-10 22:50
4 Q5 n5 s8 z. `( S: ^! h- a但是8216的源代码里没有option enable_vlan4k 1! x, e) C9 `4 l* r$ v, G
现在那个不能工作的network如下:
& f. n2 D' R" a2 Qconfig interface loop ...
9 T: |, O4 R& I- y- u8 P6 n
对了,我终于想起来 atheos 用什么命令改 vlan 了。。。& Z3 {# b* S0 d2 Z" W7 q
在我的 G300NH 上,可以用这个命令来看 vlan 的详细配置:
3 R1 d( S+ ]* O1 c( zswconfig dev rtl8366rb show
1 _: E% O9 v. m/ M' A) G/ e
% k! X. d5 |: \, ]在你这里,我估计大概是用 7 Y! _4 V: A  a" c* H- Z/ V9 p; C
swconfig dev ar8216 show$ A. k  P2 K8 K* q5 l. U& _! H
如果能工作的话,你把结果都贴上来我看看) L- U; }0 S. b
5 k3 R- h& g% o* W1 A  T$ t0 f* d
另外,swconfig的文档:
- }: Y9 l9 A( C0 @1 M) e  f! Lwiki。openwrt。org / doc / techref / swconfig
发表于 2012-2-10 23:19:27 | 显示全部楼层
请教:4、4t、4u、4u*之间都有点什么区别?这个配置的毛病是,lan正常,wan不能工作,一定要把wan的vid改成2才能连上上级路由,把dhcp改成pppoe就能接光猫上网,但是这样的话,itv是不能连接的
 楼主| 发表于 2012-2-10 23:46:03 | 显示全部楼层
chmjiong 发表于 2012-2-10 23:19 8 q' A/ {5 C6 ]3 J* l: z
请教:4、4t、4u、4u*之间都有点什么区别?这个配置的毛病是,lan正常,wan不能工作,一定要把wan的vid改成 ...
( d! t8 }* \, R: X7 u
4 和 4u 的意思是一样的,都是说从这个端口发出去的数据包是不带VLAN标签的,所谓的Untagged
! @( d. q/ ?. X) B& V+ T4t 的意思就是说从这个端口发出去的数据是带VLAN标签的,所谓的Tagged3 N) j# P: D7 D( a% T
4u* (理论上和4*是一个意思,不过我一般写成u*)的意思除了有4u的意思之外,还说了从这个端口上收到的数据包,如果是untagged, 那么将把它当成端口的PVID所在的VLAN来处理。在这里,PVID是85, 因为option vlan 是 855 K, b/ L3 R: M  u" X
, @/ s" [7 ~  M" @2 [. ~( m3 l
4t* 也是可以的,意思你自己就可以推出来了吧。( r) A; t" \" P1 h7 w

( {6 U  H+ [5 @我不理解你说的接上级路由是什么意思。我现在看出来了,这个无线路由器的VLAN功能是全的。正确的用法就是把 LAN 口中的一个当 WAN 口来用,然后接光猫。WAN 配成 PPPoE.
' T+ x* y+ g% G7 A- z. ?3 @# l
; i& i/ A7 c8 ^config switch_vlan vlan_wan
: ?$ q! P' |3 {* y9 V( z        option device   eth0
# u/ Q. S6 r, [6 V        option vlan     81
3 k, Y2 A1 f& b: G        option ports    '0t 1''
0 k4 q. ^/ N8 p/ p2 k- y  ~4 s7 S  F7 ?" ^5 k3 m, q
最后一行改成 option ports '0t 1u*'.
4 B% n5 b/ c! d' ^8 @' c; y如果我没理解错的话,你这里端口
4 I/ [) B7 I" T7 \0 是 CPU 口- r( V% z3 g, T* t4 ^. P+ L; d; |
1 是 WAN
! B! V, `! a, ?2, 3 是 LAN
6 M" i  x9 S8 D4 是 IPTV?
+ _3 @; _1 r2 ]+ A7 V3 O
  A( t8 K# v3 ^. J; n4 N如果是的话,明天我写个完整的配置给你,你可以再试试看。
发表于 2012-2-11 13:39:27 | 显示全部楼层
本帖最后由 chmjiong 于 2012-2-11 14:17 编辑   N" f, y+ m% N7 W5 J
3 O* S% u! H" Z; f
端口没有问题了,今天继续试验那个虚拟的wan,! x9 k" F7 D) X  L( ?7 M
config switch_vlan vlan_wan( e% X# Z; l) q' g
        option device   eth0+ O1 ?* v/ Z. F; u! m
        option vlan     2" K: r$ O# O6 I* Q  z, E7 Z
        option ports    "0t 1*"
& ~+ z4 X! O& ^1 Pwan不通,表现为只有发送没有接受,去掉那个*以后就拿到ip) @- `$ N3 P8 V6 P
再进一步试验
) p+ H4 {) b' `+ O- d1 u+ b        option vlan    81
! K* x; K+ u; q& X        option ports    "0t 1"
2 u/ A( z/ q9 d, |也不通,如果把81改成11,又通了, o: F- n: o6 W# ]& \5 y( R( C: C

/ p) h: ?* J& i" m更进一步,把lan改成81,wan改成82,lan挂掉,只能重刷
  K6 s& k+ {3 Y& B6 R目前刷的是10.03正式版,等下刷trunk版再试试看
+ Q( {' k4 T& O7 y$ Y# ^" g: X- D( t5 T* d( _2 f- h- R5 I: V% `
默认的network是这样的:config 'interface' 'loopback'
9 O, ~* F) U( S  B        option 'ifname' 'lo'8 m# \4 N! B5 d; N
        option 'proto' 'static'
- B  B; @, ?" z" s        option 'ipaddr' '127.0.0.1'' j4 k0 Y) o# X! j5 A- o- a* E
        option 'netmask' '255.0.0.0'0 F! C" U& I* y8 b
* L# ]9 x, u4 W/ e, d, a
config 'interface' 'lan'6 }: {) A; b( i+ M. C  b3 T
        option 'ifname' 'eth0'
- X7 C2 b# |9 W$ j        option 'type' 'bridge'- ?' b; H7 }! s7 y
        option 'proto' 'static'
7 @1 c! ]6 [% V( C: ]        option 'ipaddr' '192.168.1.1'
0 \* B+ F1 p9 C: e/ b+ \4 ~        option 'netmask' '255.255.255.0'
- C2 r& A1 ~3 F+ O2 G0 A- W  d. T8 i4 E* j# C' R3 o: I
config 'interface' 'wan'' i6 M5 P7 a1 h9 Z% C  C3 F
        option 'ifname' 'eth1'
5 T* z8 K+ F' v' f- A        option 'proto' 'dhcp'
  g8 j# T: Q6 M4 ^
* I5 V: T$ F9 P& u# s9 Lconfig 'switch'
; e% m$ z1 V) B  K        option 'name' 'eth0'
: G( ?  p% T, _8 K7 S$ I        option 'reset' '1'. \8 s, J. b+ w% f# P) U
        option 'enable_vlan' '1'. s% A: t( n4 S! K0 n( d. f8 Z
) m0 J* K: Z4 n0 r) {
config 'switch_vlan'& c0 P" b  T1 k2 Q8 M( v
        option 'device' 'eth0'
$ r; |/ x* m  V        option 'vlan' '1'" r& c3 t0 k, l- B
        option 'ports' '0 1 2 3 4'
% e+ w& ?' X8 Q4 x& h" F
3 s' }+ ~  B5 ?5 F6 H/ Q& z+ r在web里面看,1234对应4个端口,5关闭,0是cpu
2 L( s# m# C% B( [( |1 i2 t0 H  t# B$ A3 g% _4 h2 Y) d& y' O
7 L- d* K! c/ i2 s) v
trunk版一切照旧,和正式版一个样子
 楼主| 发表于 2012-2-11 15:34:39 | 显示全部楼层
chmjiong 发表于 2012-2-11 13:39 . v2 l8 Q' H6 ^
端口没有问题了,今天继续试验那个虚拟的wan,
, B% D7 u" I  v  Jconfig switch_vlan vlan_wan
; a+ D0 T4 u1 Q6 G+ J$ l& b        option device   et ...

, w2 `% a/ O! H1 P4 Y, s完整的配置文件应该是这样的:! G& ~! H1 ^5 T2 b$ @& o/ \

' y! x2 x1 ]/ C/ q3 n' Oconfig 'interface' 'loopback'* p+ |( n, k6 y* y$ G6 A: {# x
        option 'ifname' 'lo'
$ {, _6 Y- R' |5 q0 s& `        option 'proto' 'static'% A$ s8 B& @' v. J. k% @' _  {
        option 'ipaddr' '127.0.0.1'9 B9 w8 R3 z* y: R
        option 'netmask' '255.0.0.0'
! H# z  K+ x0 b2 l; ?$ v
! a6 E' U/ ?8 F0 J+ z4 Gconfig 'interface' 'lan'" h6 t- a9 i* O
        option 'ifname' 'eth0.1'& [- {4 K$ e& ?: K7 {$ g
        option 'type' 'bridge'* L9 c! d' b- z% J$ Z- |( a
        option 'proto' 'static'& i: Q* R$ e( q6 h" r
        option 'ipaddr' '192.168.1.1'; h5 f( V4 _1 `, _
        option 'netmask' '255.255.255.0', Q+ d4 Z* D0 l

7 Y" B$ c* j! f' w8 [config 'interface' 'wan'& I+ Q/ {" R* X9 ^4 V% |
        option 'ifname' 'eth0.81'
) c6 n8 A, R. F9 }        option 'proto' 'pppoe'
* v2 v& y$ Q% {, L9 ?/ E' X        option 'username'
; Y5 G- V  b0 V9 D        option 'password'
4 k' N0 L6 y: N) \0 |2 V/ s% d( E) Q' [! [# S( f, l# P
config 'switch'! v. x4 }) `- L  n* K  i  H5 L" p
        option 'name' 'eth0'2 b0 E7 R9 i7 F$ }
        option 'reset' '1') l$ E6 ?1 Z( z8 N
        option 'enable_vlan' '1'
& u( H' @' z2 N# j3 m+ I3 R( I5 D* `" a* k) d7 s! z/ _/ G: \
config 'switch_vlan_lan'
: }! T$ B* g. a% W; p# u, E        option 'device' 'eth0'0 a. b1 g( O. _! b# ]0 Q
        option 'vlan' '1'
, ]: u4 s8 j! t8 C$ Z        option 'ports' '0t 2 3'
6 }7 m% J) `1 X2 L% g8 Y$ q- M: I7 T6 @" o& D" A
config 'switch_vlan_iptvm'
" t1 h, x3 E* ]) k- d" [/ d        option 'device' 'eth0'
8 k( p& b4 I7 V1 u8 F        option 'vlan' '51'2 b6 Y$ M* v8 i5 V, N
        option 'ports' '1t 4'
8 `- T8 x7 |' A1 `' W; q8 N& j' ^; j2 x4 C  c5 R% {" N0 i: w' P
config 'switch_vlan_iptvu'
  y7 C4 U6 s* x' l4 X0 X$ J        option 'device' 'eth0'. y3 g8 z& b( g9 V6 _5 w
        option 'vlan' '85'
' F+ ~  D! z! A9 Q* V        option 'ports' '1t 4u*'" I! a& V" c  W

( n, A; }8 K+ B1 C4 hconfig 'switch_vlan_wan'8 s' w% w) L1 L2 F
        option 'device' 'eth0'4 q/ ~+ |8 G+ b) ?2 A+ m; ^: r
        option 'vlan' '81'
, N& w, {4 l! ]& A' R        option 'ports' '0t 1u*'
  [/ S% ^+ j& c8 Z# k
. u  h' y( x2 ?+ z0 c. E; o起来之后不管行不行,你先运行
2 u8 ^* v, e, p; p( X; n% @8 N) l' l6 ~swconfig dev ar8216 show; D& _" `5 E  Y' o
把结果贴上来看看。
发表于 2012-2-11 20:47:17 | 显示全部楼层
无论何种vlan配置,都是下面这个结果:
7 Y2 \! z6 W8 ~' w# t7 |0 O$ E# A/root$ swconfig dev ar8216 show! ?" C2 E. X' W" t4 a5 D6 i! {! ?7 R
Failed to connect to the switch
( S2 |/ D5 U3 Z  G我甚至怀疑交换机不是8216,拆开验证确属8216无疑,顺便给CPU和交换机贴了散热片
( s3 V' g" c- X+ _  N按照您的这个配置,lan挂了{:soso_e109:}
发表于 2012-2-11 21:19:15 | 显示全部楼层
不好意思,openwrt的端口映射怎么操作?我怎么做都不对,是写在firewall.user里
3 g# f+ `+ v+ A' B" [### Forward uTorrent GUI( H( X- X8 ^1 p' [
iptables -I INPUT -p tcp --dport 800 -j ACCEPT
4 R" b8 \" }$ g0 X; c2 Iiptables -A INPUT -d 192.168.1.90 -p tcp -m tcp --dport 800 -i ppp0 -j ACCEPT
6 P4 C3 ^' w6 _% t3 A* `这样写对吗?
6 `6 ^8 C& P- @! }8 ?
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-6-17 20:09 , Processed in 0.027178 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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