[pve-devel] [PATCH container 3/3] centos: fixup ipv6 out-of-subnet route
Wolfgang Bumiller
w.bumiller at proxmox.com
Mon Apr 25 16:20:43 CEST 2016
Centos needs these in route6-$iface, not route-$iface.
It also seems to make sense to not include the
IPV6_DEFAULTGW when a route6-$iface file is used containing
the default gateway.
Also adding the device to the routes.
---
src/PVE/LXC/Setup/CentOS.pm | 12 ++++++++----
src/test/run_setup_tests.pl | 4 ++++
.../etc/sysconfig/network-scripts/ifcfg-eth0.exp | 1 -
.../etc/sysconfig/network-scripts/route-eth0.exp | 4 +---
.../etc/sysconfig/network-scripts/route6-eth0.exp | 4 ++++
5 files changed, 17 insertions(+), 8 deletions(-)
create mode 100644 src/test/test-centos6-002/etc/sysconfig/network-scripts/route6-eth0.exp
diff --git a/src/PVE/LXC/Setup/CentOS.pm b/src/PVE/LXC/Setup/CentOS.pm
index c0330c2..2becc35 100644
--- a/src/PVE/LXC/Setup/CentOS.pm
+++ b/src/PVE/LXC/Setup/CentOS.pm
@@ -177,7 +177,9 @@ sub setup_network {
my $filename = "/etc/sysconfig/network-scripts/ifcfg-$d->{name}";
my $routefile = "/etc/sysconfig/network-scripts/route-$d->{name}";
+ my $route6file = "/etc/sysconfig/network-scripts/route6-$d->{name}";
my $routes = '';
+ my $routes6 = '';
my $header = "DEVICE=$d->{name}\nONBOOT=yes\n";
my $data = '';
@@ -195,7 +197,7 @@ sub setup_network {
$data .= "GATEWAY=$d->{gw}\n";
if (!PVE::Network::is_ip_in_cidr($d->{gw}, $d->{ip}, 4)) {
$routes .= "$d->{gw} dev $d->{name}\n";
- $routes .= "default via $d->{gw}\n";
+ $routes .= "default via $d->{gw} dev $d->{name}\n";
}
}
}
@@ -214,11 +216,12 @@ sub setup_network {
} else {
$data .= "IPV6ADDR=$d->{ip6}\n";
if (defined($d->{gw6})) {
- $data .= "IPV6_DEFAULTGW=$d->{gw6}\n";
if (!PVE::Network::is_ip_in_cidr($d->{gw6}, $d->{ip6}, 6) &&
!PVE::Network::is_ip_in_cidr($d->{gw6}, 'fe80::/10', 6)) {
- $routes .= "$d->{gw6} dev $d->{name}\n";
- $routes .= "default via $d->{gw6}\n";
+ $routes6 .= "$d->{gw6} dev $d->{name}\n";
+ $routes6 .= "default via $d->{gw6} dev $d->{name}\n";
+ } else {
+ $data .= "IPV6_DEFAULTGW=$d->{gw6}\n";
}
}
}
@@ -228,6 +231,7 @@ sub setup_network {
$header .= "BOOTPROTO=$bootproto\n";
$self->ct_file_set_contents($filename, $header . $data);
$self->ct_modify_file($routefile, $routes, delete => 1, prepend => 1);
+ $self->ct_modify_file($route6file, $routes6, delete => 1, prepend => 1);
}
my $sysconfig_network = "/etc/sysconfig/network";
diff --git a/src/test/run_setup_tests.pl b/src/test/run_setup_tests.pl
index fc92dbb..b103cfa 100755
--- a/src/test/run_setup_tests.pl
+++ b/src/test/run_setup_tests.pl
@@ -53,12 +53,16 @@ sub run_test {
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/route-eth0
+ /etc/sysconfig/network-scripts/route6-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/route-eth1
+ /etc/sysconfig/network-scripts/route6-eth1
/etc/sysconfig/network-scripts/ifcfg-eth2
/etc/sysconfig/network-scripts/route-eth2
+ /etc/sysconfig/network-scripts/route6-eth2
/etc/sysconfig/network-scripts/ifcfg-eth3
/etc/sysconfig/network-scripts/route-eth3
+ /etc/sysconfig/network-scripts/route6-eth3
/etc/sysconfig/network/ifcfg-eth0
/etc/sysconfig/network/ifroute-eth0
/etc/sysconfig/network/ifcfg-eth1
diff --git a/src/test/test-centos6-002/etc/sysconfig/network-scripts/ifcfg-eth0.exp b/src/test/test-centos6-002/etc/sysconfig/network-scripts/ifcfg-eth0.exp
index 1935e20..a6cc799 100644
--- a/src/test/test-centos6-002/etc/sysconfig/network-scripts/ifcfg-eth0.exp
+++ b/src/test/test-centos6-002/etc/sysconfig/network-scripts/ifcfg-eth0.exp
@@ -7,4 +7,3 @@ GATEWAY=4.3.2.1
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6ADDR=2000::1/64
-IPV6_DEFAULTGW=20ff::1
diff --git a/src/test/test-centos6-002/etc/sysconfig/network-scripts/route-eth0.exp b/src/test/test-centos6-002/etc/sysconfig/network-scripts/route-eth0.exp
index 6bf6cbb..144a9c1 100644
--- a/src/test/test-centos6-002/etc/sysconfig/network-scripts/route-eth0.exp
+++ b/src/test/test-centos6-002/etc/sysconfig/network-scripts/route-eth0.exp
@@ -1,6 +1,4 @@
# --- BEGIN PVE ---
4.3.2.1 dev eth0
-default via 4.3.2.1
-20ff::1 dev eth0
-default via 20ff::1
+default via 4.3.2.1 dev eth0
# --- END PVE ---
diff --git a/src/test/test-centos6-002/etc/sysconfig/network-scripts/route6-eth0.exp b/src/test/test-centos6-002/etc/sysconfig/network-scripts/route6-eth0.exp
new file mode 100644
index 0000000..e11687a
--- /dev/null
+++ b/src/test/test-centos6-002/etc/sysconfig/network-scripts/route6-eth0.exp
@@ -0,0 +1,4 @@
+# --- BEGIN PVE ---
+20ff::1 dev eth0
+default via 20ff::1 dev eth0
+# --- END PVE ---
--
2.1.4
More information about the pve-devel
mailing list