Revision bf33c5fa doc/design-network.rst
b/doc/design-network.rst | ||
---|---|---|
88 | 88 |
bitfields, the length of the network size each: |
89 | 89 |
|
90 | 90 |
``reservations`` |
91 |
This field holds all IP addresses reserved by Ganeti instances, as |
|
92 |
well as cluster IP addresses (node addresses + cluster master) |
|
91 |
This field holds all IP addresses reserved by Ganeti instances. |
|
93 | 92 |
|
94 | 93 |
``external reservations`` |
95 | 94 |
This field holds all IP addresses that are manually reserved by the |
96 |
administrator, because some other equipment is using them outside the |
|
97 |
scope of Ganeti. |
|
95 |
administrator (external gateway, IPs of external servers, etc) or |
|
96 |
automatically by ganeti (the network/broadcast addresses, |
|
97 |
Cluster IPs (node addresses + cluster master)). These IPs are excluded |
|
98 |
from the IP pool and cannot be assigned automatically by ganeti to |
|
99 |
instances (via ip=pool). |
|
98 | 100 |
|
99 | 101 |
The bitfields are implemented using the python-bitarray package for |
100 | 102 |
space efficiency and their binary value stored base64-encoded for JSON |
101 | 103 |
compatibility. This approach gives relatively compact representations |
102 | 104 |
even for large IPv4 networks (e.g. /20). |
103 | 105 |
|
104 |
Ganeti-owned IP addresses (node + master IPs) are reserved automatically |
|
105 |
if the cluster's data network itself is placed under pool management. |
|
106 |
Cluster IP addresses (node + master IPs) are reserved automatically |
|
107 |
as external if the cluster's data network itself is placed under |
|
108 |
pool management. |
|
106 | 109 |
|
107 | 110 |
Helper ConfigWriter methods provide free IP address generation and |
108 | 111 |
reservation, using a TemporaryReservationManager. |
... | ... | |
129 | 132 |
|
130 | 133 |
We also introduce a new ``ip`` address value, ``constants.NIC_IP_POOL``, |
131 | 134 |
that specifies that a given NIC's IP address should be obtained using |
132 |
the IP address pool of the specified network. This value is only valid |
|
135 |
the first available IP address inside the pool of the specified network. |
|
136 |
(reservations OR external_reservations). This value is only valid |
|
133 | 137 |
for NICs belonging to a network. A NIC's IP address can also be |
134 | 138 |
specified manually, as long as it is contained in the network the NIC |
135 |
is connected to. |
|
139 |
is connected to. In case this IP is externally reserved, Ganeti will produce |
|
140 |
an error which the user can override if explicitly requested. Of course |
|
141 |
this IP will be reserved and will not be able to be assigned to another |
|
142 |
instance. |
|
136 | 143 |
|
137 | 144 |
|
138 | 145 |
Hooks |
Also available in: Unified diff