diff --git a/openvswitch/templates/bin/_openvswitch-vswitchd.sh.tpl b/openvswitch/templates/bin/_openvswitch-vswitchd.sh.tpl index 61364aa1a6..5d4e15c42e 100644 --- a/openvswitch/templates/bin/_openvswitch-vswitchd.sh.tpl +++ b/openvswitch/templates/bin/_openvswitch-vswitchd.sh.tpl @@ -47,6 +47,12 @@ if [ -n "${external_bridge}" ] ; then # add external interface to the bridge ovs-vsctl --no-wait --may-exist add-port $external_bridge $external_interface ip link set dev $external_interface up + ip link set dev $external_bridge up + # move ip address from physical interface to the bridge + for IP in $(ip addr show dev $external_interface | grep ' inet ' | awk '{print $2}'); do + ip addr add $IP dev $external_bridge + ip addr del $IP dev $external_interface + done fi fi @@ -58,6 +64,12 @@ if [ -n "{{- $br -}}" ] ; then if [ -n "{{- $phys -}}" ] ; then ovs-vsctl --no-wait --may-exist add-port "{{ $br }}" "{{ $phys }}" ip link set dev "{{ $phys }}" up + ip link set dev "{{ $br }}" up + # move ip address from physical interface to the bridge + for IP in $(ip addr show dev "{{ $phys }}" | grep ' inet ' | awk '{print $2}'); do + ip addr add $IP dev "{{ $br }}" + ip addr del $IP dev "{{ $phys }}" + done fi fi {{- end }}