Anchor | ||||
---|---|---|---|---|
|
Include Page | ||||
---|---|---|---|---|
|
...
This section provides some basic information about AWS networking that is likely to affect Charon-SSP when running in the cloud.
NetworkManager is disabled on Charon-SSP AWS. Therefore, the interface configuration relies on ifcfg-files in /etc/sysconfig/network-scripts.
The information is not comprehensive. Please refer to the Amazon AWS documentation for up-to-date and comprehensive information.
...
Public IP addresses are not directly visible to the instance. The instance operating system always works with the private address. For external connections, the private address is mapped to the public IP address via NAT.
Div | ||
---|---|---|
| ||
Reserved addresses (important, if manual address assignment is used):
...
An automatically assigned public IP address is not persistent. Every time a instance starts, it is assigned a new public IP address. If persistent public addresses are needed, use Elastic IP addresses.
Interface Names
When looking at the instance from the AWS management console, the interface names are eth0, eth1, etc.
On instances without support for enhanced networking the Linux interface names are also eth0, eth1, etc.
However, on instances with support for enhanced networking, the names on the AWS level differ from those on the Linux level:
- The first (primary) interface is called ensX (where X is an integer denoting the interface number; example: ens5).
- When a second interface is added to a running instance, it maybe initially called eth0.
However, the commandethtool -i eth0
shows that the enhanced network driver (ena) will be used for this interface. This interface will change its name to ensY (where Y is X+1) after restarting the instance. This means that any configuration file created for this interface must use the final name of the interface instead of eth0. Otherwise, the instance may become unreachable after a restart because there is no valid interface configuration (NetworkManager is not enabled on Charon-SSP AWS, so a configuration file must exist to configure the interface properly).
This numbering scheme may change in the future. Currently, it is based on the PCI slot on which the Ethernet controller is presented and which is incremented by one for each additional Ethernet interface added. On the Charon host system, the slot can be verified with the following command:# lspci -vv | grep -A20 Ethernet
To avoid confusion before the instance can be restarted, the new interface can be renamed to its final name using the command
ip link set eth0 name ensY && ip link set ensY up
Div | ||
---|---|---|
| ||
Host to Guest Communication Considerations
...
- Internal virtual bridge on the host system:
Such a bridge has several TAP interfaces. The host and the guest systems are connected to this bridge and can communicate directly to one another using L3 and L2 protocols. The bridge uses its own IP subnet that can be defined by the user. Setting up such a configuration is supported by the Charon Manager. - Communication via the AWS subnet LAN:
In this case, a second interface is added to the Charon host system. The second interface is then assigned to the emulated guest system. After the correct configuration, the host and guest can communicate across the AWS LAN using IP. L2 protocols or any protocols that require changing the MAC address to something different than the MAC address assigned to the second interface by AWS will not work.
To connect the guest system to the LAN, the following basic configuration steps must be performed:- Add the additional interface to the Charon host system.
- Create a configuration file for the additional interface.
- Remove the private IP address assigned to the second interface by AWS from the Linux configuration (if it has been configured).
- Use Charon Manager to assign the interface to the emulated SPARC system.
- Use Charon Manager to set the MAC address of the emulated SPARC system to the same value as the one used on the host system Ethernet interface.
- On the Solaris system, configure the private IP address that was previously assigned to the second interface on Linux and configure the appropriate default route for the LAN.
- Additional steps may be required:
- If the primary interface has an automatically assigned public IP address, this will be released when the instance is stopped and restarted. Hence the configuration must be changed to use a persistent Elastic IP address first to maintain reachability of the host system.
...
This not a recommended standard solution for security reasons. However, should it be required, two interfaces with public IP addresses can be assigned to the Charon host.
One of these interfaces is then dedicated to the guest system which uses the private interface address and the MAC address assigned to the Charon host by AWS (similar to point 2 in section Host to Guest Communication Considerations above).
Div | ||
---|---|---|
| ||
Using a Charon host system as a Router
If a Charon host system is to be used as a router (for example as shown in Example of a More Complex Network Configuration or or to provide Internet connectivity to other Charon host and guest systems), it is not sufficient to configure Linux for IP forwarding.
...
For each interface, the source/destination check has to be disabled. Unless this is configured correctly, traffic from and to and an AWS instance will only be allowed if either source or destination address belongs to the instance. Transit traffic destined to be forwarded by the router, would be discarded.
...
The above documentation only describes the required steps for Ubuntu. An earlier article for CentOS and Red Hat was removed from the AWS site. So the information presented here may change in the near future.
Review the section about interface names if using an instance with enhanced networking enabled.
When adding a second IP interface (for example eth1) to the same subnet as the first on the Charon-SSP host, the routing problems described above can occur. To solve them, perform the following basic steps.
- Create a configuration file (/etc/sysconfig/network-scripts/ifcfg-<interface-name>) for the second interface (if there is no configuration file for the primary interface, create it as well).
- Set the correct interface for default route in /etc/sysconfig/network (example: GATEWAYDEV=eth0).
- To prevent the cloud-init from resetting your custom network configurations, add the following lines to the /etc/cloud/cloud.cfg file:
network:
; config: disabled
- Restart the network.
- Create an additional routing table (use the command: ip route add <path> dev <interface-name> table <table-id>). There must be an entry for every IP address assigned to the second interface and any other route to be used.
- Set rules in the Routing Policy Database (use the command: ip rule add from <ip-address-of-second-interface> lookup <table-id>)
- Create a static route file (/etc/sysconfig/network-scripts/route-<interface-name>)
- Create a static rule file (/etc/sysconfig/network-scripts/rule-<interface-name>)
...