IPV6 Support in VestaCP

I’m finally ready with the IPV6 support, after some long weeks of coding is everything ready. This feature has many impacts on the code, I have to do a lot of tests and I hope that everything works great. But for some bugs I haven’t found a solution. In this post, I have made an overview of what I have done to achieve the IPV6 support in VestaCP.

One of the main things I miss at this moment in vestaCP is ipv6 support. That’s why I started here.

https://github.com/tjebbeke/vesta/tree/IPV6-support

Add IPV6 address
ip configs

We must first add an IPV6 address in vestaCP. One of the first problems was, how do we detect ipv4 and ipv6. We need to connect both IP’s to one domain. That’s why I added a parameter in the IP config.

New apis:

  • v-add-sys-ipv6
  • v-change-sys-ipv6-name
  • v-change-sys-ipv6-owner
  • v-change-sys-ipv6-status
  • v-delete-sys-ipv6

Changed apis:

  • v-update-sys-ip
  • v-delete-sys-ip
  • v-list-sys-ip
  • v-list-sys-ips
  • v-list-user-ips

Problems:

  • v-add-sys-ipv6
    • IPV6ADDR_SECONDARIES
    • mod_extract_forwarded
    • mod_rpaf
  • v-delete-sys-ipv6
    • Delete startup config
  • v-delete-sys-ip
    • Delete startup config
  • Netmask
    • ipv4: 255.255.255.255 (ip)
    • ipv6: 64 (integer)

UI

Select box added for version.

VestaCP Config IPv4 or IPv6 or both?

VestaCP needs to know which IP versions can be used. (Adding domain …) That’s why I added a parameter in the vesta.conf. These parameters can be changed in the control panel.

vesta conf
vesta server conf

Domain

There was already a field for ipv6 ‘IP6’.

Added apis

  • v-change-dns-domain-ipv6
  • v-change-web-domain-ipv6

changed apis

  • v-add-dns-domain
  • v-add-dns-on-web-alias
  • v-add-domain
  • v-add-web-domain
  • v-add-web-domain-alias
  • v-add-web-domain-proxy
  • v-add-web-domain-ssl
  • v-add-web-domain-stats
  • v-change-dns-domain-tpl
  • v-change-domain-owner
  • v-change-web-domain-backend-tpl
  • v-change-web-domain-proxy-tpl
  • v-change-web-domain-stats
  • v-change-web-domain-tpl
  • v-delete-dns-on-web-alias
  • v-delete-web-domain
  • v-delete-web-domain-alias
  • v-delete-web-domain-proxy
  • v-list-dns-domain
  • v-list-dns-domains
  • v-list-web-domains
  • v-rebuild-web-domains

UI

IP address is visible as IPV4 is enabled on server config (vesta.conf)

IPV6 address is visible as IPV6 is enabled on server config (vesta.conf)

Templates

The templates are moved to IP version directories. default is moved to ipv4/default and coppied to ipv4ipv6/default and ipv6/default

Firewall

added APIs

  • v-add-firewall-ipv6-rule
  • v-change-firewall-ipv6-rule
  • v-delete-firewall-ipv6-rule
  • v-list-firewall-ipv6
  • v-list-firewall-ipv6-rule
  • v-suspend-firewall-ipv6-rule
  • v-unsuspend-firewall-ipv6-rule

Update from IPV4 to IPV4 and IPV6

  1. Update server config
  2. Add IP
  3. Edit web domain (add IPV6 address)
  4. Edit template to ipv?/{template}
  5. Edit DNS domain (add IPV6 address)
  6. Edit template to ipv?/{template}

So depending on which template using a domain will make the use of IPV4 and/or IPV6.

Update scripts

It’s important that the scripts run in the correct order to prevent errors.

  1. upd/update_packages.sh
  2. upd/add_ipv6.sh
  3. upd/add_firewall_ipv6.sh

Install Script

In the install script, I have added some additional parameters.

  • –ipv4 (-4) : default ‘Yes’
  • –ipv6 (-6) : default ‘Yes’

TO DO

  • Firewall / Firewall testing
  • Add/delete IP
    • mod_extract_forwarded (IPv6?)
    • mod_rpaf (IPv6?)
  • Debug / Testing
  • Install script
  • Layout positioning of the ipv6 in the templates
  • Templates
  • upgrade scripts

I think the biggest problem now is that you are going to have too many templates. For each template, you will now need 2 or 3.

  • Default (IPV4 only)
  • IPV6 only (Not necessary?)
  • Both (IPV4 and IPV6)

I create a script to copy/create the IPV6 only and IPV4andIPV6 template.


40 Replies to “IPV6 Support in VestaCP”

  1. Nice stuff man thank you very much !!

    Is your update will be pushed in official Vesta download ?

    If yes what is released version and when ?

    Thank you very much and have a great day !!

    • The pull request is made, and it’s only waiting on the devs to merge it. Normally this will be done in the upcoming release. This can be in the next days, weeks or months. It all depends on how many time they have and need to fix all the bugs and how easy it is to merge all the pull requests. I try to keep my code in sync with the master branch, so they can easily be merged into the official release.

    • Hi, thanks! Your websites look great. If you have some problems or you need help somewhere with hosting, designing or something else you can always contact me.

  2. We absolutely love your blog and find the majority of your post’s to be exactly what I’m looking for.
    can you offer guest writers to write content to suit your needs?

    I wouldn’t mind writing a post or elaborating on many of the subjects you write concerning here.
    Again, awesome site!

  3. I like the valuable information you provide in your articles.
    I will bookmark your blog and check again here frequently.
    I’m quite sure I’ll learn many new stuff right here! Best of luck
    for the next!

  4. I’m not sure where you’re getting your info, but good topic. I needs to spend some time learning much more or understanding more. Thanks for magnificent information I was looking for this information for my mission.

  5. Thank you for another fantastic article. Where else could anybody get that type of info in such an ideal way of writing? I’ve a presentation next week, and I’m on the look for such information.

  6. Great site. Any news when will be implemented if Vestacp? I read implementation manual is not possible with the latest update is this true?

    • Hi Roger,

      A few weeks ago I created a new Pull request on Github to implement the IPV6. So I hope in the next release.
      It is possible to do it manually but it isn’t easy.

  7. I already install latest vesta cp. but i can’t find ipv6 on my panel. how to add this to my existing install

  8. wow! Great really need ip6 Supported official Version. please try to realise ASAP, Its very Helpful for us.

  9. Dont be blindsided,
    IPv6 on VestaCP in the major branch wont happen soon, maybe at the end of 2020!

      • because they are focused on other stuff that brings them a lot of money
        like those Softaculous Framework and other stuff, IPv6 has been in prospective as a promised
        for years now, but it seems that nobody needed it really may they have enought v4 Adressspace left, kinda Sucx!

      • It’s easy, first comments about ipv6 are from 2013. Now we live in 2017. Add 4 years for them to implement it and it will be 2021.

          • I think we have a different opinion about this. I don’t think a control panel without IPv6 can be taken seriously. And it is for sure something I would never install.
            And 4 years to implement such a basic functionality is really bad… And I say 4 years, it’s still not there so it can take much longer than 4 years.

          • Of course, you can install whatever control panel you want. But saying that a control panel without ipv6 can’t be taken seriously, goes a bit too far. It is, of course, your opinion, but you can say something like that about each control panel. Ever CP has its own features and is missing something.

  10. Hi ! Trying to configure IPV6 on VESTACP saw your script, I need help. Help to add the IPV6 module in the latest version of VESTACP on DEBIAN 9

  11. Wow, i found this article while searching for a way to implement ip v6 into vesta. its kind of redicoulous that its still not supported, and nothing is mentioned when it will be released… i might have to switch to plesk or something after all, which is a shame, as i rly like vesta. but it has been to long…

    However, thanks for your article and work.

  12. Hi there, I desire to subscribe for this web site to take most recent updates, so
    where can i do it please assist.

Leave a Reply

Your email address will not be published. Required fields are marked *