aliaser v0.02
Copyright ©2017 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 planned:
-
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
aliaserusing git or download as a .zip file -
On your server, copy the systemd service file
aliaser.serviceto/etc/systemd/system/aliaser.service -
Copy the shell script
aliaserto/usr/bin/aliaser -
Assign the script an executable bit to the shell script as follows:
`#chmod +x /usr/bin/aliaser` -
aliaserwill is now installed! Start thealiaserservice:#systemctl start aliaser.service -
Configure your server to load
aliaserat boot:#systemctl enable aliaser.service -
aliaserwill now load at boot time and can be managed like any other systemd service:
| Command | Description |
|---|---|
#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
aliaseras a shell script using one of a variety of commands:
| Command | Description |
|---|---|
./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 ©2017 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.