aliaser v0.01
Copyright ©2015 Josh Wieder
PGP Key 0x30D2ABDB2DF72435
A service written in bash to resolve ongoing issues with IP aliasing when using Amazon EC2 virtual machines without the benefit of ec2-net-utils.
###Features
-
Adds and removes routing table entries on RHEL Amazon EC2 virtual machines to support the mapping of multiple public IP addresses to the same EC2 instance.
-
Prints secondary public and private IP addresses mappings
-
Routing table is stored in memory, allowing greater flexibility with storage options
-
Multiple IP mappings are supported
###To Do
The following features are going to be added in the immediate future (next couple of days):
-
Add support for Debian/Ubuntu
-
Both systemd & init script functionality to retain IP mappings across reboots and network service restarts (the included aliaser.service file is the beginning of this functionality)
-
RPM installation
-
Integration with ec2-api-tools
-
Ensure that you have assigned your preferred secondary private IP and secondary Elastic IP to your instance as outlined here
-
Replicate
aliaser
using git or download as a .zip file -
On your server, copy the systemd service file
aliaser.service
to/etc/systemd/system/aliaser.service
-
Copy the shell script
aliaser
to/usr/bin/aliaser
-
Assign the script an executable bit to the shell script as follows:
`#chmod +x /usr/bin/aliaser`
-
aliaser
will is now installed! Start thealiaser
service:#systemctl start aliaser.service
-
Configure your server to load
aliaser
at boot:#systemctl enable aliaser.service
-
aliaser
will now load at boot time and can be managed like any other systemd service:`#systemctl start aliaser.service` Start `aliaser` service `#systemctl stop aliaser.service` Stop `aliaser` service `#systemctl restart aliaser.service` Restart `aliaser` service `#systemctl disable aliaser.service` Prevent `aliaser` from loading at boot `#systemctl -l status aliaser.service` View the status of `aliaser` service
-
Execute
aliaser
as a shell script using one of a variety of commands:`./aliaser -h` Prints list of commands `./aliaser version` Prints version and copyright information `sudo ./aliaser start` Adds routes for secondary IPs to the routing table `sudo ./aliaser restart` Adds routes for secondary IPs to the routing table (ATM for service execution purposes only) `sudo ./aliaser stop` Removes secondary IP routers and restarts network service `./aliaser print` Prints list of secondary private and Public IP address assigned to this instance `./aliaser test` Verifies route additions by querying an outside host
The output of curl http://169.254.169.254/latest/meta-data/public-ipv4
has proven unpredictable. Unfortunately the Primary Public IP filed for
./aliaser print
initially relied on this EC2 API call. I am working on formatting another option that will produce stable output. This does not impact the actual functionality of the IP address allocation.
Copyright ©2015 Josh Wieder
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.