| | 1 | = NetNS = |
|---|
| | 2 | |
|---|
| | 3 | NetNS is the "network namespace" support for Linux. |
|---|
| | 4 | |
|---|
| | 5 | === Problems With Sharing Public IP === |
|---|
| | 6 | |
|---|
| | 7 | An interface in NetNS belongs to exactly one namespace. This presents |
|---|
| | 8 | a problem, since we want virtual nodes to share the node's public IP |
|---|
| | 9 | interface. |
|---|
| | 10 | |
|---|
| | 11 | Possible workarounds: |
|---|
| | 12 | |
|---|
| | 13 | * NAT: Give each virt node a private IP space, and NAT its outbound traffic. |
|---|
| | 14 | Forward certain ports on the public IP address to private IPs based on some |
|---|
| | 15 | port reservation table. |
|---|
| | 16 | * Hack NetNS to allow sharing an address/interface between namespaces. |
|---|
| | 17 | No idea how hard this would be. |
|---|
| | 18 | * The VINI plan: switch back and forth between two namespaces. Have to be in |
|---|
| | 19 | one namespace to talk to the outside world, and another to talk to the |
|---|
| | 20 | "experimental net". This might be very awkward, and require that a lot of |
|---|
| | 21 | software run on the nodes be customized: Mike will try it out. |
|---|
| | 22 | * Look at other network virtualization packages - like [wiki:OpenVZ]. This would |
|---|
| | 23 | amount to a fundamental re-thinking of a lot of things. |