将设为首页浏览此站
开启辅助访问 天气与日历 收藏本站联系我们切换到窄版

易陆发现论坛

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

neutron相关文件介绍

[复制链接]
发表于 2021-10-8 17:15:33 | 显示全部楼层 |阅读模式

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

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

x
配置neutron.conf
- w( @  R& [" `+ h, X- H5 |% Z复制代码
# ?, J- s6 v# X5 ^5 d3 ~# F# 在全部控制节点操作,以controller01节点为例;. A6 s$ P% o5 }0 k
# 注意”bind_host”参数,根据节点修改;
- V  d& A# y! Z  f' U* i# 注意neutron.conf文件的权限:root:neutron4 p+ O7 L, f3 I; }2 r3 h7 i, D
[root@controller01 ~]# cp /etc/neutron/neutron.conf /etc/neutron/neutron.conf.bak% s2 s/ L2 a' C4 n8 H
[root@controller01 ~]# egrep -v "^$|^#" /etc/neutron/neutron.conf; z' P* k$ s5 T4 d) [
[DEFAULT]  h# R4 z0 d$ ^' U8 i
bind_host = 172.30.200.31
8 W0 j8 b2 B+ h/ O+ n' t* u: aauth_strategy = keystone
$ {# U" [0 [5 Y3 W, A5 A, Ncore_plugin = ml2
& v. l' y  u+ x- m( D9 o$ H3 \service_plugins = router, I. Y' d6 e- T  \3 o
allow_overlapping_ips = True
$ j7 g0 \4 [3 ], @+ Vnotify_nova_on_port_status_changes = true' e5 @0 u# V$ C0 X: [6 @& g
notify_nova_on_port_data_changes = true# q8 V- A" k% l- w! ?4 |
# l3高可用,可以采用vrrp模式或者dvr模式;
+ d" d8 Z- e% o: K9 @# vrrp模式下,在各网络节点(此处网络节点与控制节点混合部署)以vrrp的模式设置主备virtual router;mater故障时,virtual router不会迁移,而是将router对外服务的vip漂移到standby router上;
3 F! Z7 ^& t2 q) P# dvr模式下,三层的转发(L3 Forwarding)与nat功能都会被分布到计算节点上,即计算节点也有了网络节点的功能;但是,dvr依然不能消除集中式的virtual router,为了节省IPV4公网地址,仍将snat放在网络节点上提供;
/ _  W. }: \, S: t% o! v# vrrp模式与dvr模式不可同时使用
5 b2 w, F, w7 {. i: b( o# Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP): http://www.cnblogs.com/sammyliu/p/4692081.html: w7 D( R/ f. N, l9 c
# Neutron 分布式虚拟路由(Neutron Distributed Virtual Routing): http://www.cnblogs.com/sammyliu/p/4713562.html
& [& M9 R' _4 o$ l/ F# “l3_ha = true“参数即启用l3 ha功能
. e. a2 N6 w2 i( |( V3 v6 tl3_ha = true
) E' f! t* a" \" d' N$ f# 最多在几个l3 agent上创建ha router' S0 r1 `$ t. z; G2 X
max_l3_agents_per_router = 3
' S% M5 i2 e7 I+ O# 可创建ha router的最少正常运行的l3 agnet数量; t  K' Q' k" l# }5 C& y
min_l3_agents_per_router = 2# v5 P8 G3 N/ \. t. Y5 ^: @# G
# vrrp广播网络
9 H, O' M  S# i- g& Nl3_ha_net_cidr = 169.254.192.0/18
  x& z. O5 V2 l/ i9 w0 n# ”router_distributed “参数本身的含义是普通用户创建路由器时,是否默认创建dvr;此参数默认值为“false”,这里采用vrrp模式,可注释此参数
5 H$ s2 ]) `5 @, i7 g8 s7 S# 虽然此参数在mitaka(含)版本后,可与l3_ha参数同时打开,但设置dvr模式还同时需要设置网络节点与计算节点的l3_agent.ini与ml2_conf.ini文件
; H) v! W8 A2 B4 j+ d# router_distributed = true, \7 O: u+ g  Q# h/ m0 U: u1 D
# dhcp高可用,在3个网络节点各生成1个dhcp服务器6 j, m, u: v" g8 ~% L7 x. O
dhcp_agents_per_network = 36 W8 O7 A$ `, L; H6 M% K
# 前端采用haproxy时,服务连接rabbitmq会出现连接超时重连的情况,可通过各服务与rabbitmq的日志查看;
3 J/ q# I6 e! q# P# transport_url = rabbit://openstack:rabbitmq_pass@controller:56732 `9 s% K- [5 K; K+ E
# rabbitmq本身具备集群机制,官方文档建议直接连接rabbitmq集群;但采用此方式时服务启动有时会报错,原因不明;如果没有此现象,强烈建议连接rabbitmq直接对接集群而非通过前端haproxy
9 F( O) v* Q2 ?+ l# B2 U; R/ Vtransport_url=rabbit://openstack:rabbitmq_pass@controller01:5672,controller02:5672,controller03:5672
0 R0 ]' U/ J9 F, c[agent]* |0 g9 r/ d( N* e
[cors]6 r: ]+ e2 f5 M6 k% _1 B
[database]9 A* |% g! `: z4 x# r. j- f2 r
connection = mysql+pymysql://neutron:neutron_dbpass@controller/neutron
' l. B# |2 K  v) T; l& R1 p6 o[keystone_authtoken]
7 P: I  |5 ?" I" Q5 G8 G; W& Kauth_uri = http://controller:50002 P- ~. O  b7 q* e
auth_url = http://controller:35357
! g( R2 A, j3 E# b) R; c# ~$ Zmemcached_servers = controller01:11211,controller:11211,controller:11211
. u; U. W" X% H8 Q* r' vauth_type = password
1 n# `* Z6 ~7 J8 Jproject_domain_name = default
3 _4 z) Y; d5 X$ G, A0 O) ruser_domain_name = default
) v/ m# T. ~9 L( F/ zproject_name = service
* a8 M7 y( P# ]8 U2 i7 c. Eusername = neutron$ j* O, s1 n0 ]9 r6 s& j; m
password = neutron_pass+ D) R: y0 T4 X; k* e, B. `+ K
[matchmaker_redis]
  d; j! E3 x3 ^( M; A8 j[nova]; a0 H# m- ~: T5 I: j# l
auth_url = http://controller:35357
2 _: P: s. |) a6 f9 e1 z0 S3 \4 I. jauth_type = password" N5 r: ?! l1 ]
project_domain_name = default: l% W% _- J9 R8 V
user_domain_name = default
3 ?* o) h3 i) q- fregion_name = RegionTest) d" C* u( h9 c; s& ^7 i2 H: \
project_name = service
% X' ^( S' e; h7 o  l* d; nusername = nova! z8 D) s5 N# {
password = nova_pass
) `4 {6 G) p: x2 ?% i+ m9 g! z" f[oslo_concurrency]
6 o  c" B$ ?1 f# Llock_path = /var/lib/neutron/tmp
7 G7 x4 i. r. A2 |[oslo_messaging_amqp]0 M% `  L. _0 E. S: j  a( l9 S
[oslo_messaging_kafka]% L$ n; c% f0 a" V
[oslo_messaging_notifications]( p4 s/ r( m" l& t
[oslo_messaging_rabbit]
5 S1 \% F( X1 s& t1 U[oslo_messaging_zmq]! ^' ~" O3 u/ e9 V$ E
[oslo_middleware]
+ T) u( j. w1 F3 e7 n[oslo_policy]
, r4 G# s; b  r8 }[quotas]* |0 t% X' {/ U' C+ L
[ssl]- M! {8 n6 c/ m; U+ H
复制代码3 v1 C' E3 `9 s& W; C5 y% C& E
5. 配置ml2_conf.ini
' v  X( ~" o* n( s: U复制代码% E) m  @; L( l0 z
# 在全部控制节点操作,以controller01节点为例;
. i/ W" j" j# C1 @! X; d% ~+ {# ml2_conf.ini文件的权限:root:neutron
5 B8 w4 Y9 s4 n8 n9 u3 |[root@controller01 ~]# cp /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugins/ml2/ml2_conf.ini.bak
* D; l1 h2 t/ A& V" P% M& e7 t[root@controller01 ~]# egrep -v "^$|^#" /etc/neutron/plugins/ml2/ml2_conf.ini
' ?# E) w  d/ S) p[DEFAULT]
6 N- E( E4 J6 I  K) m* I' p$ h[l2pop]
! W3 U; n$ x; y9 |, `8 Y0 x3 g! [7 I[ml2]3 U; Q* d& {+ Y! V4 A* R1 K8 @3 G. K
type_drivers = flat,vlan,vxlan
5 c( Q# L* d2 d( ^# S# ml2 mechanism_driver 列表,l2population对gre/vxlan租户网络有效* S8 V- L, i& S
mechanism_drivers = linuxbridge,l2population
6 Z0 q- t2 Z* W7 H6 E5 s" h# 可同时设置多种租户网络类型,第一个值是常规租户创建网络时的默认值,同时也默认是master router心跳信号的传递网络类型- K$ \' B$ |: j5 N9 J# m4 Z
tenant_network_types = vlan,vxlan,flat: F: Q1 \0 ?7 {
extension_drivers = port_security; d3 E+ _+ x5 W3 g" d" _
[ml2_type_flat]
9 n" b; y3 n6 o; ?$ T8 e# 指定flat网络类型名称为”external”,”*”表示任意网络,空值表示禁用flat网络, p* `$ I3 @% F; ~' `! z9 Y9 c
flat_networks = external# X( v) ?' U( Z4 R1 T8 t. Y
[ml2_type_geneve], c4 P7 y, S$ Y
[ml2_type_gre]! T2 I, F% U7 [# @" e/ |) L/ H
[ml2_type_vlan]& {( Y5 \: [' l/ t8 b: ]( N! Y$ ^
# 指定vlan网络类型的网络名称为”vlan”;如果不设置vlan id则表示不受限
- t/ y4 E, ]0 G( `; ]network_vlan_ranges = vlan:3001:3500
& u( H( G* q( ^6 P[ml2_type_vxlan]/ V; ?6 ]8 w. `- ~3 e
vni_ranges = 10001:20000( H; p& J- @' |# C' @& |! W3 c, b
[securitygroup]
0 {: E8 `5 t' v) q4 t! R- g+ Menable_ipset = true# ~5 ^+ B/ s, o! b
# 服务初始化调用ml2_conf.ini中的配置,但指向/etc/neutron/olugin.ini文件
$ h9 w. i( i' Y7 Y9 n& A[root@controller01 ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini+ t; n+ w+ m0 b& l6 `9 B
复制代码
: N# Z6 I( C. Q+ C* v  J; X: W" @6. 配置linuxbridge_agent.ini
, t( ?) F. [6 R$ Y% K( ]) m( S5 \1)配置linuxbridge_agent.ini9 [' X5 N% a0 O0 s% g& {7 Y3 v8 W
复制代码
# M/ F. H8 q% r& T( m8 A. T1 ^8 v/ g# 在全部控制节点操作,以controller01节点为例;
6 e* m4 v4 Y* X8 t# linuxbridge_agent.ini文件的权限:root:neutron3 {/ w0 `9 M2 @' j* l- p
[root@controller01 ~]# cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak2 ?% k9 U# F( Y9 j# j4 v8 Q
[root@controller01 ~]# egrep -v "^$|^#" /etc/neutron/plugins/ml2/linuxbridge_agent.ini
$ I3 ^7 h5 B. k) u[DEFAULT]) O% ~6 X, L! P
[agent]6 ?8 O; x- F% ?! y3 L" Z. ?
[linux_bridge]
1 A3 k1 ^( @6 T" @, h$ P( z# 网络类型名称与物理网卡对应,这里flat external网络对应规划的eth1,vlan租户网络对应规划的eth3,在创建相应网络时采用的是网络名称而非网卡名称;
( W) M* @- j' \# 需要明确的是物理网卡是本地有效,根据主机实际使用的网卡名确定;
0 {; i+ k- N# q$ x0 p( @# 另有” bridge_mappings”参数对应网桥/ U9 @" X+ j5 n, `" ~+ S
physical_interface_mappings = external:eth1,vlan:eth3
8 x  g0 n. C8 ~4 z9 n; I  T  g[network_log], w6 R, C/ `* r3 i$ [
[securitygroup]$ e6 J/ }: h- D& O" O) ~
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
, q* W/ T' @0 m' `. s) k5 nenable_security_group = true# S8 K: S' r5 }$ B& O
[vxlan]
# E' P* X  g: D% z( B; N, a* aenable_vxlan = true
2 U0 T! l# ^  o0 f  N# p( l# tunnel租户网络(vxlan)vtep端点,这里对应规划的eth2(的地址),根据节点做相应修改
" J4 d9 F  n$ @local_ip = 10.0.0.31
& Y! C* a9 k" f5 G7 D; I! @l2_population = true! q- f9 H) w6 u4 M1 r  L
复制代码
) Z. _$ O+ E7 `3 B! [2)配置内核参数4 E: v; W+ ~/ U/ |% c
复制代码' J3 H5 E: G0 d; G# l
# bridge:是否允许桥接;5 |5 L6 _5 a1 p0 W* K9 l0 R
# 如果“sysctl -p”加载不成功,报” No such file or directory”错误,需要加载内核模块“br_netfilter”;, `, l! x" F# [! ~# O- V+ V
# 命令“modinfo br_netfilter”查看内核模块信息;
% v$ @# V$ a* K# S. R6 Y# 命令“modprobe br_netfilter”加载内核模块
2 R% }( ?  F1 N! j  [% n: R; G' L2 x$ s[root@controller01 ~]# echo "# bridge" >> /etc/sysctl.conf' W+ s' x: }, n% m
[root@controller01 ~]# echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf2 H2 {: O3 s; w9 g9 }: |- b
[root@controller01 ~]# echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
$ I; }# y3 \+ {6 }[root@controller01 ~]# sysctl -p2 k8 i) E5 O4 @
复制代码
& C& u: X4 R! ^. s" J/ U7. 配置l3_agent.ini(self-networking)( K" q0 x6 H$ N1 e) U
复制代码6 w7 V! m/ O+ M  s! D
# 在全部控制节点操作,以controller01节点为例;
* m9 }. F+ I0 y% g! A: _9 u# l3_agent.ini文件的权限:root:neutron
9 P+ ]% c6 \% ^& F7 C0 ^5 U  r; h[root@controller01 ~]# cp /etc/neutron/l3_agent.ini /etc/neutron/l3_agent.ini.bak
( Z5 d/ m: q: z6 r! q4 S[root@controller01 ~]# egrep -v "^$|^#"  /etc/neutron/l3_agent.ini
" a1 @  }7 ?: `3 o; H! H[DEFAULT]
/ y! a' L1 X% o3 H+ z# iinterface_driver = linuxbridge# v7 I4 r! o' l1 c0 i
[agent]
# t" I: Y1 P$ d. n! ^" z9 o[ovs]7 V* V" P/ E5 R4 C0 A/ E; I: N
复制代码
) \, j" U" N0 u3 X' ^& Z* z0 D8. 配置dhcp_agent.ini
$ S6 d' c# }* ?! e! X0 E/ {! s2 ^1 E" w复制代码
1 f/ n' R& P- E3 ~9 z- A5 y# 在全部控制节点操作,以controller01节点为例;
' r5 O# Q9 \; i$ W, d  v7 @# 使用dnsmasp提供dhcp服务;) |5 n. K3 q+ F& v3 u6 o. W4 A
# dhcp_agent.ini文件的权限:root:neutron
+ o5 y  e" H" w9 _4 z[root@controller01 ~]# cp /etc/neutron/dhcp_agent.ini /etc/neutron/dhcp_agent.ini.bak4 N1 `6 }( }, I9 Z9 L
[root@controller01 ~]# egrep -v "^$|^#" /etc/neutron/dhcp_agent.ini
: @% h  j1 x0 l[DEFAULT]
3 ~/ b$ ^) [1 R" e; Minterface_driver = linuxbridge7 r, W2 t* O. j$ E3 W8 H
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
5 m) f; f+ E- X0 ^enable_isolated_metadata = true
% |. P; D8 X* i5 Y) o[agent]6 Z4 ?0 y* g+ [: E
[ovs]6 ?" s$ c; J: }) _
复制代码$ u: e$ c3 m. U
9. 配置metadata_agent.ini
. w7 E0 t7 b6 ~4 o) P- |复制代码, I: \8 T2 @2 J! e
# 在全部控制节点操作,以controller01节点为例;
- C5 @4 @+ A8 u% d( s+ `: j# metadata_proxy_shared_secret:与/etc/nova/nova.conf文件中参数一致;  t, h2 p0 Y1 r5 z) q5 ^, W9 V
# metadata_agent.ini文件的权限:root:neutron
  B7 t. o0 s4 r' }[root@controller01 ~]# cp /etc/neutron/metadata_agent.ini  /etc/neutron/metadata_agent.ini.bak
; V9 u& y" n0 Z2 g$ y/ ][root@controller01 ~]# egrep -v "^$|^#"  /etc/neutron/metadata_agent.ini
5 F* L* R6 s* a* v! J/ M$ S, G- k[DEFAULT]
) @% I( |& |+ h9 Xnova_metadata_host = controller
- ]$ c. p+ i1 h& d$ u& ^* Wmetadata_proxy_shared_secret = neutron_metadata_secret
: G* d3 Z3 N: C[agent]* B$ p0 u, O0 f" `/ u2 o: w* k
[cache]
8 d  O. A- t7 Q' V( m7 m复制代码# k$ f( P$ g5 ^  L
10. 配置nova.conf
; d3 F4 X0 ^7 o) X" i, F  n复制代码
. T, Z1 \$ W& U! `3 ~5 u# 在全部控制节点操作,以controller01节点为例;: N! q( n) @# `6 X
# 配置只涉及nova.conf的”[neutron]”字段;: i: C0 I, Y! f2 X9 U' |: |
# metadata_proxy_shared_secret:与/etc/neutron/metadata_agent.ini文件中参数一致8 s% U. L9 f; ~2 N& p0 n
[root@controller01 ~]# vim /etc/nova/nova.conf
/ v, Z; q- b8 G: R' |: n) P[neutron]0 G* H) w8 c6 I/ n
url = http://controller:9696
6 E- n% B, G2 j: j2 Sauth_url = http://controller:35357
& b1 r9 C. k8 r- V( cauth_type = password1 a  [: g: c" Z) o8 ?1 g' j+ g
project_domain_name = default
6 F  |. \" b' S( r7 tuser_domain_name = default: W8 o5 v3 x3 p% L3 t. c7 r
region_name = RegionTest0 b. q9 l: [6 j/ n
project_name = service  r: D, S" M/ Z: P& ^
username = neutron$ B% [3 m8 j7 T* P
password = neutron_pass: v# }* x% a: d1 L% q' F
service_metadata_proxy = true! v8 r/ ?0 z. }  V3 F' ^
metadata_proxy_shared_secret = neutron_metadata_secret( A7 x: Z. M; D
复制代码3 O; @0 ?# f  Z5 `
11. 同步neutron数据库: c9 |* u$ N. l+ ]
# 任意控制节点操作;: l( r, M- M0 ~% j
[root@controller01 ~]# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
# A8 _# p$ ^& c5 H1 _# 验证
4 v5 l- ~: r9 E- o8 V+ q[root@controller01 ~]# mysql -h controller01 -u neutron -pneutron_dbpass -e "use neutron;show tables;"
: }7 p' @- K6 J4 o, w12. 启动服务
4 c  c3 B, s8 }0 P复制代码
2 |, X' q* S# J  S& r! G7 g# 全部控制节点操作;% k4 u% m) o1 x/ f" L
# 变更nova配置文件,首先需要重启nova服务4 n' B" l  _9 f4 n
[root@controller01 ~]# systemctl restart openstack-nova-api.service. ?3 ]7 V' F: u' ~! F6 n2 N$ @
/ A% {# [2 l" k
# 开机启动
! ^- X* |  Q7 N4 i- ], b! K[root@controller01 ~]# systemctl enable neutron-server.service \
" L7 K- Z! p8 y neutron-linuxbridge-agent.service \  F' |0 w. ?8 a' {, D
neutron-l3-agent.service \. `0 `- K; f; a
neutron-dhcp-agent.service \" f  o$ `# R( E# v
neutron-metadata-agent.service% o7 q& b; a- H. `6 J. @' l
# 启动" E- S- ~8 M- x' i/ J" O- }
[root@controller01 ~]# systemctl restart neutron-server.service
1 J/ [% D. B* A2 o* S7 r7 r9 k, o[root@controller01 ~]# systemctl restart neutron-linuxbridge-agent.service7 i3 r& V1 h3 \$ {4 U0 x1 z
[root@controller01 ~]# systemctl restart neutron-l3-agent.service7 L% z" P3 D, t: D
[root@controller01 ~]# systemctl restart neutron-dhcp-agent.service( _" N" \5 a% j3 ?! G3 C1 l
[root@controller01 ~]# systemctl restart neutron-metadata-agent.service
) a4 Q4 q( m5 s9 m, w4 d& W复制代码5 M$ k' b$ r4 Q, Q. i) c+ q
13. 验证
" d; M& F* s% i/ \5 a复制代码
4 y2 X  X$ |8 y[root@controller01 ~]# . admin-openrc ) f1 {* _; I( l4 l6 {6 d# O
# 查看加载的扩展服务$ O% E/ C& \( B4 Y( ?
[root@controller01 ~]# openstack extension list --network
, z0 \& v& u" i5 i, F% G# 查看agent服务8 j( J! n  ~" F4 ?
[root@controller01 ~]# openstack network agent list
6 \' I3 H3 q4 V复制代码
; O1 _- w) O; h  ?; \1 l" Q. E
2 m. D9 w# m4 s( [5 d! B$ c! a14. 设置pcs资源
) ]5 |  w% S1 X1 s* y" c复制代码
) R4 l) t- n3 ^$ H9 M0 ]% x' H9 n# 在任意控制节点操作;% X% V. `5 H3 j1 e
# 添加资源neutron-server,neutron-linuxbridge-agent,neutron-l3-agent,neutron-dhcp-agent与neutron-metadata-agent2 @9 h# n7 e0 Z; c9 [
[root@controller01 ~]# pcs resource create neutron-server systemd:neutron-server --clone interleave=true
$ b6 ]  e7 p7 n7 w' A! m[root@controller01 ~]# pcs resource create neutron-linuxbridge-agent systemd:neutron-linuxbridge-agent --clone interleave=true3 W+ h' B9 J* S: \) @% {! B
[root@controller01 ~]# pcs resource create neutron-l3-agent systemd:neutron-l3-agent --clone interleave=true6 [" N+ B' p" k* Z) Q8 q
[root@controller01 ~]# pcs resource create neutron-dhcp-agent systemd:neutron-dhcp-agent --clone interleave=true
  |0 C+ K5 `, t5 u) w1 j[root@controller01 ~]# pcs resource create neutron-metadata-agent systemd:neutron-metadata-agent --clone interleave=true
+ \2 k; s2 n, W  a+ e! Y# 查看pcs资源. L8 Y; O7 W4 ^  L1 w
[root@controller01 ~]# pcs resource- `0 [7 ]* m  f
 楼主| 发表于 2021-10-8 17:17:29 | 显示全部楼层
# 在全部控制节点安装neutron相关服务,以controller01节点为例& h& |/ f7 r: X- @5 E* J5 {
[root@controller01 ~]# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge python-neutronclient ebtables ipset -y
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

QQ|返回首页|Archiver|手机版|小黑屋|易陆发现 点击这里给我发消息

GMT+8, 2021-11-28 19:29 , Processed in 0.047851 second(s), 22 queries .

Powered by LR.LINUX.cloud bbs168x X3.2 Licensed

© 2012-2022 Comsenz Inc.

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