Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Fix Version/s: OpenVZ-legacy
-
Component/s: Containers::Userspace
-
Security Level: Public
-
Environment:Operating System: Other
Platform: Other
-
External issue URL:
-
External issue ID:2001
Description
# uname -a
Linux foo 2.6.32-042stab037.1 #1 SMP Fri Sep 16 22:18:06 MSD 2011 x86_64 x86_64 x86_64 GNU/Linux
# rpm -qa |grep vzctl
vzctl-3.0.29-1.x86_64
vzctl-lib-3.0.29-1.x86_64
Note: tested with 3.0.29.1 also.
First issue:
Default behavior changed in adding ip addresses. Before 3.0.29 default behavior was to add ip addresses with a /32 subnetmask. Now the default behavior is to add ip addresses with a /24 subnetmask. This causes confusion and breaks the container from talking to another host in the same /24 netblock.
A major change in functionality like this should not be done in a point release but a major release.
Second issue:
Routes didn't use to show up for interfaces added. I don't know if this was a bug or a intentional but now they show up in the routing table.
Third and critical issue:
When added a host with a /32 netmask, everything appears fine but networking doesn't work.
Example for issue 1 and 2:
3.0.28.3:
# ifconfig venet0:0
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:64.142.122.2 P-t-P:64.142.122.2 Bcast:64.142.122.2 Mask:255.255.255.255
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tunl0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 venet0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
3.0.29 and 3.0.29.1:
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:64.142.122.2 P-t-P:64.142.122.2 Bcast:64.142.122.255 Mask:255.255.255.0
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
69.12.208.0 0.0.0.0 255.255.255.0 U 0 0 0 venet0
64.142.122.0 0.0.0.0 255.255.255.0 U 0 0 0 venet0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tunl0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 venet0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
Example for issue 3:
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:64.142.122.2 P-t-P:64.142.122.2 Bcast:64.142.122.2 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tunl0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 venet0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
# traceroute -n 4.4.4.4
traceroute to 4.4.4.4 (4.4.4.4), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
# tcpdump -i venet0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
^C^C
Linux foo 2.6.32-042stab037.1 #1 SMP Fri Sep 16 22:18:06 MSD 2011 x86_64 x86_64 x86_64 GNU/Linux
# rpm -qa |grep vzctl
vzctl-3.0.29-1.x86_64
vzctl-lib-3.0.29-1.x86_64
Note: tested with 3.0.29.1 also.
First issue:
Default behavior changed in adding ip addresses. Before 3.0.29 default behavior was to add ip addresses with a /32 subnetmask. Now the default behavior is to add ip addresses with a /24 subnetmask. This causes confusion and breaks the container from talking to another host in the same /24 netblock.
A major change in functionality like this should not be done in a point release but a major release.
Second issue:
Routes didn't use to show up for interfaces added. I don't know if this was a bug or a intentional but now they show up in the routing table.
Third and critical issue:
When added a host with a /32 netmask, everything appears fine but networking doesn't work.
Example for issue 1 and 2:
3.0.28.3:
# ifconfig venet0:0
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:64.142.122.2 P-t-P:64.142.122.2 Bcast:64.142.122.2 Mask:255.255.255.255
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tunl0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 venet0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
3.0.29 and 3.0.29.1:
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:64.142.122.2 P-t-P:64.142.122.2 Bcast:64.142.122.255 Mask:255.255.255.0
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
69.12.208.0 0.0.0.0 255.255.255.0 U 0 0 0 venet0
64.142.122.0 0.0.0.0 255.255.255.0 U 0 0 0 venet0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tunl0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 venet0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
Example for issue 3:
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:64.142.122.2 P-t-P:64.142.122.2 Bcast:64.142.122.2 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tunl0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 venet0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0
# traceroute -n 4.4.4.4
traceroute to 4.4.4.4 (4.4.4.4), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
# tcpdump -i venet0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
^C^C