找回密码
 注册

QQ登录

只需一步,快速开始

楼主: spicahan

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

[复制链接]
 楼主| 发表于 2012-2-10 20:54:48 | 显示全部楼层
chmjiong 发表于 2012-2-9 22:19
$ F9 a! _& S; I已经查清楚为什么虚拟出的wan失效了,原来是openwrt的驱动只支持16个vlan,哪怕是truke版也没用,把wan的vl ...
# a9 _0 g6 R: `6 h4 d+ e* F! F/ R
是这样的,不同芯片的交换机,有自己的vlan驱动。比如broadcom的5325e和53115是在 /proc 下弄出接口来配置的。G300NH用的是Realtek的芯片,配置VLAN的时候用的是一个专门的程序,名字我忘记了。。。
& e( f4 X  D" M: k  V' {" E. ]但是不管是用的什么芯片,从外面来看,配置的方法都是一样的,就是改 /etc/config/network.
6 p2 U! C  J2 r3 K+ E% u8 U$ w4 qOpenWrt 的 UCI 自己会选择合适的方式去配置交换机芯片的。ar8216底层的VLAN驱动是什么我不清楚,不过我估计和G300NH用的Rtl8366大概是一个类型的。
( H( |8 L9 d5 @. [6 c! JG300NH/RTL8366 默认的时候只支持16个VLAN, 需要在/etc/config/network里写上 option enable_vlan4k 1 才能打开全部vlan.; f/ u; f7 n1 V' c/ z" c- y; C/ n0 B
你可以找找ar8216是不是也有类似的option.
) U, @; w8 [4 d/ F$ N5 f  ~
6 b3 i! I4 W/ O# i+ k$ N- M. Y最后,PVID这个 option 我记得是完全不需要的。详细文档可以看/ G$ X: W# X, k7 Z" f
wiki。openwrt。org / doc / uci / network / switch" I% g! d/ B: B$ U0 g4 c# d2 y

! N8 o7 D$ V# J% P! a/ l0 T& G等我有空的时候我会看一下 trunk 里的代码,看看 ar8216 到底是什么情况。
发表于 2012-2-10 22:50:29 | 显示全部楼层
本帖最后由 chmjiong 于 2012-2-10 22:53 编辑 5 Z- C) J7 D- ^2 d3 H
& E6 ]& X" ~/ n( g- d3 H, @
但是8216的源代码里没有option enable_vlan4k 1
* w/ j7 x8 ]& P8 Z- E8 b4 B+ \现在那个不能工作的network如下:6 ?" W: G) v0 Q+ r+ j0 d0 T4 b/ W
config interface loopback
# r$ L% h9 l* X. T        option ifname   lo! G+ p5 q7 |& L
        option proto    static1 T, s! ~  R" j
        option ipaddr   127.0.0.1
" S" E; x$ ~  `3 L' {0 j        option netmask  255.0.0.0, `' }9 i; j6 q: i4 \9 u

  R+ v0 Y' V' K2 R3 @, wconfig interface lan
# z2 |9 g% k% f        option ifname   eth0.1' y, _3 k# W$ P( l1 N$ R7 q/ {
        option type     bridge
1 t" _5 r6 y6 F' t* N: A- Q5 g, x        option proto    static, j- L8 w5 g- T( a, B. H
        option ipaddr   192.168.1.1
% W) D! V) N6 D, z        option netmask  255.255.255.0
3 J, A* u- ]: c4 i# {" j, n; c
" ]; j( P' ~# L& x8 q& X# W0 R1 hconfig interface wan0 y5 p6 K3 _: w; ~/ M9 N. m
        option ifname   eth0.81& H6 A) L. @9 e! C! c( {' W( ]5 O" r
        option proto    dhcp: B7 W6 z% X1 C1 [' a9 x
      
% d% o8 A( ~  J7 o, kconfig switch/ r! m- s& E; y2 g
        option name     eth0
4 O7 G6 K) i7 c9 i        option reset    1
9 m: L' j# `" h3 x. l8 s' q& N        option enable_vlan 1. B* a0 R' T: {& j* H
        9 C# F; d2 g4 l) V9 r
# x' B+ k% t( j$ _9 a  e9 @
config switch_vlan vlan_lan" U5 b2 u- y% d8 g# w( A
        option device   eth0
$ H, J8 [% N. Z) e) O6 @4 y, g        option vlan     1
4 j4 W; y0 n% }8 }) d        option ports    '2 3 0t'  I6 W# d4 L2 t

0 M3 [1 i2 Z7 D# [1 V1 Bconfig switch_vlan vlan_iptvm
4 \& C& L, ?# o2 L# D0 w6 G        option device   eth0
. }$ c( Z6 `1 R, c/ H; `1 F        option vlan     515 W( @# O4 U  a- M
        option ports    '1t 4'4 A/ }' a. y* `! X

3 z  n# ^  s! g  F/ \. I- ]config switch_vlan vlan_iptvu
; H+ s  u3 S+ E7 q! e& o5 z        option device   eth0  A7 Y, H' j% k* {: o3 t
        option vlan     856 M( e  V- M7 e1 M' y6 c9 d6 G
        option ports    '1t 4'
, Y2 W9 k0 s3 G- v) _# M% x
! ~# I. M% k  Y1 H; }4 dconfig switch_vlan vlan_wan0 g3 |5 y$ i$ G* @6 K, G, t
        option device   eth0
1 h) C7 R! L) I/ D4 v        option vlan     81, T7 B- A, z, Q
        option ports    '0t 1'
4 V, a% b" q1 L1 g8 Z9 J+ Z4 A所以我非常困惑,源代码里那些128个vid究竟是怎么回事
 楼主| 发表于 2012-2-10 23:02:27 | 显示全部楼层
chmjiong 发表于 2012-2-10 22:50
5 U$ b# [4 a6 J' F5 y* t但是8216的源代码里没有option enable_vlan4k 1
& m% M& G# s$ _4 u5 Y现在那个不能工作的network如下:, J5 \4 n. n" [  c7 X. s" m% a
config interface loop ...
# X: J+ b# i" \% \6 A# b5 |
7 b( P4 @( _. h6 [
config switch_vlan vlan_iptvu# w+ u! U% d. x) I2 k
        option device   eth0; G* z7 N0 L5 _0 |& ?) n
        option vlan     85( K/ W& F  I* J( U6 p2 ]
        option ports    '1t 4'" P" g9 L8 ?' y9 t

- t+ X8 H/ f. [" i4 y最后一行,改成 option ports '1t 4u*'
! c, `4 s5 B% |. p8 S7 B我看了一下我自己之前写的配置,85那里居然没有星号。。可能是运气好,正好rtl8366的驱动把85作为了那个端口上的PVID.
 楼主| 发表于 2012-2-10 23:14:09 | 显示全部楼层
chmjiong 发表于 2012-2-10 22:50
1 B+ F! D! c) K- g* d1 w但是8216的源代码里没有option enable_vlan4k 1
) z7 K) R) ~* ~6 M6 P# F现在那个不能工作的network如下:; k6 g( k; d( ]7 o
config interface loop ...
( }- j, e8 Y( o# }" t0 q
对了,我终于想起来 atheos 用什么命令改 vlan 了。。。  C0 }7 W( J0 n2 c  K# p
在我的 G300NH 上,可以用这个命令来看 vlan 的详细配置:) X# a5 P, f& v+ ~7 Q8 Q/ G6 Z
swconfig dev rtl8366rb show" s: P& V" N; {6 F- f9 S5 m) [

" p  a  Y+ j# Q6 @: X  q在你这里,我估计大概是用
  y% d/ G- u4 b7 @9 jswconfig dev ar8216 show
: N0 ?3 A% u+ K1 v3 Q; K" `如果能工作的话,你把结果都贴上来我看看' C6 D' D! |8 \9 T- l

4 n2 M9 f; Z& i4 s$ d" _+ c) S7 E8 F另外,swconfig的文档:
$ K& A8 }% l% i# v! i" k' awiki。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
7 Q3 t' W; {6 |2 ~, _请教:4、4t、4u、4u*之间都有点什么区别?这个配置的毛病是,lan正常,wan不能工作,一定要把wan的vid改成 ...
8 B0 P# @5 e& }9 k4 w
4 和 4u 的意思是一样的,都是说从这个端口发出去的数据包是不带VLAN标签的,所谓的Untagged
  h4 d! L9 |( }" M0 P% t4t 的意思就是说从这个端口发出去的数据是带VLAN标签的,所谓的Tagged
4 \$ n# |9 J- H- m& z3 x, I& W4u* (理论上和4*是一个意思,不过我一般写成u*)的意思除了有4u的意思之外,还说了从这个端口上收到的数据包,如果是untagged, 那么将把它当成端口的PVID所在的VLAN来处理。在这里,PVID是85, 因为option vlan 是 852 A8 R/ l/ i( R/ l+ i' q8 j

5 |5 K9 \; }. O! z/ G, Q# v4t* 也是可以的,意思你自己就可以推出来了吧。
, P" r+ o' @! @4 E3 `5 z; m5 c9 _
' }! u! l* G; P我不理解你说的接上级路由是什么意思。我现在看出来了,这个无线路由器的VLAN功能是全的。正确的用法就是把 LAN 口中的一个当 WAN 口来用,然后接光猫。WAN 配成 PPPoE.
6 `0 r" N# N! i# s( i0 O) {1 U" q% }: p7 ^$ K; I7 b8 ~
config switch_vlan vlan_wan( U% x8 N6 V/ x4 N5 _; z
        option device   eth0
* x! x! K0 G, T$ l/ s        option vlan     818 a; A" o! c& f+ `( P" f0 i
        option ports    '0t 1''
( l+ R' q; }3 ~- M3 P; f$ }1 @: v0 Z. L' H
最后一行改成 option ports '0t 1u*'.
! y/ n( d( V% {) x. f如果我没理解错的话,你这里端口, N! f1 l! k1 N- o; j2 l
0 是 CPU 口" z2 n) a8 k4 \, V8 M1 X3 b
1 是 WAN
+ F8 f) @% s5 `8 w0 r2, 3 是 LAN
( P5 s  f7 b& }" P* ?, v2 e  ~4 是 IPTV?
3 `& p1 j3 r! v! z2 G6 O4 o" p" n, `* s7 J( j. {4 t
如果是的话,明天我写个完整的配置给你,你可以再试试看。
发表于 2012-2-11 13:39:27 | 显示全部楼层
本帖最后由 chmjiong 于 2012-2-11 14:17 编辑
% {: P& E+ b' G* P1 X0 z3 Z. @% E0 B: O6 U# }7 z
端口没有问题了,今天继续试验那个虚拟的wan,/ \- i% `: q# F& P; w0 A0 l- N
config switch_vlan vlan_wan& }7 X% ?$ I4 [9 D
        option device   eth0# s" ~6 ?! @1 b
        option vlan     2% w6 p* J9 i* x/ ?
        option ports    "0t 1*"; F) ?* k# Z, V) Y
wan不通,表现为只有发送没有接受,去掉那个*以后就拿到ip3 p: ^! d3 z, y) N3 {' O
再进一步试验
, A; T' _& D7 q1 J0 o' V        option vlan    81$ F0 n: O# S  F: c, D& X
        option ports    "0t 1"
* x/ n' L' O: v* p7 ~- v0 Q$ |: _) F也不通,如果把81改成11,又通了" [, x5 F  V  g' O0 a

, v, ]1 |7 H7 r' v, \* e更进一步,把lan改成81,wan改成82,lan挂掉,只能重刷
0 Y" o( G' i0 c7 Q7 d& ]- G目前刷的是10.03正式版,等下刷trunk版再试试看
2 S) y" |* O9 s: E. {6 K/ Z3 s$ G7 m4 w5 C" M! o; q4 z
默认的network是这样的:config 'interface' 'loopback'4 Y* P/ L4 I5 M3 A
        option 'ifname' 'lo'& O) u: `/ k- W
        option 'proto' 'static'1 t6 ~# ~% @% b. P, `
        option 'ipaddr' '127.0.0.1'+ c" L9 _$ U, `
        option 'netmask' '255.0.0.0'8 ~9 E* T9 E4 V) m  D) W" w1 R* h
2 s! [6 L! W2 z
config 'interface' 'lan'
2 O, {+ S2 f& m: F- `8 `8 Q( Q" U        option 'ifname' 'eth0'1 h9 b) [# P  ?
        option 'type' 'bridge'+ n8 T1 m/ X" l7 f5 R" J: C
        option 'proto' 'static'" N( Z4 ~7 \. r) e
        option 'ipaddr' '192.168.1.1'
1 V( m- e) o2 F1 @( S7 \  o' G        option 'netmask' '255.255.255.0'
+ f  g( N3 ]1 R$ `' {& R3 S. _, I4 \5 W: F. g' Y
config 'interface' 'wan'# S5 b6 w) G: l
        option 'ifname' 'eth1'1 l4 q; q& Q) z, e6 n- F0 {
        option 'proto' 'dhcp'
3 o5 ?+ i) `% v* ^; ?. x/ C$ b' q4 E/ i3 f# i. C5 M: f! z
config 'switch'7 ]" @  l9 F- Z, [0 h( z
        option 'name' 'eth0'3 U5 ^& H- Y, g' h6 U
        option 'reset' '1'/ V3 z9 U8 R) {9 b" A
        option 'enable_vlan' '1'
2 b, f3 ?8 U4 \! v3 ?/ Y  e
# D1 A0 q8 e) _* g, f/ v% i: q) Oconfig 'switch_vlan'
/ V9 R; h+ z: m        option 'device' 'eth0'
$ e8 k5 z' ?2 M" T! e        option 'vlan' '1'
8 o) i9 l# f! W/ W, T# D$ E        option 'ports' '0 1 2 3 4'
9 R* f7 i& B9 J
' Q1 W$ f. w. y在web里面看,1234对应4个端口,5关闭,0是cpu# P: V4 s5 C. ]% c' {* h: _
. w  f5 }5 E+ N; h

' L) ^2 c: c, f' N$ X8 [. E9 Q/ X1 Ktrunk版一切照旧,和正式版一个样子
 楼主| 发表于 2012-2-11 15:34:39 | 显示全部楼层
chmjiong 发表于 2012-2-11 13:39 6 r4 E" W: ?& S% ~, g& e/ ?+ p
端口没有问题了,今天继续试验那个虚拟的wan,
( A* K! \' h9 Q" h& f0 p4 a3 _config switch_vlan vlan_wan6 |% C( [* U9 D  ]$ g) v3 S
        option device   et ...
9 d7 ~0 i8 ]  N: ~
完整的配置文件应该是这样的:
7 ~; Y0 ?, l3 A+ P  G) U: E& x* i* J( L4 ?1 {1 Y
config 'interface' 'loopback'' `# `/ U9 o$ b6 m
        option 'ifname' 'lo'" I9 V* O% p; |0 G9 t
        option 'proto' 'static'
' |8 c( @- A% P3 o2 h  n0 ]        option 'ipaddr' '127.0.0.1'* W  B  L/ Z1 v
        option 'netmask' '255.0.0.0'
0 x/ |6 q& A% |$ V' ]2 X" c
9 Y) s+ t/ L+ u( s; C5 [( P' jconfig 'interface' 'lan', d- s) J: o5 p
        option 'ifname' 'eth0.1'
( n  T6 a( v/ y/ Y. ?$ U5 W        option 'type' 'bridge'
) D& o! O: R/ n        option 'proto' 'static'
# I$ x) i1 \* D, V        option 'ipaddr' '192.168.1.1'6 o3 G' M2 a, _2 ^- f3 L+ S' `; [' S
        option 'netmask' '255.255.255.0'
- C* Z: c" W, n5 _. [/ b% Z* z4 h* b6 a4 i# _% T) K4 |' N- _
config 'interface' 'wan'# R) }2 I1 I7 u. B) V
        option 'ifname' 'eth0.81'
& X1 [2 ~* }" v        option 'proto' 'pppoe'9 v6 V5 {# v* d4 c4 f
        option 'username'
: L. ~; n( O) u/ ?        option 'password'
4 B1 U$ t5 \: s' c) S6 k5 m
; k: B8 Y7 b+ h% @, bconfig 'switch'4 _& b) Z2 |2 L# c& d$ F
        option 'name' 'eth0'3 `* B8 w, f; |# d# N0 z. n
        option 'reset' '1'4 c( w, \4 M/ B% O" N2 ^* k
        option 'enable_vlan' '1'; m6 ~' Y/ y2 S: y, ]& {1 o. k

) P9 |9 e! S/ H9 i3 c( g/ Y, ]config 'switch_vlan_lan'3 m; Z9 t7 A5 `2 L6 U0 Q
        option 'device' 'eth0'
$ L3 u( s( J. f& ^; q6 m        option 'vlan' '1'
( [0 X8 _) V5 T; F- f        option 'ports' '0t 2 3'$ ?* e' a2 e4 A6 _: ~, L
' V, `3 E  V  `
config 'switch_vlan_iptvm'7 A% D. T7 ]; G
        option 'device' 'eth0'
/ R) w2 y7 }* [) T# L  ]6 X        option 'vlan' '51'
' E2 v, I/ W, ]* m- e2 k- q# m        option 'ports' '1t 4'
: n4 e9 P3 V! z/ t! j) v: B
; i4 t5 Y0 J! y( Qconfig 'switch_vlan_iptvu'
2 E; z" }  s- d4 H- _& E        option 'device' 'eth0'2 f3 n6 V! F* z- m. N1 U! Y
        option 'vlan' '85', h6 Y& n3 |5 q
        option 'ports' '1t 4u*'
4 }* i+ J" ~" P. E" k8 O" U
, L& m8 R  Y8 H: iconfig 'switch_vlan_wan'
) y% O& P9 V1 j& f# E        option 'device' 'eth0'
7 `; D8 {9 v8 Y        option 'vlan' '81'
1 _' c/ G, D, {8 H+ u3 x7 G1 M0 b0 L        option 'ports' '0t 1u*'
* `' e7 ?$ K2 w1 x3 h, o
4 \: |" _9 L/ A4 j* j# o7 G5 a起来之后不管行不行,你先运行& V! u, ]. @: _9 J3 I9 w
swconfig dev ar8216 show
2 K# s9 B' }% ?& T6 R把结果贴上来看看。
发表于 2012-2-11 20:47:17 | 显示全部楼层
无论何种vlan配置,都是下面这个结果:4 d# A, F7 E+ p- ]) [
/root$ swconfig dev ar8216 show
( B% E% M  x! a+ D5 r2 ]- pFailed to connect to the switch  A, Q5 l( o. X8 r0 ~
我甚至怀疑交换机不是8216,拆开验证确属8216无疑,顺便给CPU和交换机贴了散热片
8 e! n& V) c/ F: o; V- a, Q按照您的这个配置,lan挂了{:soso_e109:}
发表于 2012-2-11 21:19:15 | 显示全部楼层
不好意思,openwrt的端口映射怎么操作?我怎么做都不对,是写在firewall.user里
& J5 ], R: J$ Z+ y  G6 a" i### Forward uTorrent GUI
# e+ L# ~. Z6 A1 W  ciptables -I INPUT -p tcp --dport 800 -j ACCEPT
; u- A+ y" j$ O# z4 |# G2 _8 n+ ]iptables -A INPUT -d 192.168.1.90 -p tcp -m tcp --dport 800 -i ppp0 -j ACCEPT
  u* D- F, E9 e  y) M这样写对吗?1 l( D. R' l, |9 N! Z
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-2 02:43 , Processed in 0.026936 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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