Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Kube OVN
Commits
cc64f5c1
Unverified
Commit
cc64f5c1
authored
3 years ago
by
张祖建
Committed by
GitHub
3 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #1261 from zhangzujian/fix-underlay-reboot
transfer IP/route after OVS startup
parents
ab528ae3
017e5125
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
dist/images/start-ovs.sh
+70
-0
dist/images/start-ovs.sh
with
70 additions
and
0 deletions
+70
-0
dist/images/start-ovs.sh
+
70
-
0
View file @
cc64f5c1
...
...
@@ -61,6 +61,76 @@ fi
/usr/share/openvswitch/scripts/ovs-ctl restart
--no-ovsdb-server
--system-id
=
random
/usr/share/openvswitch/scripts/ovs-ctl
--protocol
=
udp
--dport
=
6081 enable-protocol
sleep
1
function
handle_underlay_bridges
()
{
bridges
=(
$(
ovs-vsctl
--no-heading
--columns
=
name find bridge external-ids:vendor
=
kube-ovn
)
)
for
br
in
${
bridges
[@]
}
;
do
echo
"handle bridge
$br
"
ip
link set
$br
up
ports
=(
$(
ovs-vsctl list-ports
$br
)
)
for
port
in
${
ports
[@]
}
;
do
port_type
=
$(
ovs-vsctl
--no-heading
--columns
=
type
find interface
name
=
$port
)
if
[
!
"x
$port_type
"
=
'x""'
]
;
then
continue
fi
echo
"handle port
$port
on bridge
$br
"
ipv4_routes
=(
$(
ip
-4
route show dev
$port
|
tr
' '
'#'
)
)
ipv6_routes
=(
$(
ip
-6
route show dev
$port
|
tr
' '
'#'
)
)
set
+o pipefail
addresses
=(
$(
ip addr show dev
$port
|
grep
-E
'^\s*inet[6]?\s+'
|
grep
-w
global |
awk
'{print $2}'
)
)
set
-o
pipefail
# transfer IP addresses
for
addr
in
${
addresses
[@]
}
;
do
printf
"delete address
$addr
on
$port
\n
"
ip addr del
$addr
dev
$port
||
true
printf
"add/replace address
$addr
to
$br
\n
"
ip addr replace
$addr
dev
$br
done
# transfer IPv4 routes
default_ipv4_routes
=()
for
route
in
${
ipv4_routes
[@]
}
;
do
r
=
$(
echo
$route
|
tr
'#'
' '
)
if
echo
$r
|
grep
-q
-w
'scope link'
;
then
printf
"add/replace IPv4 route
$r
to
$br
\n
"
ip
-4
route replace
$r
dev
$br
else
default_ipv4_routes
=(
${
default_ipv4_routes
[@]
}
$route
)
fi
done
for
route
in
${
default_ipv4_routes
[@]
}
;
do
r
=
$(
echo
$route
|
tr
'#'
' '
)
printf
"add/replace IPv4 route
$r
to
$br
\n
"
ip
-4
route replace
$r
dev
$br
done
# transfer IPv6 routes
default_ipv6_routes
=()
for
route
in
${
ipv6_routes
[@]
}
;
do
r
=
$(
echo
$route
|
tr
'#'
' '
)
if
echo
$r
|
grep
-q
-w
'scope link'
;
then
printf
"add/replace IPv6 route
$r
to
$br
\n
"
ip
-6
route replace
$r
dev
$br
else
default_ipv6_routes
=(
${
default_ipv6_routes
[@]
}
$route
)
fi
done
for
route
in
${
default_ipv6_routes
[@]
}
;
do
r
=
$(
echo
$route
|
tr
'#'
' '
)
printf
"add/replace IPv6 route
$r
to
$br
\n
"
ip
-6
route replace
$r
dev
$br
done
done
done
}
handle_underlay_bridges
function
gen_conn_str
{
if
[[
-z
"
${
OVN_DB_IPS
}
"
]]
;
then
if
[[
"
$ENABLE_SSL
"
==
"false"
]]
;
then
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment