This article applies to Linux Dedicated Servers
Please follow the below steps to replace your current IP addresses with the new IP addresses that have been allocated to you:
- Add the IP addresses to your server network interface
- Configure the DNS to work with the new IP addresses
- Update Apache to listen and serve pages from the new IP addresses
- List of default gateways based on primary IP network
These steps are broken up as follows:
Adding the new IP addresses to your network interface
This configures all the IP addresses your server responds to. You should see a section for each of your existing IP addresses which are divided by blank lines. Each of the IP addresses has an interface name associated with it. Your server’s primary IP address will have an interface name that doesn’t include a colon, such as;
The other IP addresses will have an interface name (the primary interface’s name) followed by a colon and then another number, such as eth0:0 or eth0:1. There will also be a section labelled lo which is the section for the loopback interface. You do not need to make any changes to the lo section.
Your old and new IP addresses will need to both work together for a transitional period. Thus, we will now add additional sections for your new IP addresses while still keeping the old ones in place.
Start by creating a section for a new primary interface. To do that, copy all the existing lines that define the existing primary interface. These should contain a gateway line and usually a pre-up line too. Change the IP address and the gateway in the new primary interface to the new addresses. Now delete any gateway and pre-up lines in the old primary interface, while leaving the IP address defined. This allows for both the old and the new IP addresses can work together over the transition period.
You will need to create a new section for each IP. Copy the entire section from the previous IP and then change the IP address to the equivalent one. Do this for each additional IP address.
Finally, you will need to renumber the sections so that the numbering is consistent. The new primary IP address needs to be the interface name without the colon-number suffix, such as eth0. Each of the other interfaces, including the old primary interface, need a unique colon-number, starting from: 0 and working up without any gaps:
and so on.
# The loopback network interface
iface lo inet loopback
iface eth0 inet static
pre-up /usr/sbin/ethtool -s eth0 speed 10 duplex full autoneg off
iface eth0:1 inet static
iface eth0:0 inet static
iface eth0:2 inet static
Before you save the file, check to see that you have one primary interface definition eth0. This is the new IP address and it will have a new gateway. Also ensure that each of the other IP addresses, both old and new, have their own definition, that the gateway line has been removed from the old primary IP address, and that each of the interfaces has a unique number.
Save the file, then run this command to restart your network, using the new IP addresses:
Configure the DNS to work with the new IP addresses
and remove all its existing content, replacing it with the single line:
Do the same for the file:
Save both files, and run these commands:
svc -d /service/tinydns ; svc -u /service/tinydns
svc -d /service/axfrdns ; svc -u /service/axfrdns
Update Apache to listen and serve pages from the new IP addresses
You will now need to update all mentions of your old IP address everywhere in your Apache config to now mention both the old and new IP address. This depends on how you have configured Apache.
If you are running a chroot set-up then you may have two separate Apache instances which you will need to update. In the default installation there was an Apache instance running the control panel, configured by the files in the:
directory, and an Apache instance for your websites, configured by:
IP addresses can be mentioned in two forms: Listen directives, and VirtualHost directives.
Duplicate each line that starts with Listen followed by an IP address in order to have two identical Listen directives on adjacent lines. Now change the IP address on one of them to the equivalent new IP address. After the IP address should be a colon and then a port number (a single integer, probably :80 or :443); do not change this.
There may also be some Listen directives which just mention a port number and no IP address. If so, leave these alone.
Add a space after the IP address for each line that starts with VirtualHost followed by an IP address and port number. Then add the new IP address followed by a colon and the same port number as the old IP address. If the line already has multiple IP addresses, add a new IP address for each one, separating them with spaces. The line can be as long as needed, but ensure that there is no line-break character splitting the directive into multiple lines. The end of the line, after all the IP addresses, must be a single >" character.
There may also be some Listen directives which don't mention any IP address. If so, leave these alone.
In the default config, you will need to edit these files:
/etc/apache-ssl/httpd.conf -- both Listen and VirtualHost
/usr/fs/etc/apache2/sites-available/default -- VirtualHost
/usr/fs/etc/apache2/ports.conf -- Listen
Restart each Apache instance. The non-chroot Apache can be restarted with this command:
The chroot Apache is restarted with this command:
chroot /usr/fs /etc/init.d/apache2 stop
chroot /usr/fs /etc/init.d/apache2 start