Bug 1217302

Summary: Fail to connect graphical console via some ipv6 address eg:"0::0"
Product: Red Hat Enterprise Linux 7 Reporter: fwu
Component: virt-managerAssignee: Giuseppe Scrivano <gscrivan>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: gscrivan, juzhou, mzhan, tzheng, xiaodwan
Target Milestone: rcKeywords: Upstream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-manager-1.2.0-1-el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-19 05:25:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description fwu 2015-04-30 05:09:09 UTC
Description
Fail to connect graphical console via some ipv6 address eg:"0::0"

Version:
virt-manager-1.1.0-12.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1.On Client host,configure ipv6 global addr
ifconfig eth0 inet6 add 2004b8:ac10:fe01::2/64

2.On Server host,configure ipv6 global addr
ifconfig eth0 inet6 add 2004b8:ac10:fe01::3/64

3.On client host,launch virt-manager to add a remote ipv6 connection.

4."File"->"Add connection"->"Hypervisor(QEMU/KVM)->"Connect to remote host"->"method(ssh)->"Hostname([2004b8:ac10:fe01::3])->"Connect".

5.Check the graphical console of guests with "Edit"->"Virtual Machine Details"

Expected Results:
The graphical console can be displayed normally.

Actual Results:

Error message: 'Connecting to grapical console' will appear when using the following address:
0::0, ::0, 0::, 0:0:0:0:0:0:0:0.

xml sample:
<graphics type='spice' autoport='yes' listen='0::'>
     <listen type='address' address='0::'/>
</graphics>

Unless the address of display server is set as '::', the graphical console cannot be displayed.

xml sample:
<graphics type='spice' autoport='yes' listen='::'>
    <listen type='address' address='::'/>
</graphics>

Additional info:
1. The graphical console can be connected via ipv6 by using virt-viewer and remote-viewer.

2. Discussed with the developer, and the developer update the patch upstream. Decide to file the bug to track this issue on RHEL7.

Patch upstream:

 commit 82eaf93b4a5236ecb0a032769296095a749df2c9
Author: Giuseppe Scrivano <gscrivan>
 Date:  Fri Apr 24 11:01:43 2015 +0200

sshtunnels: use ipaddr to check if address is loopback or unspecified
 It supports IPv6 addresses written as "0::0", "0:0::0".
 Signed-off-by: Giuseppe Scrivano <gscrivan>

Comment 3 fwu 2015-05-21 03:29:25 UTC
I can reproduce this bug with new build:
virt-manager-1.2.0-3.el7.noarch

Steps:
1.On Client host,configure ipv6 global addr: ifconfig enp0s25 inet6 add 2004:db8:ac10:fe01::2/64
2.On Server host,configure ipv6 global addr: ifconfig enp0s25 inet6 add 2004:db8:ac10:fe01::3/64
3.On client host,launch virt-manager to add a remote ipv6 connection.
  "File">"Add connection">"Hypervisor(QEMU/KVM)>"Connect to remote host">"method(ssh)>"Hostname([2004:db8:ac10:fe01::3])>"Connect".
4.Check the graphical console of guests with "Edit"->"Virtual Machine Details"

Result:
1. Error message: 'Connecting to grapical console' will appear when using the following address: 0::0, 0:0::0

xml sample for 0::0
<graphics type='spice' autoport='yes' listen='0::0'>
     <listen type='address' address='0::0'/>
</graphics>

xml sample for 0:0::0
<graphics type='spice' autoport='yes' listen='0:0::0'>
    <listen type='address' address='0:0::0'/>
</graphics>

According to the results above, move this bug from ON_QA to ASSIGNED

Additionally, I tested the following options and the result are listed below.
1. Error message: 'Connecting to grapical console' will appear when using 'All interfaces' mode in "Virtual Hardware Details"->"Spice Server"->"Address"

xml sample:
<graphics type='spice' port="-1" autoport='no' listen='0.0.0.0'>
    <listen type='address' address='0.0.0.0'/>
</graphics>

2. Can connected to remote grapical console when using 'Localhost only' mode in "Virtual Hardware Details"->"Spice Server"->"Address"

xml sample:
<graphics type='spice' port="-1" autoport='no' listen='127.0.0.1'>
    <listen type='address' address='127.0.0.1'/>
</graphics>

For these are ipv4 addresses, it is possible that graphical console cannot be connected. But the result shows that for some address, the graphical console can be shown successfully. I am wondering if it could be a problem.
Hope you could help me with this issue when you are available. 
According to this, NEED_INFO from the developer.

Comment 4 Giuseppe Scrivano 2015-05-21 09:53:44 UTC
it works for me, are you sure the client can connect to the port specified on the server?

To be sure, please execute "ip6tables -F" on the server, does it solve the problem for you?

About IPv4 addresses, are you trying to connect to a client which has that configuration from an IPv6 connection?  It is a problem only if you are trying to connect using IPv4.

Comment 5 fwu 2015-05-22 09:00:38 UTC
I did as you said with build:
virt-manager-1.2.0-3.el7.noarch

Steps:
1.On Client host,configure ipv6 global addr: 
#ifconfig enp0s25 inet6 add 2004:db8:ac10:fe01::2/64
2.On Server host,configure ipv6 global addr: 
#ifconfig enp0s25 inet6 add 2004:db8:ac10:fe01::3/64
3. Make sure on client and server configure: #ip6tables -F
4.On client host,launch virt-manager to add a remote ipv6 connection.
  "File">"Add connection">"Hypervisor(QEMU/KVM)>"Connect to remote host">"method(ssh)>"Hostname([2004:db8:ac10:fe01::3])>"Connect".
5.Check the graphical console of guests with "Edit"->"Virtual Machine Details"

Result:
After Step 5, connect host and client can be connected with graphical console. 

For the ipv4 address issue, steps are the following:
1.On Client host,configure ipv6 global addr: 
#ifconfig enp0s25 inet6 add 2004:db8:ac10:fe01::2/64
2.On Server host,configure ipv6 global addr: 
#ifconfig enp0s25 inet6 add 2004:db8:ac10:fe01::3/64
3.On client host,launch virt-manager to add a remote ipv6 connection.
  "File">"Add connection">"Hypervisor(QEMU/KVM)>"Connect to remote host">"method(ssh)>"Hostname([2004:db8:ac10:fe01::3])>"Connect".
4.On "Virtual Hardware Details"->"Spice Server"->"Address", select 'All interfaces' mode.
Result: 
5.Run the VM, check the graphical console of guests with "Edit"->"Virtual Machine Details"

Result:
After step 5, Error message: 'Connecting to grapical console' will appear.

xml sample:
<graphics type='spice' port="-1" autoport='no' listen='0.0.0.0'>
    <listen type='address' address='0.0.0.0'/>
</graphics>

For these are ipv4 addresses automatically setup by virt-manager, it is possible that graphical console cannot be connected. I did use ipv6 connection and it is true that only if trying to connect using IPv4, this issue would be a problem.

According to the content on this comment, move this bug from ASSIGNED to VERIFIED.

Comment 6 fwu 2015-05-22 09:17:11 UTC
I'm sorry for the typo in Comment 5, 'I did use ipv6 connection and it is true that only if trying to connect using IPv4, this issue would NOT be a problem.'

Comment 10 errata-xmlrpc 2015-11-19 05:25:36 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-2206.html