找回密码
 注册
查看: 404|回复: 2

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2023-9-25 11:26:07 | 显示全部楼层 |阅读模式
Linux 操作系统中部署KVM加OVS部署方式网络- J; k: E" K) K6 D4 _% n* N/ b
部署在kvm虚拟环境上(让虚拟机和宿主机都可以直接从路由器获取到独立ip)
2 g# I; m( e, X* e; m. {6 Q
5 u* Y. f$ _. }3 n) R2 z9 C& F1、安装ovs软件安装包并启动服务(一般采用源码安装,此处用yum安装)0 U/ K( w/ j: [" f+ N

  m1 }- ^$ [, ?6 Wyum install -y openvswitch
5 b( g9 Z$ E. ~! g2 e! Osystemctl enable --now openvswitch
3 h1 N9 _" q/ V- n' D+ N4 v2、创建br0网桥,查看当前状态# W6 Y9 ?/ U# b0 y; h( e! \2 E

# h4 Q2 l* L) V3 P7 h% Q8 D# xovs-vsctl add-br br0% x- k  v0 |; }0 I7 F' ^0 E
ovs-vsctl show! m: n$ ~0 U; I
3、修改配置文件,做完整网桥配置
0 e6 O" ^! o! w3 U: W, i; }" V8 V7 u
cd /etc/sysconfig/network-scripts/, d7 S& w. N" q. ?3 u* V7 D0 L
* @1 i4 [2 Z9 v0 h1 O& w
vim ifcfg-br0, |8 z9 w& W# K. d. Z  R
内容如下:# S+ d. B9 @7 _  X/ r' _
DEVICE=br0
( G9 \# Y) }+ _% z7 a& }BOOTPROTO=none0 L9 S! K( d4 F" Z% C
ONBOOT=yes
& d- h! g( H: Z+ \- ~TYPE=OVSBridge3 N% p* ?; S. D3 [0 {4 ]
DEVICETYPE=ovs' w# p- v8 p+ o* v- w& O0 ?
IPADDR=192.168.134.178' k- @* b; c! }% w1 O
PREFIX=24* k3 ~% A# ]: g4 {
GATEWAY=192.168.133.2
; }$ I# Q6 j; [" e& yDNS1=114.114.114.114) w+ [( ^6 b, R% U5 x; g
DNS2=8.8.8.8
. j* f! B3 ^2 m+ s- xNAME=br0
! D0 J2 ^0 C9 ^, G1 S& l8 b& X; R6 ?
vim ifcfg-ens33# [, q, @) v$ B: J0 x9 b' Q
内容如下:
7 f6 ~5 [; B2 B) H/ {, Q$ d做部分修改与添加即可(两个文件ip地址相同)( ^2 g. \! o: R+ `
TYPE=OVSPort3 D4 p) g# s) \4 e3 A) B/ h1 X( W" j! F
BOOTPROTO=none
& ^. P* Z5 ?% E/ L; uNAME=ens33& Z$ R2 I5 O; c, A0 q% I
DEVICE=ens33: N; k& X/ ~6 A! A
ONBOOT=yes
  D; M* c% b- B: ^( mIPADDR=192.168.13.780 e. O  Z5 B! N) s
PREFIX=24
0 W" @8 S6 ~$ J1 ^+ N  o9 SGATEWAY=192.168.13.2
6 O# Z  P" ^: V3 {DNS1=114.114.114.114
. {* u* u# f2 I* _% `- f' EDEVICETYPE=ovs$ f( s7 |, f/ v9 ~
OVS_BRIDGE=br0/ i1 {7 u! E; J/ J: d

1 r& X1 e8 Q# \; P8 x' B2 p4 psystemctl restart network      # 重启网卡服务生效
1 m" Y+ j1 k, I4、查看状态3 \3 L: o' E% \' D: a: l

6 Y, W, n4 a. q  B4 y$ _4 d7 bovs-vsctl show
$ i  ~0 Y  {8 _  @8 ^' R- G0 s; N4 }

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 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上新增加了一个端口:

6 N& ?5 b0 V5 ]) ~' o
将来这个端口将通过带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
1 r  x" w8 T! J0 x) c* A
" Q5 F5 {) E$ Q% m
, O) Q! R7 f" w; V: D! I7 f5 ^! W

: g* I! j% H0 h5 y/ F" `3 N; z# l5 A3 s2 {* s, W# g3 P

2 p" c0 n  @" r5 j0 _* Y4 P7 n9 i
3 S4 O7 O. S0 B( G5 A$ I, s6 d

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-9-25 11:31:22 | 显示全部楼层
///生成ovs桥并绑定到物理网口,假定物理网口名为eth0,ovs桥命名为ovsbr
. U' Y+ `4 \2 |$ d2 v; M* [. W6 \0 q$ sudo ovs-vsctl add-br ovsbr9 n: V2 {5 K4 {$ t* t
$ sudo ovs-vsctl add-port ovsbr eth0
5 o" p( I( i" `: ^7 f; M6 H+ Q
! s( h. G7 W2 A* ]% r///修改物理网口网络配置文件, e. y5 J+ Q7 R. ?
# /etc/sysconfig/network/ifcfg-eth0! M6 {% m; v7 l( o! w
STARTMODE='auto'0 R* u/ G9 N! e$ x, z( _* z& M' Y
BOOTPROTO='none'
7 o- M1 p$ k( [3 T- y: j6 k" x///ovs创建桥时默认会自动创建同名称的虚拟内部网络接口供虚拟化主机通信
  l8 m5 U) y  g, o8 D///因此,创建新的网络配置文件,用于物理主机访问网络' h; f: a) D2 E. y& k
# /etc/sysconfig/network/' C$ \7 @0 O7 I2 u% f# p
# sudo touch ifcfg-ovsbr
! f- y( t' [2 c4 M6 l% w3 m0 \! Q STARTMODE=auto+ G' t& C4 X2 d7 v$ u- i
BOOTPROTO=dhcp) z8 \. [1 K  r  E5 R  z0 J' C
OVS_BRIDGE=yes0 Q5 i4 ^: z& W) f
OVS_BRIDGE_PORT_DEVICE=eth0
: }  O2 N& ^9 b///重启网络使配置生效$ j( n5 q$ V  T2 v' f  }& Z* W
# sudo systemctl restart network7 F3 x& {, B* K$ \0 w+ t9 \
///检查网络状态,正常如下显示9 O3 Q1 F+ z8 G- E+ ]! b
# ip a( J& u8 C* X9 G. r* i+ q) ~
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000
6 p! J. Y8 _+ }$ o( |- p3: ovs-system: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
8 w+ ?  A# t+ {8 N: `! t4: ovsbr: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
8 o  S7 B6 R$ ]! a/ ^1 ?% h3 X; m    inet xxx.xxx.xxx.xxx/xx brd xxx.xxx.xxx.xxx scope global3 C9 x. H0 d0 g7 R: k& |
       valid_lft forever preferred_lft forever
, k! t/ l4 K4 y5 T5 q+ v5 e! x    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link 4 T3 i2 f" h$ ^1 s
       valid_lft forever preferred_lft forever" u. \: }; R. [/ N$ @2 G
9 g7 A1 D4 F; |
###nm是直接写数据到ovs数据库,因此,需要手动创建ovs桥,端口(port)及接口(interface)
  ?3 l7 e0 u! Z. {9 G# \8 l! C1 h/ j, d0 b0 z" D
# nmcli conn add type ovs-bridge conn.interface ovsbr    ###创建ovs桥
& K) ~$ b% C8 u# nmcli conn add type ovs-port conn.interface ovsbr master ovsbr   ###创建内部port& e2 Y& ^3 m0 v- J1 r+ A
# nmcli conn add type ovs-interface slave-type ovs-port conn.interface ovsbr  master ovsbr ipv4.method auto   ###创建内部interface,并采用dhcp获取ip4 L6 t( \1 N: N1 O
# nmcli conn add type ovs-port conn.interface eth0 master ovsbr   ###创建物理网口port
3 k# }, i8 d/ c# nmcli conn add type ethernet conn.interface eth0 master eth0   ###绑定到物理网口interface
% j9 I1 y- r1 W3 u0 `$ Y# sudo systemctl restart NetworkManager   ///重启网络服务使配置生效. V1 q8 F" X0 n# P. I
///ovs接口状态如下4 l+ B8 Q: X+ ]* ^9 h  \7 M) \  {
# sudo ovs-vsctl show
5 \1 Y8 g) ^; T- T7 o    Bridge ovsbr  C! C- x, m, ]0 Y7 D
        Port ovsbr4 P  ?$ L% w$ e" T( q
            Interface ovsbr
7 b3 E8 ~" t- y/ [% [3 b; P                type: internal
. [: A" W- \* G2 o        Port eth0
( e5 r  j6 f6 _9 M  Q" k. h            Interface eth0! Y( z; W. l0 d: e, v$ n( [
    ovs_version: "2.15.2"
& Z3 v3 v* F& u8 g  D6 Z' p
8 S7 Z3 z1 C4 |0 p+ w
% d* {& W( S2 l" t! L5 U# h3 `- ^1 |7 _% H; ]* n
virsh net-edit network   ###编辑名称为network的网络
5 ~  z1 a- d. B' a    <network>
( C: L2 J. O$ }4 R, m      <name>ovsbr</name>
+ o% d, S* \( _+ |      <uuid></uuid>$ G* j' E) a! Z
      <forward mode='bridge'/>
* `  L& T4 z' b0 ]; S& D1 F. a$ \      <bridge name='ovsbr'/>, V( v6 k" K$ p& I+ M% e* J0 t
      <virtualport type='openvswitch'/>
5 ?$ M9 D2 ?) l3 ~; Z4 N* V    </network>/ k9 s/ a3 c* z: A) }* C" Z4 S
: b& x0 ~' T) N: D: F9 K$ T
##配置文件为xml格式,转发模式改为bridge,桥名称即为ovs桥名称,虚拟端口类型为openvswitch
( G9 k+ \( v0 X& m
' c# T1 H, R1 L* p6 f7 K+ E( E* N: F' Z* X6 P: w: L1 m* s
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 02:03 , Processed in 0.021014 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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