IPv6: 'Already active' doesn't work when adding a new virtual server

Hello,

I want to create a new virtual server and in the networking section, regarding the IPv6 network interface, I choose "Virtual with IP" and fill in an IP associated to an active network interface, and check 'Already active'.

However, when I create the server, Virtualmin regenerates /etc/network/interfaces adding the desired address and consequently crashes my server's network connection as it screws up the configuration.

When 'Already active' is checked, and that IPv6 is really online and working (checked), why does Virtualmin touch the network?

Note: Using latest (just updated) system: - Virtualmin 5.01 - Webmin 1.791 - Authentic Theme 17.72

Status: 
Closed (fixed)

Comments

Thanks for reporting this - I see the bug responsible, and will fix it in the next Virtualmin release.

Status: Active » Fixed

Thank you! Any ideas, when will that be shipped?

Since we just did a release, it will likely be several weeks before this fix comes out.

Oh.. Any possibility of a patch/diff to be used in the meantime if it is just a small fix in the scripts? I just start migrating domains to this new Virtualmin installation and want to have everything in place.

Thanks.

a small patch / diff would be really great Have this issue too and I am forced to setup many domains the next days with IPv6 support. A network crash with every creation results in me not being able to check the output of the scripts running after server creation without rewriting all scripts to logging to disk.

Thanks

The fix is pretty simple - just edit /usr/{share,libexec}/webmin/virtual-server/domain_setup.cgi and change line 283 from :

($ip6, $virt6, $virtalready6, $netmask6) =

to :

($ip6, $virt6, $virt6already, $netmask6) =

Thank you very very much

Thank you for the fix.

Unfortunately it seems that things are really messed up in many other scripts and places. In my case, I tried to, change the IP address of a virtual server after transfer from another host which doesn't allow me to set IPs at transfer time, and again, Virtualmin messes up my network configuration.

This is what I've found regarding virt6already vs. virtalready6:

root@d2 /usr/share/webmin/virtual-server # grep -rnw './' -e "virt6already"
./domain_setup.cgi:283:         ($ip6, $virt6, $virt6already, $netmask6) =
./domain_setup.cgi:357:  'virt6already', $virt6already,
./save_newip.cgi:250:   $d->{'virt6already'} = $virt6already;
./save_newip.cgi:258:   $d->{'virt6already'} = 0;
./feature-virt6.pl:28:if (!$d->{'virt6already'}) {
./feature-virt6.pl:68:if ($d->{'ip6'} ne $oldd->{'ip6'} && !$d->{'virt6already'}) {
./feature-virt6.pl:81:if (!$d->{'virt6already'}) {
./feature-virt6.pl:130:if (!$_[0]->{'virt6already'}) {
./create-domain.pl:209:         $virt6already = 1;
./create-domain.pl:395: $virt6already && &usage("The --ip6-already and --allocate-ip6 options are incompatible");
./create-domain.pl:635:         if ($virt6already) {
./create-domain.pl:709:         'virt6already', $virt6already,
./virtual-server-lib-funcs.pl:16677:    $d->{'virt6already'} = 0;
root@d2 /usr/share/webmin/virtual-server # grep -rnw './' -e "virtalready6"
./restore-domain.pl:248:                            'virtalready6' => 0, 'mode6' => 3 };
./restore-domain.pl:257:                            'virtalready6' => 0, 'mode6' => 1 };
./restore-domain.pl:264:                            'virtalready6' => 0, 'netmask6' => $netmask6,
./restore-domain.pl:272:                            'virtalready6' => 0, 'netmask6' => $netmask6,
./migrate-domain.pl:172:                            'virtalready6' => 0, 'mode6' => 3 };
./migrate-domain.pl:181:                            'virtalready6' => 0, 'mode6' => 1 };
./migrate-domain.pl:188:                            'virtalready6' => 0, 'netmask6' => $netmask6,
./save_newip.cgi:135:   $virtalready6 = $d->{'virtalready6'};
./save_newip.cgi:154:   $virtalready6 = 0;
./save_newip.cgi:159:   $virtalready6 = $in{'virtalready6'};
./save_newip.cgi:163:   if (!$virtalready6) {
./save_newip.cgi:167:   elsif ($virtalready6) {
./save_newip.cgi:268:   $d->{'virtalready6'} = $virtalready6;
./feature-virt6.pl:212:          &ui_checkbox("virtalready6", 1,
./feature-virt6.pl:275: if ($in{'virtalready6'}) {
./feature-virt6.pl:287: return ($in{'ip6'}, 1, $in{'virtalready6'});
./migrate.cgi:50:       ($ipinfo->{'ip6'}, $ipinfo->{'virt6'}, $ipinfo->{'virtalready6'},
./restore.cgi:134:              ($ip6, $virt6, $virtalready6, $netmask6) =
./restore.cgi:139:              $ipinfo->{'virtalready6'} = $virtalready6;
./newip_form.cgi:127:                 &ui_checkbox("virtalready6", 1,
./backups-lib.pl:2516:                                  $d->{'virtalready6'} = 0;
./backups-lib.pl:2560:                          $d->{'virtalready6'} = $ipinfo->{'virtalready6'};
./backups-lib.pl:5152:  $d->{'virtalready6'} = $ipinfo->{'virtalready6'};

Should I replace everywhere virtalready6 with virt6already?

No, only that one place should need fixing.

Ok, then, how come that after transferring the virtual server to the new server, if I use the "Change IP Address" feature to assign an already active IPv6 address and check "Already active" it happens the same, I loose connectivity to the server, network is modified?

You're right :-( All those other references to virtalready6 also need to be replaced with virt6already