|
|
楼主 |
发表于 2019-10-18 10:50:26
|
显示全部楼层
关于 VLAN
2 i% _3 p5 W* E% C1 J: x/ M5 ?, y2 q% w1 ?设置 VLAN tag9 H1 i% c0 B9 ]
C5 ^5 I% e; X" ?3 a
ovs-vsctl add-port ovs-br vlan3 tag=3 -- set interface vlan3 type=internal3 X9 i' N) B9 N5 j& _9 i- _
移除 VLAN
1 H3 g6 Z6 f: O9 \
/ }7 @) z; s0 w/ E: g# s t3 G% ]4 kovs-vsctl del-port ovs-br vlan3
3 Z' q2 g* k$ j/ B" f. h4 f查询 VLAN4 w% d- p! V3 d m7 M
7 [( K7 e* z/ W2 s4 g# qovs-vsctl show) d ?( ~: B4 U, h
ifconfig vlan3
) W8 y9 \$ ~: I! V- X& O |设置 Vlan trunk5 e5 a9 l1 z$ r' }/ H* F( Q" @
ovs-vsctl add-port ovs-br eth0 trunk=3,4,5,6
9 G& N7 F2 U2 w: E1 v8 p& [) x5 {, z+ P+ @& _2 Z. Q( M
设置已 add 的 port 为 access port, vlan id 9% D4 P& h( ]$ I) |$ D, J, Q
- _# `) n) \. f7 Y) y8 @9 f
ovs-vsctl set port eth0 tag=9) j0 O5 b$ e0 w
ovs-ofctl add-flow 设置 vlan 100
* R% ]* j# M: F, p6 x8 \/ r! s4 S4 s6 t+ a }
ovs-ofctl add-flow ovs-br in_port=1,dl_vlan=0xffff,actions=mod_vlan_vid:100,output:3$ n8 ?8 v4 |0 s4 t
ovs-ofctl add-flow ovs-br in_port=1,dl_vlan=0xffff,actions=push_vlan:0x8100,set_field:100-\>vlan_vid,output:3
4 Q; z$ N# ~. a, a: Govs-ofctl add-flow 拿掉 vlan tag, b6 n/ k8 P; w ^
# E+ `: F# i& ?. M& Y% B
ovs-ofctl add-flow ovs1 in_port=3,dl_vlan=100,actions=strip_vlan,output:1
' [9 ~: U7 p, q) g9 W; }two_vlan example+ l: R5 L, Z5 u+ N( W( j0 ?
ovs-ofctl add-flow pop-vlan; A9 `( _- h6 Y# U& l$ T
4 k1 ^1 g( w: D5 P
ovs-ofctl add-flow ovs-br in_port=3,dl_vlan=0xffff,actions=pop_vlan,output:1
8 m: E2 S4 j( j, K; u' ^" T9 Q; ^1 Q I) C3 A3 ]) k1 j
4 i! L% |) j0 ?/ E, p* B' I
关于 GRE Tunnel
: G! }2 C" W) i0 W) N设置 GRE tunnel) ^2 W; I, h! G
+ H: i: w8 n" z2 W, Hovs−vsctl add−port ovs-br ovs-gre -- set interface ovs-gre type=gre options:remote_ip=1.2.3.4( q' R/ z. U- g+ S5 l5 R
查询 GRE Tunnel
4 @) A# {* y% s3 x7 j' P8 }3 M" J) f$ b
' G: B3 T7 l4 Bovs-vsctl show3 B/ u3 J' x. B; L, D
2 Y: ]: g, q" \& z3 j6 S% L D: r3 w4 N
关于 Dump flows4 m8 R D$ A% ~$ {+ O' K
Dumps OpenFlow flows 不含 hidden flows (常用)5 M, }& D% M' K0 i
3 U' t1 V1 L3 C8 b; G
ovs-ofctl dump-flows ovs-br
+ f9 N/ o" B4 D, B8 t% m) gDumps OpenFlow flows 包含 hidden flows
/ K) p9 ^- M @( n7 y+ k8 R: t+ p9 k( o, L& Y' B
ovs-appctl bridge/dump-flows ovs-br" R1 z% X3 j- B; c0 F0 ], i
Dump 特定 bridge 的 datapath flows 不論任何 type. R% b" o0 c7 n5 I) V2 p$ S
$ s0 d6 R) W* v: ?6 ^8 jovs-appctl dpif/dump-flows ovs-br
& K3 S* n6 H2 RDump 在 Linux kernel 裡的 datapath flow table (常用)6 A( i" l4 i: R
* K! Z4 c1 |4 O- |$ e# covs-dpctl dump-flows [dp]
5 w+ W d" x$ m7 h% |3 ZTop like behavior for ovs-dpctl dump-flows6 ^# u, J! r+ g N
0 V7 M: l! t0 u/ i
ovs-dpctl-top
( d7 ^% P: c3 R7 G- d% D) F$ D
3 c9 O! K' T& p" j/ J! B8 L3 z0 u9 C( L, ^! g. X* x# n3 v( g
& j6 S( v3 U# X. X8 Y8 IXenServer 开启 OpenvSwitch 方式+ @+ x& Z7 ^ r! e" l/ a5 f# U/ T4 b
检查是否启动openvswitch服务:* {( a1 w! K8 o. @+ u
8 i3 D* D/ R8 B/ \. E; S# j7 u7 {2 ^
service openvswitch status3 D* W$ o2 B# }
启动服务
0 v; d4 S7 m$ N4 }- }: i ]* E( W1 [# i0 E% y+ K1 q6 ~. Q
xe-switch-network-backend openvswitch. P4 s$ u, y2 a3 }% ] Q/ D1 z/ Q1 C* b
关闭服务$ l; E- A- u6 K; w
7 m7 K' }7 e2 O, N* b6 U# \" R" w
xe-switch-network-backend bridge4 A A3 v$ X6 v6 @
4 s. I; C# E( P) ^
, l: R8 c9 F' w% S" x2 f1 Q6 I关于 Log7 i3 T& M& G% ^: h
查询 log level list
, @$ a7 S, s) e, e/ V0 q6 u; c$ I H# r6 D9 [
ovs-appctl vlog/list
8 M0 C! N! M6 E) `3 y5 [设置 log level (以 stp 设置 file 为 dbg level 为例). N. @9 d/ [$ ]- {! u1 g! W
7 n/ q: x7 u' K* F. B; L) Q* yovs-appctl vlog/set stp:file:dbg
+ K5 H6 j, j" h, Y* w+ jovs-appctl vlog/set {module name}:{console, syslog, file}:{off, emer, err, warn, info, dbg}
0 Q H6 p3 j' b4 B: J l; ]/ {4 B. a% c3 B
' S4 \. g! M7 [ 关于 Fallback! o" Q# M# _4 x
Controller connection: false 的时候, 会自动调成 legacy switch mode
3 |: G; e# g( p+ q& r3 S3 _
5 u3 F& _; ^6 v: m2 `/ }1 Sovs-vsctl set-fail-mode ovs-br standalone
2 F4 u( Z- A5 b" a无论 Controller connection status 为何, 都必须通过 OpenFlow 进行网络行为 (default)! C; R1 S( O/ |. Z" f
* G, r# M3 a1 @( ~; Yovs-vsctl set-fail-mode ovs-br secure" X, O6 d1 \ p/ F) A* ]# i
移除
" S& h* w" K$ m8 R. X* m- n# }& n# ~
ovs-vsctl del-fail-mode ovs-br
) m$ V/ D; M3 w& j& D查询
: T, u* d+ W! R% V8 j5 \* e1 q# V/ o% B( } L
ovs-vsctl get-fail-mode ovs-br
( B" O# E: e+ c# N; g7 a$ k: B
* F s0 N% @" n* J! }' ?+ \$ e4 |, X9 P0 i
关于 sFlow- M/ z8 R+ C0 Q$ [
查询6 i. J( Y) h( x1 }2 K0 S
C, U% U1 f8 Q
ovs-vsctl list sflow
" @ [0 Y3 k" o: t+ [新增
a( U1 \& }, E9 p
+ Z, r( b' M: z1 M! JSet sFlow 缺
' A$ h# U) m0 A/ v& h; u' X刪除6 |1 S ^3 `7 u2 ]
4 ~" Q2 v( [ Z M! S; U
ovs-vsctl -- clear Bridge ovs-br sflow
; a; U" \" u V. r7.13关于 NetFlow4 p% t9 s7 r% x, Z( |: b$ J7 \
查询
. N6 n" w ^, I+ b/ E A1 U" `, c7 \
ovs-vsctl list netflow
# a- @: S# V# A6 G4 f! ]2 f" s新增! F) z: ^$ } U0 M! s% B
& o8 ?! s# L# K* s( ]* g8 |
Set NetFlow 缺3 ?9 h6 n0 O& l- @( N
刪除* H, E* S( i9 N0 R
/ ^; d8 x' \0 n: L
ovs-vsctl -- clear Bridge ovs-br netflow# e7 U3 z0 ^2 {2 `% n# x
7.14 设置 Out-of-band 和 in-band
4 _, W4 M: {$ m7 _1 r- L% q1 l! F查询1 h" l9 l+ V4 I! B/ B+ [; X2 W$ c
6 {: j# l$ d/ q2 Lovs-vsctl get controller ovs-br connection-mode! A' |6 v; f$ {( V
Out-of-band; C( }; S! y& O7 }) _
8 P8 Z/ _6 B3 r* A& D/ Y
ovs-vsctl set controller ovs-br connection-mode=out-of-band, X: P5 Q6 R* ]0 r8 T
In-band (default)$ r, M5 F: Z; a: m
' `/ @1 T6 r; q' s/ G3 }/ Q8 q" @
ovs-vsctl set controller ovs-br connection-mode=in-band
& \' s3 F8 [; P% W; }5 H移除 hidden flow
6 q, m" C7 v. _! h0 B- X' T) B' d" {
* l: n) I9 ~2 c# covs-vsctl set bridge br0 other-config:disable-in-band=true
' q* I& b+ @4 u8 b2 s+ R7.15 关于 ssl
7 C4 D! a! O" E2 q" P5 F0 w9 t* P查询. L/ O7 X7 X% j
! ?& V) C2 o+ Wovs-vsctl get-ssl
1 v5 ]$ [: A1 S. o+ m8 i设置5 S% E7 T( B y+ U" A* y- E9 U. S
7 X, d" P, B3 Z$ ~: d
ovs-vsctl set-ssl sc-privkey.pem sc-cert.pem cacert.pem
( P0 f- d, W3 h/ s1 r6 WOpenvSwitch Lab 6$ TLS SSL : http://roan.logdown.com/posts/208707-openvswitch-lab-6-ssl
/ G" d5 |1 x$ F5 [# \4 E: ]8 R刪除' b% L0 J5 L: I& ~+ w& s" \
9 a0 ~+ A; f, @. _: _
ovs-vsctl del-ssl
! {, Q) T$ d& `% M. ?4 c7.16 关于 SPAN
; z+ K- {0 ~4 d% V6 A# z详细设置
9 y1 y! m% y$ K5 K* y2 g6 y' k
: X/ V8 l2 k% x4 X- E: hovs-vsctl add-br ovs-br
2 X, {' M _* K1 \ovs-vsctl add-port ovs-br eth0
2 |# E3 Z) t# O' c& y0 H/ Sovs-vsctl add-port ovs-br eth1) z) X( m/ B- r `% c
ovs-vsctl add-port ovs-br tap0 \ l8 H$ h a" i; f
-- --id=@p get port tap0 \
9 O, i; n$ c( ]' z$ L -- --id=@m create mirror name=m0 select-all=true output-port=@p \
8 c4 K8 W4 T( E -- set bridge ovs-br mirrors=@m* _8 U7 q) w0 l) M" @
将 ovs-br 上 add-port {eth0,eth1} mirror 至 tap0% y# ]* J: F. J- x: Z' D
! t* O. @" T. t% u. A) P$ {
刪除/ S1 q% n+ w/ ?6 R. a5 r
: G! I( a) t/ I2 Q7 }: Dovs-vsctl clear bridge ovs-br mirrors # 關於 Table$ b8 o. L% W: W3 z
查 table ovs-ofctl dump-tables ovs-br
# Z' ]- H/ r4 d
4 ?: X. `) U8 Y* ~7.17 关于 Group Table
3 V+ Y# j( ]$ E! G参考 hwchiu – Multipath routing with Group table at mininet7 B# j- Y- j* S# M. V8 Q' k- X2 g
4 a5 K+ G7 x8 y+ z: ]建立 Group id 及对应的 bucket
+ S1 N3 F7 a$ ~5 S% o
; j: _, }/ [" N4 yovs-ofctl -O OpenFlow13 add-group ovs-br group_id=5566,type=select,bucket=output:1,bucket=output:2,bucket=output:32 m" S4 c/ D( y& f$ f3 M1 X6 Z
type 共有 All, Select, Indirect, FastFailover, 详细规格:http://flowgrammable.org/sdn/ope ... upmod/#GroupMod_1.3
( e O2 a' l1 ^: r8 r& M( F- r( G* x- X
使用 Group Table: p' z% c3 s# E; U }3 O
+ [5 ~8 `9 E% B# `+ R; d
ovs-ofctl -O OpenFlow13 add-flow ovs-br in_port=4,actions=group:5566
, Y4 T, W$ P' U# i" P7.18 关于 VXLAN
& Q- q4 T# t( s; U参考 rascov – Bridge Remote Mininets using VXLAN0 V; f) s5 n: U: M p* e
5 p8 U1 S; F* c" s" A8 h建立 VXLAN Network ID (VNI) 和指定的 OpenFlow port number, eg: VNI=5566, OF_PORT=9
& e( k9 y' _" w: D2 ~4 U7 J( \6 ~% T6 G; y
ovs-vsctl set interface vxlan type=vxlan option:remote_ip=x.x.x.x option:key=5566 ofport_request=99 d/ M$ @* \; Y! H4 k6 E
VNI flow by flow, g {6 L1 v' M# z1 I
$ k( V) X/ x2 S' s+ a9 j
ovs-vsctl set interface vxlan type=vxlan option:remote_ip=140.113.215.200 option:key=flow ofport_request=9
( U K! d d" n) D7 ^0 R# l设置 VXLAN tunnel id% x+ U/ c3 g) ?, r+ |
: i) Y b" O' J' M
ovs-ofctl add-flow ovs-br in_port=1,actions=set_field:5566->tun_id,output:2) m3 K1 u4 D# {' {/ S3 A
ovs-ofctl add-flow s1 in_port=2,tun_id=5566,actions=output:1
; r9 P! U# s" I5 j/ d7.19 关于 OVSDB Manager
) G0 r% u$ I# q5 }! G3 x9 i参考 OVSDB Integration:Mininet OVSDB Tutorial
+ A. {3 V( ], T# J4 F8 L% c+ `/ [# R* [- Y; i) E
Active Listener 设置
2 l$ X. c! T- H' K) Z
7 J" n- W6 T9 B) f6 \0 [8 sovs-vsctl set-manager tcp:1.2.3.4:6640
4 ^, b( i& s( _6 IPassive Listener 设置
k! A2 |! M0 r- u# D0 k9 i3 q% Q0 q! \: i
ovs-vsctl set-manager ptcp:6640
3 @! y: |9 F- M. U9 H* Y7.20 OpenFlow Trace
: n. ^ ~; t5 l- S8 g. a+ x6 o7 cGenerate pakcet trace
! l; y- A) S" f: D4 R6 K* W {, T# a2 P- f8 ^' t
ovs-appctl ofproto/trace ovs-br in_port=1,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02 -generate
4 J# _0 n/ F; y9 {* f% n- `7.21 其它% H4 F0 |$ j- _) T7 h, b
查询 OpenvSwitch 版本 J R& }0 @9 B% D' u, F2 V
" S7 G3 o- ?5 q' m
ovs-ofctl -V: k% C1 U6 j$ `5 }8 k! m
查询指令历史记录& w4 s" E9 j7 M0 h/ U8 P
4 N, E* B. J3 G% V) hovsdb-tool show-log [-mmm]) U, d7 j; X& O4 ?3 @ u
|
|