易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 398|回复: 2
收起左侧

Linux 操作系统中部署KVM加OVS部署方式网络

[复制链接]
发表于 2023-9-25 11:26:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
Linux 操作系统中部署KVM加OVS部署方式网络
! {" T9 n$ I% C部署在kvm虚拟环境上(让虚拟机和宿主机都可以直接从路由器获取到独立ip). A( l: T! X! N; d& o9 J& {
' K4 l; Y+ H( j  D2 [1 `
1、安装ovs软件安装包并启动服务(一般采用源码安装,此处用yum安装); z9 j% k2 R) s( ~# E6 A
: P8 }' t" K! o
yum install -y openvswitch
" ]7 Z5 I4 y$ _  k) n2 t! n  ?systemctl enable --now openvswitch4 f: U  o) \* R! y) K0 C" e: D9 J
2、创建br0网桥,查看当前状态& ]3 b! v. B$ t

6 X2 K) E- x: `ovs-vsctl add-br br0
& i# M9 k& g8 Kovs-vsctl show
- Z' e1 }# V! j& G& r& U3、修改配置文件,做完整网桥配置
3 B0 O, C$ g& F6 f8 G( W+ j2 R
& h, U/ F8 t; Ecd /etc/sysconfig/network-scripts/$ K0 R  U" e2 b4 T- \3 b- u

* p$ t" ?% _4 O# B5 { vim ifcfg-br04 r9 `: T8 i  Z8 B6 U  F
内容如下:$ D& a. _' L! T+ s8 F' B
DEVICE=br0- ]8 Z0 {. I) Y6 o0 ?
BOOTPROTO=none5 o; L1 w  u+ n
ONBOOT=yes1 F- Y' j+ R7 V+ p- Q9 z5 D8 ]
TYPE=OVSBridge
$ w+ `8 E" m. @8 H5 {+ ]' Y- `DEVICETYPE=ovs$ s! s- B8 r, h9 r* F2 M$ D2 J! H
IPADDR=192.168.134.178
* G! K/ J: J" k* D; o2 aPREFIX=247 L" |# b1 j0 D* C/ i, h6 C
GATEWAY=192.168.133.2
; ?/ t/ B1 M) Q, v! z2 C! f7 JDNS1=114.114.114.114$ e3 H' U1 X9 \5 _4 h* Z2 T! B! v
DNS2=8.8.8.8, V3 z" {! H9 E1 h/ N7 i1 H7 q$ }  q9 `
NAME=br0
: X+ V- ?' h- C( r" ]# y% Z5 V
9 h+ I) P! I- `2 P( E, B6 svim ifcfg-ens33
+ N7 [  z1 K1 k* Y% ]2 H0 {+ f内容如下:
$ ^" ~/ s& a2 u( C) \; d+ O做部分修改与添加即可(两个文件ip地址相同)3 a9 n/ E/ V+ B0 l5 W( }
TYPE=OVSPort! u" |2 u6 V! W4 w! b" C) [4 W+ e# m
BOOTPROTO=none
' S/ N0 i  [3 pNAME=ens33
  U* P+ m1 Z& P5 l2 V! [DEVICE=ens33& n0 ]. U% g  g' n3 w2 x$ i
ONBOOT=yes
# }) Z( _5 J# U* jIPADDR=192.168.13.788 Y6 e2 M- b" l7 ]; u7 a" x9 h; T
PREFIX=240 g) h7 O$ I/ l0 P; a2 M( n& w" @. {
GATEWAY=192.168.13.2
. t9 y0 b" D$ n0 N9 D* h5 U) N3 SDNS1=114.114.114.114
& Z! W% x1 y* f6 u% qDEVICETYPE=ovs
8 y: Z$ d; ^- K: O- rOVS_BRIDGE=br0/ ^8 j: n9 w" n8 q$ u+ d! F
' G+ b) l) O2 W. R1 U  U
systemctl restart network      # 重启网卡服务生效
" I/ A8 U3 c) K8 v3 U4、查看状态# D% R$ N) B6 S9 h% y) n
% t0 x- l& S+ E
ovs-vsctl show
' y0 ]! t) j+ X* J
! ~* a6 J+ ^9 a& q
 楼主| 发表于 2023-9-25 11:30:23 | 显示全部楼层
创建KVM 虚拟机,并将网络挂载到前面创建好的OVS上:
virt-install --name windows2019 --memory 16384 --vcpu 16 --disk path=/usr/src/windows2019.qcow2 --disk path=/usr/src/windows-2019.iso,,device=cdrom --network=bridge:M,model=virtio,virtualport_type=openvswitch --vnclisten=0.0.0.0 --vncport=5909 --vnc --noautoconsole --boot menu=on
创建完成后,在OVS上新增加了一个端口:

2 I: J9 o6 d/ Q& ]
将来这个端口将通过带190、191、192标签的数据帧,因此使用以下命令方行这些包:
ovs-vsctl set port vnet0 trunk=190,191,192
删除放行的vlan标签命令为:
ovs-vsctl remove port vnet0 trunk 191
如果需要在这个port给数据加90的标签,命令如下:
ovs-vsctl set port vnet0 tag=190
删除标签的命令为:
ovs-vsctl remove port vnet0 tag 190

, t3 P3 A' {5 u1 C. _3 T' R* W9 i2 J+ B' [9 p5 A
( l& V3 p# b7 {- `
* D9 W+ N8 J1 s! H9 ?
# u/ w" q* X9 t6 T
1 N& {5 J. K8 T4 d

; e; N! y9 G* I( t# a
 楼主| 发表于 2023-9-25 11:31:22 | 显示全部楼层
///生成ovs桥并绑定到物理网口,假定物理网口名为eth0,ovs桥命名为ovsbr
& \% g" u* ?) T2 {& B$ q! U$ sudo ovs-vsctl add-br ovsbr
- `+ }' H* O" X$ sudo ovs-vsctl add-port ovsbr eth0
- k) L$ ^# f; X, V) Z# `# i+ X8 V/ }4 `3 F+ c* Y3 e
///修改物理网口网络配置文件4 R* u0 D- O4 {7 u& g
# /etc/sysconfig/network/ifcfg-eth0
9 K: P0 z+ }0 l2 h* y; a STARTMODE='auto'$ v: u/ ~  h. c! a- ^
BOOTPROTO='none'
) g* e( R  Z7 K6 E! o' \/ r///ovs创建桥时默认会自动创建同名称的虚拟内部网络接口供虚拟化主机通信
! L4 F3 E: @; B: s" D/ L///因此,创建新的网络配置文件,用于物理主机访问网络
6 W6 V/ S. G* @/ o' y# /etc/sysconfig/network/
6 V% e+ }/ N; Y, }# sudo touch ifcfg-ovsbr2 _+ L8 k2 |( a
STARTMODE=auto
5 c3 B! i$ x; l* `4 _/ p BOOTPROTO=dhcp
2 Z5 t8 ~/ C. B& n& [7 x OVS_BRIDGE=yes: ^& h" n4 f2 C* s- i
OVS_BRIDGE_PORT_DEVICE=eth0
$ }/ Q1 e  _& }) Z. W  G///重启网络使配置生效
3 q' ?, y9 x0 r* G# sudo systemctl restart network
' I! Z2 j8 t7 R5 }$ F1 i///检查网络状态,正常如下显示
8 R/ I( s7 x. x4 R/ T1 B! o) v/ p# ip a$ F9 y6 M7 D' @% z5 c  t1 @
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000% U/ B- h1 ~7 T: B0 ^/ f  s
3: ovs-system: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
- `; N: ?$ n) e: T( l4: ovsbr: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
  ?9 C+ `9 B$ |! ?1 ^6 c- N    inet xxx.xxx.xxx.xxx/xx brd xxx.xxx.xxx.xxx scope global
% z0 o* I4 T% h8 j! ?% W- E" k* I       valid_lft forever preferred_lft forever7 L5 q# h# w# l. V3 w$ v  I3 I
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
' v* A5 e  ^5 ]7 D  [7 j3 O1 D       valid_lft forever preferred_lft forever
6 m- [. s# U& D+ C$ v- D
- C: h6 o' p" m, A+ J3 l' K###nm是直接写数据到ovs数据库,因此,需要手动创建ovs桥,端口(port)及接口(interface)9 U/ x# K: K1 ^' m

! }. S) T( t5 R- M# nmcli conn add type ovs-bridge conn.interface ovsbr    ###创建ovs桥5 _2 A4 ?4 Z: q4 \/ Q/ G7 @' I
# nmcli conn add type ovs-port conn.interface ovsbr master ovsbr   ###创建内部port
1 ?; e  P' a  M# nmcli conn add type ovs-interface slave-type ovs-port conn.interface ovsbr  master ovsbr ipv4.method auto   ###创建内部interface,并采用dhcp获取ip
' L" {: K  F: @  T+ s# nmcli conn add type ovs-port conn.interface eth0 master ovsbr   ###创建物理网口port
, l$ Z4 v  w4 M- z. H# nmcli conn add type ethernet conn.interface eth0 master eth0   ###绑定到物理网口interface
5 Z. p8 ^" {$ i9 u" N! e# sudo systemctl restart NetworkManager   ///重启网络服务使配置生效5 _# l. W# Y1 t( E* t, |
///ovs接口状态如下
  x- I4 O! C* ]9 a! d; ]) \6 k5 l) v# sudo ovs-vsctl show& C+ d' g1 _" o
    Bridge ovsbr
; v7 f* A2 F3 j3 p0 G: l. G1 ]        Port ovsbr3 ?$ |# G4 i+ d$ Q$ ~5 H
            Interface ovsbr
1 c  O  T4 M- m' o8 b                type: internal
1 Z+ E$ ]. T3 K3 H; y        Port eth08 Q% t# @7 @5 S* A, K
            Interface eth0
  y7 S) Y2 k) I2 Y$ K* }    ovs_version: "2.15.2"7 S9 k9 t0 w' c1 ?- w
" b3 T  Z$ V- `: g  X3 u( z

6 R9 w& x: b& B! g8 z
1 H% `6 S' y7 N5 X, |  Lvirsh net-edit network   ###编辑名称为network的网络
+ h: I5 s3 g, Y5 q    <network>
; Y! m: _; U6 L! Z% F& u( \6 V      <name>ovsbr</name>0 c' Z" B5 k6 u- ?4 W
      <uuid></uuid>* u$ p2 Q+ i6 h" X  N  A- Y
      <forward mode='bridge'/>
. q8 v- p0 N& ]- U      <bridge name='ovsbr'/>) b. n5 _1 @3 p3 Q
      <virtualport type='openvswitch'/>
0 e+ n( Y  |- d" K1 `; ]9 }; H    </network>' Y4 d) v. {9 f

! L" ^; S8 D6 [# q1 T" T. k4 l7 s5 [##配置文件为xml格式,转发模式改为bridge,桥名称即为ovs桥名称,虚拟端口类型为openvswitch
% l/ Z; u/ N+ u. y4 T
. ]; C8 L8 h- X1 v6 Y6 U) x+ w) ?4 l1 |% j9 S
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:39 , Processed in 0.051586 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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