root / doc / design-network.rst @ 54f834df
History | View | Annotate | Download (10.1 kB)
1 | eec83a95 | Apollon Oikonomopoulos | ================== |
---|---|---|---|
2 | eec83a95 | Apollon Oikonomopoulos | Network management |
3 | eec83a95 | Apollon Oikonomopoulos | ================== |
4 | eec83a95 | Apollon Oikonomopoulos | |
5 | eec83a95 | Apollon Oikonomopoulos | .. contents:: :depth: 4 |
6 | eec83a95 | Apollon Oikonomopoulos | |
7 | eec83a95 | Apollon Oikonomopoulos | This is a design document detailing the implementation of network resource |
8 | eec83a95 | Apollon Oikonomopoulos | management in Ganeti. |
9 | eec83a95 | Apollon Oikonomopoulos | |
10 | eec83a95 | Apollon Oikonomopoulos | Current state and shortcomings |
11 | eec83a95 | Apollon Oikonomopoulos | ============================== |
12 | eec83a95 | Apollon Oikonomopoulos | |
13 | eec83a95 | Apollon Oikonomopoulos | Currently Ganeti supports two configuration modes for instance NICs: |
14 | eec83a95 | Apollon Oikonomopoulos | routed and bridged mode. The ``ip`` NIC parameter, which is mandatory |
15 | eec83a95 | Apollon Oikonomopoulos | for routed NICs and optional for bridged ones, holds the given NIC's IP |
16 | eec83a95 | Apollon Oikonomopoulos | address and may be filled either manually, or via a DNS lookup for the |
17 | eec83a95 | Apollon Oikonomopoulos | instance's hostname. |
18 | eec83a95 | Apollon Oikonomopoulos | |
19 | eec83a95 | Apollon Oikonomopoulos | This approach presents some shortcomings: |
20 | eec83a95 | Apollon Oikonomopoulos | |
21 | eec83a95 | Apollon Oikonomopoulos | a) It relies on external systems to perform network resource |
22 | eec83a95 | Apollon Oikonomopoulos | management. Although large organizations may already have IP pool |
23 | eec83a95 | Apollon Oikonomopoulos | management software in place, this is not usually the case with |
24 | eec83a95 | Apollon Oikonomopoulos | stand-alone deployments. For smaller installations it makes sense to |
25 | eec83a95 | Apollon Oikonomopoulos | allocate a pool of IP addresses to Ganeti and let it transparently |
26 | eec83a95 | Apollon Oikonomopoulos | assign these IPs to instances as appropriate. |
27 | eec83a95 | Apollon Oikonomopoulos | |
28 | eec83a95 | Apollon Oikonomopoulos | b) The NIC network information is incomplete, lacking netmask and |
29 | eec83a95 | Apollon Oikonomopoulos | gateway. Operating system providers could for example use the |
30 | eec83a95 | Apollon Oikonomopoulos | complete network information to fully configure an instance's |
31 | eec83a95 | Apollon Oikonomopoulos | network parameters upon its creation. |
32 | eec83a95 | Apollon Oikonomopoulos | |
33 | eec83a95 | Apollon Oikonomopoulos | Furthermore, having full network configuration information would |
34 | eec83a95 | Apollon Oikonomopoulos | enable Ganeti nodes to become more self-contained and be able to |
35 | eec83a95 | Apollon Oikonomopoulos | infer system configuration (e.g. /etc/network/interfaces content) |
36 | eec83a95 | Apollon Oikonomopoulos | from Ganeti configuration. This should make configuration of |
37 | eec83a95 | Apollon Oikonomopoulos | newly-added nodes a lot easier and less dependant on external |
38 | eec83a95 | Apollon Oikonomopoulos | tools/procedures. |
39 | eec83a95 | Apollon Oikonomopoulos | |
40 | eec83a95 | Apollon Oikonomopoulos | c) Instance placement must explicitly take network availability in |
41 | eec83a95 | Apollon Oikonomopoulos | different node groups into account; the same ``link`` is implicitly |
42 | eec83a95 | Apollon Oikonomopoulos | expected to connect to the same network across the whole cluster, |
43 | eec83a95 | Apollon Oikonomopoulos | which may not always be the case with large clusters with multiple |
44 | eec83a95 | Apollon Oikonomopoulos | node groups. |
45 | eec83a95 | Apollon Oikonomopoulos | |
46 | eec83a95 | Apollon Oikonomopoulos | |
47 | eec83a95 | Apollon Oikonomopoulos | Proposed changes |
48 | eec83a95 | Apollon Oikonomopoulos | ---------------- |
49 | eec83a95 | Apollon Oikonomopoulos | |
50 | eec83a95 | Apollon Oikonomopoulos | In order to deal with the above shortcomings, we propose to extend |
51 | eec83a95 | Apollon Oikonomopoulos | Ganeti with high-level network management logic, which consists of a new |
52 | eec83a95 | Apollon Oikonomopoulos | NIC mode called ``managed``, a new "Network" configuration object and |
53 | eec83a95 | Apollon Oikonomopoulos | logic to perform IP address pool management, i.e. maintain a set of |
54 | eec83a95 | Apollon Oikonomopoulos | available and occupied IP addresses. |
55 | eec83a95 | Apollon Oikonomopoulos | |
56 | eec83a95 | Apollon Oikonomopoulos | Configuration changes |
57 | eec83a95 | Apollon Oikonomopoulos | +++++++++++++++++++++ |
58 | eec83a95 | Apollon Oikonomopoulos | |
59 | eec83a95 | Apollon Oikonomopoulos | We propose the introduction of a new high-level Network object, |
60 | eec83a95 | Apollon Oikonomopoulos | containing (at least) the following data: |
61 | eec83a95 | Apollon Oikonomopoulos | |
62 | eec83a95 | Apollon Oikonomopoulos | - Symbolic name |
63 | eec83a95 | Apollon Oikonomopoulos | - UUID |
64 | eec83a95 | Apollon Oikonomopoulos | - Network in CIDR notation (IPv4 + IPv6) |
65 | eec83a95 | Apollon Oikonomopoulos | - Default gateway, if one exists (IPv4 + IPv6) |
66 | eec83a95 | Apollon Oikonomopoulos | - IP pool management data (reservations) |
67 | eec83a95 | Apollon Oikonomopoulos | - Default NIC connectivity mode (bridged, routed). This is the |
68 | eec83a95 | Apollon Oikonomopoulos | functional equivalent of the current NIC ``mode``. |
69 | eec83a95 | Apollon Oikonomopoulos | - Default host interface (e.g. br0). This is the functional equivalent |
70 | eec83a95 | Apollon Oikonomopoulos | of the current NIC ``link``. |
71 | eec83a95 | Apollon Oikonomopoulos | - Tags |
72 | eec83a95 | Apollon Oikonomopoulos | |
73 | eec83a95 | Apollon Oikonomopoulos | Each network will be connected to any number of node groups, possibly |
74 | eec83a95 | Apollon Oikonomopoulos | overriding connectivity mode and host interface for each node group. |
75 | eec83a95 | Apollon Oikonomopoulos | This is achieved by adding a ``networks`` slot to the NodeGroup object |
76 | eec83a95 | Apollon Oikonomopoulos | and using the networks' UUIDs as keys. |
77 | eec83a95 | Apollon Oikonomopoulos | |
78 | eec83a95 | Apollon Oikonomopoulos | IP pool management |
79 | eec83a95 | Apollon Oikonomopoulos | ++++++++++++++++++ |
80 | eec83a95 | Apollon Oikonomopoulos | |
81 | eec83a95 | Apollon Oikonomopoulos | A new helper library is introduced, wrapping around Network objects to |
82 | eec83a95 | Apollon Oikonomopoulos | give IP pool management capabilities. A network's pool is defined by two |
83 | eec83a95 | Apollon Oikonomopoulos | bitfields, the length of the network size each: |
84 | eec83a95 | Apollon Oikonomopoulos | |
85 | eec83a95 | Apollon Oikonomopoulos | ``reservations`` |
86 | eec83a95 | Apollon Oikonomopoulos | This field holds all IP addresses reserved by Ganeti instances, as |
87 | eec83a95 | Apollon Oikonomopoulos | well as cluster IP addresses (node addresses + cluster master) |
88 | eec83a95 | Apollon Oikonomopoulos | |
89 | eec83a95 | Apollon Oikonomopoulos | ``external reservations`` |
90 | eec83a95 | Apollon Oikonomopoulos | This field holds all IP addresses that are manually reserved by the |
91 | eec83a95 | Apollon Oikonomopoulos | administrator, because some other equipment is using them outside the |
92 | eec83a95 | Apollon Oikonomopoulos | scope of Ganeti. |
93 | eec83a95 | Apollon Oikonomopoulos | |
94 | eec83a95 | Apollon Oikonomopoulos | The bitfields are implemented using the python-bitarray package for |
95 | eec83a95 | Apollon Oikonomopoulos | space efficiency and their binary value stored base64-encoded for JSON |
96 | eec83a95 | Apollon Oikonomopoulos | compatibility. This approach gives relatively compact representations |
97 | eec83a95 | Apollon Oikonomopoulos | even for large IPv4 networks (e.g. /20). |
98 | eec83a95 | Apollon Oikonomopoulos | |
99 | eec83a95 | Apollon Oikonomopoulos | Ganeti-owned IP addresses (node + master IPs) are reserved automatically |
100 | eec83a95 | Apollon Oikonomopoulos | if the cluster's data network itself is placed under pool management. |
101 | eec83a95 | Apollon Oikonomopoulos | |
102 | eec83a95 | Apollon Oikonomopoulos | Helper ConfigWriter methods provide free IP address generation and |
103 | eec83a95 | Apollon Oikonomopoulos | reservation, using a TemporaryReservationManager. |
104 | eec83a95 | Apollon Oikonomopoulos | |
105 | eec83a95 | Apollon Oikonomopoulos | It should be noted that IP pool management is performed only for IPv4 |
106 | eec83a95 | Apollon Oikonomopoulos | networks, as they are expected to be densely populated. IPv6 networks |
107 | eec83a95 | Apollon Oikonomopoulos | can use different approaches, e.g. sequential address asignment or |
108 | eec83a95 | Apollon Oikonomopoulos | EUI-64 addresses. |
109 | eec83a95 | Apollon Oikonomopoulos | |
110 | eec83a95 | Apollon Oikonomopoulos | Managed NIC mode |
111 | eec83a95 | Apollon Oikonomopoulos | ++++++++++++++++ |
112 | eec83a95 | Apollon Oikonomopoulos | |
113 | eec83a95 | Apollon Oikonomopoulos | In order to be able to use the new network facility while maintaining |
114 | eec83a95 | Apollon Oikonomopoulos | compatibility with the current networking model, a new network mode is |
115 | eec83a95 | Apollon Oikonomopoulos | introduced, called ``managed`` to reflect the fact that the given NICs |
116 | eec83a95 | Apollon Oikonomopoulos | network configuration is managed by Ganeti itself. A managed mode NIC |
117 | eec83a95 | Apollon Oikonomopoulos | accepts the network it is connected to in its ``link`` argument. |
118 | eec83a95 | Apollon Oikonomopoulos | Userspace tools can refer to networks using their symbolic names, |
119 | eec83a95 | Apollon Oikonomopoulos | however internally, the link argument stores the network's UUID. |
120 | eec83a95 | Apollon Oikonomopoulos | |
121 | eec83a95 | Apollon Oikonomopoulos | We also introduce a new ``ip`` address value, ``constants.NIC_IP_POOL``, |
122 | eec83a95 | Apollon Oikonomopoulos | that specifies that a given NIC's IP address should be obtained using |
123 | eec83a95 | Apollon Oikonomopoulos | the IP address pool of the specified network. This value is only valid |
124 | eec83a95 | Apollon Oikonomopoulos | for managed-mode NICs, where it is also used as a default instead of |
125 | eec83a95 | Apollon Oikonomopoulos | ``constants.VALUE_AUTO``. A managed-mode NIC's IP address can also be |
126 | eec83a95 | Apollon Oikonomopoulos | specified manually, as long as it is compatible with the network the NIC |
127 | eec83a95 | Apollon Oikonomopoulos | is connected to. |
128 | eec83a95 | Apollon Oikonomopoulos | |
129 | eec83a95 | Apollon Oikonomopoulos | |
130 | eec83a95 | Apollon Oikonomopoulos | Hooks |
131 | eec83a95 | Apollon Oikonomopoulos | +++++ |
132 | eec83a95 | Apollon Oikonomopoulos | |
133 | eec83a95 | Apollon Oikonomopoulos | ``OP_NETWORK_ADD`` |
134 | eec83a95 | Apollon Oikonomopoulos | Add a network to Ganeti |
135 | eec83a95 | Apollon Oikonomopoulos | |
136 | eec83a95 | Apollon Oikonomopoulos | :directory: network-add |
137 | eec83a95 | Apollon Oikonomopoulos | :pre-execution: master node |
138 | eec83a95 | Apollon Oikonomopoulos | :post-execution: master node |
139 | eec83a95 | Apollon Oikonomopoulos | |
140 | eec83a95 | Apollon Oikonomopoulos | ``OP_NETWORK_CONNECT`` |
141 | eec83a95 | Apollon Oikonomopoulos | Connect a network to a node group. This hook can be used to e.g. |
142 | eec83a95 | Apollon Oikonomopoulos | configure network interfaces on the group's nodes. |
143 | eec83a95 | Apollon Oikonomopoulos | |
144 | eec83a95 | Apollon Oikonomopoulos | :directory: network-connect |
145 | eec83a95 | Apollon Oikonomopoulos | :pre-execution: master node, all nodes in the connected group |
146 | eec83a95 | Apollon Oikonomopoulos | :post-execution: master node, all nodes in the connected group |
147 | eec83a95 | Apollon Oikonomopoulos | |
148 | eec83a95 | Apollon Oikonomopoulos | ``OP_NETWORK_DISCONNECT`` |
149 | eec83a95 | Apollon Oikonomopoulos | Disconnect a network to a node group. This hook can be used to e.g. |
150 | eec83a95 | Apollon Oikonomopoulos | deconfigure network interfaces on the group's nodes. |
151 | eec83a95 | Apollon Oikonomopoulos | |
152 | eec83a95 | Apollon Oikonomopoulos | :directory: network-disconnect |
153 | eec83a95 | Apollon Oikonomopoulos | :pre-execution: master node, all nodes in the connected group |
154 | eec83a95 | Apollon Oikonomopoulos | :post-execution: master node, all nodes in the connected group |
155 | eec83a95 | Apollon Oikonomopoulos | |
156 | eec83a95 | Apollon Oikonomopoulos | ``OP_NETWORK_REMOVE`` |
157 | eec83a95 | Apollon Oikonomopoulos | Remove a network from Ganeti |
158 | eec83a95 | Apollon Oikonomopoulos | |
159 | eec83a95 | Apollon Oikonomopoulos | :directory: network-add |
160 | eec83a95 | Apollon Oikonomopoulos | :pre-execution: master node, all nodes |
161 | eec83a95 | Apollon Oikonomopoulos | :post-execution: master node, all nodes |
162 | eec83a95 | Apollon Oikonomopoulos | |
163 | eec83a95 | Apollon Oikonomopoulos | Hook variables |
164 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^ |
165 | eec83a95 | Apollon Oikonomopoulos | |
166 | eec83a95 | Apollon Oikonomopoulos | ``INSTANCE_NICn_MANAGED`` |
167 | eec83a95 | Apollon Oikonomopoulos | Non-zero if NIC n is a managed-mode NIC |
168 | eec83a95 | Apollon Oikonomopoulos | |
169 | eec83a95 | Apollon Oikonomopoulos | ``INSTANCE_NICn_NETWORK`` |
170 | eec83a95 | Apollon Oikonomopoulos | The friendly name of the network |
171 | eec83a95 | Apollon Oikonomopoulos | |
172 | eec83a95 | Apollon Oikonomopoulos | ``INSTANCE_NICn_NETWORK_UUID`` |
173 | eec83a95 | Apollon Oikonomopoulos | The network's UUID |
174 | eec83a95 | Apollon Oikonomopoulos | |
175 | eec83a95 | Apollon Oikonomopoulos | ``INSTANCE_NICn_NETWORK_TAGS`` |
176 | eec83a95 | Apollon Oikonomopoulos | The network's tags |
177 | eec83a95 | Apollon Oikonomopoulos | |
178 | eec83a95 | Apollon Oikonomopoulos | ``INSTANCE_NICn_NETWORK_IPV4_CIDR``, ``INSTANCE_NICn_NETWORK_IPV6_CIDR`` |
179 | eec83a95 | Apollon Oikonomopoulos | The subnet in CIDR notation |
180 | eec83a95 | Apollon Oikonomopoulos | |
181 | eec83a95 | Apollon Oikonomopoulos | ``INSTANCE_NICn_NETWORK_IPV4_GATEWAY``, ``INSTANCE_NICn_NETWORK_IPV6_GATEWAY`` |
182 | eec83a95 | Apollon Oikonomopoulos | The subnet's default gateway |
183 | eec83a95 | Apollon Oikonomopoulos | |
184 | eec83a95 | Apollon Oikonomopoulos | |
185 | eec83a95 | Apollon Oikonomopoulos | Backend changes |
186 | eec83a95 | Apollon Oikonomopoulos | +++++++++++++++ |
187 | eec83a95 | Apollon Oikonomopoulos | |
188 | eec83a95 | Apollon Oikonomopoulos | In order to keep the hypervisor-visible changes to a minimum, and |
189 | eec83a95 | Apollon Oikonomopoulos | maintain compatibility with the existing network configuration scripts, |
190 | eec83a95 | Apollon Oikonomopoulos | the instance's hypervisor configuration will have host-level link and |
191 | eec83a95 | Apollon Oikonomopoulos | mode replaced by the *connectivity mode* and *host interface* of the |
192 | eec83a95 | Apollon Oikonomopoulos | given network on the current node group. |
193 | eec83a95 | Apollon Oikonomopoulos | |
194 | eec83a95 | Apollon Oikonomopoulos | The managed mode can be detected by the presence of new environment |
195 | eec83a95 | Apollon Oikonomopoulos | variables in network configuration scripts: |
196 | eec83a95 | Apollon Oikonomopoulos | |
197 | eec83a95 | Apollon Oikonomopoulos | Network configuration script variables |
198 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
199 | eec83a95 | Apollon Oikonomopoulos | |
200 | eec83a95 | Apollon Oikonomopoulos | ``MANAGED`` |
201 | eec83a95 | Apollon Oikonomopoulos | Non-zero if NIC is a managed-mode NIC |
202 | eec83a95 | Apollon Oikonomopoulos | |
203 | eec83a95 | Apollon Oikonomopoulos | ``NETWORK`` |
204 | eec83a95 | Apollon Oikonomopoulos | The friendly name of the network |
205 | eec83a95 | Apollon Oikonomopoulos | |
206 | eec83a95 | Apollon Oikonomopoulos | ``NETWORK_UUID`` |
207 | eec83a95 | Apollon Oikonomopoulos | The network's UUID |
208 | eec83a95 | Apollon Oikonomopoulos | |
209 | eec83a95 | Apollon Oikonomopoulos | ``NETWORK_TAGS`` |
210 | eec83a95 | Apollon Oikonomopoulos | The network's tags |
211 | eec83a95 | Apollon Oikonomopoulos | |
212 | eec83a95 | Apollon Oikonomopoulos | ``NETWORK_IPv4_CIDR``, ``NETWORK_IPv6_CIDR`` |
213 | eec83a95 | Apollon Oikonomopoulos | The subnet in CIDR notation |
214 | eec83a95 | Apollon Oikonomopoulos | |
215 | eec83a95 | Apollon Oikonomopoulos | ``NETWORK_IPV4_GATEWAY``, ``NETWORK_IPV6_GATEWAY`` |
216 | eec83a95 | Apollon Oikonomopoulos | The subnet's default gateway |
217 | eec83a95 | Apollon Oikonomopoulos | |
218 | eec83a95 | Apollon Oikonomopoulos | Userland interface |
219 | eec83a95 | Apollon Oikonomopoulos | ++++++++++++++++++ |
220 | eec83a95 | Apollon Oikonomopoulos | |
221 | eec83a95 | Apollon Oikonomopoulos | A new client script is introduced, ``gnt-network``, which handles |
222 | eec83a95 | Apollon Oikonomopoulos | network-related configuration in Ganeti. |
223 | eec83a95 | Apollon Oikonomopoulos | |
224 | eec83a95 | Apollon Oikonomopoulos | Network addition/deletion |
225 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
226 | eec83a95 | Apollon Oikonomopoulos | :: |
227 | eec83a95 | Apollon Oikonomopoulos | |
228 | eec83a95 | Apollon Oikonomopoulos | gnt-network add --cidr=192.0.2.0/24 --gateway=192.0.2.1 \ |
229 | eec83a95 | Apollon Oikonomopoulos | --cidr6=2001:db8:2ffc::/64 --gateway6=2001:db8:2ffc::1 \ |
230 | eec83a95 | Apollon Oikonomopoulos | --nic_connectivity=bridged --host_interface=br0 public |
231 | eec83a95 | Apollon Oikonomopoulos | gnt-network remove public (only allowed if no instances are using the network) |
232 | eec83a95 | Apollon Oikonomopoulos | |
233 | eec83a95 | Apollon Oikonomopoulos | Manual IP address reservation |
234 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
235 | eec83a95 | Apollon Oikonomopoulos | :: |
236 | eec83a95 | Apollon Oikonomopoulos | |
237 | eec83a95 | Apollon Oikonomopoulos | gnt-network reserve-ips public 192.0.2.2 192.0.2.10-192.0.2.20 |
238 | eec83a95 | Apollon Oikonomopoulos | gnt-network release-ips public 192.0.2.3 |
239 | eec83a95 | Apollon Oikonomopoulos | |
240 | eec83a95 | Apollon Oikonomopoulos | |
241 | eec83a95 | Apollon Oikonomopoulos | Network modification |
242 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^ |
243 | eec83a95 | Apollon Oikonomopoulos | :: |
244 | eec83a95 | Apollon Oikonomopoulos | |
245 | eec83a95 | Apollon Oikonomopoulos | gnt-network modify --cidr=192.0.2.0/25 public (only allowed if all current reservations fit in the new network) |
246 | eec83a95 | Apollon Oikonomopoulos | gnt-network modify --gateway=192.0.2.126 public |
247 | eec83a95 | Apollon Oikonomopoulos | gnt-network modify --host_interface=test --nic_connectivity=routed public (issues warning about instances that need to be rebooted) |
248 | eec83a95 | Apollon Oikonomopoulos | gnt-network rename public public2 |
249 | eec83a95 | Apollon Oikonomopoulos | |
250 | eec83a95 | Apollon Oikonomopoulos | |
251 | eec83a95 | Apollon Oikonomopoulos | Assignment to node groups |
252 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
253 | eec83a95 | Apollon Oikonomopoulos | :: |
254 | eec83a95 | Apollon Oikonomopoulos | |
255 | eec83a95 | Apollon Oikonomopoulos | gnt-network connect public nodegroup1 |
256 | eec83a95 | Apollon Oikonomopoulos | gnt-network connect --host_interface=br1 public nodegroup2 |
257 | eec83a95 | Apollon Oikonomopoulos | gnt-network disconnect public nodegroup1 (only permitted if no instances are currently using this network in the group) |
258 | eec83a95 | Apollon Oikonomopoulos | |
259 | eec83a95 | Apollon Oikonomopoulos | Tagging |
260 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^ |
261 | eec83a95 | Apollon Oikonomopoulos | :: |
262 | eec83a95 | Apollon Oikonomopoulos | |
263 | eec83a95 | Apollon Oikonomopoulos | gnt-network add-tags public foo bar:baz |
264 | eec83a95 | Apollon Oikonomopoulos | |
265 | eec83a95 | Apollon Oikonomopoulos | Network listing |
266 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^ |
267 | eec83a95 | Apollon Oikonomopoulos | :: |
268 | eec83a95 | Apollon Oikonomopoulos | |
269 | eec83a95 | Apollon Oikonomopoulos | gnt-network list |
270 | eec83a95 | Apollon Oikonomopoulos | Name IPv4 Network IPv4 Gateway IPv6 Network IPv6 Gateway Connected to |
271 | eec83a95 | Apollon Oikonomopoulos | public 192.0.2.0/24 192.0.2.1 2001:db8:dead:beef::/64 2001:db8:dead:beef::1 nodegroup1:br0 |
272 | eec83a95 | Apollon Oikonomopoulos | private 10.0.1.0/24 - - - |
273 | eec83a95 | Apollon Oikonomopoulos | |
274 | eec83a95 | Apollon Oikonomopoulos | Network information |
275 | eec83a95 | Apollon Oikonomopoulos | ^^^^^^^^^^^^^^^^^^^ |
276 | eec83a95 | Apollon Oikonomopoulos | :: |
277 | eec83a95 | Apollon Oikonomopoulos | |
278 | eec83a95 | Apollon Oikonomopoulos | gnt-network info public |
279 | eec83a95 | Apollon Oikonomopoulos | Name: public |
280 | eec83a95 | Apollon Oikonomopoulos | IPv4 Network: 192.0.2.0/24 |
281 | eec83a95 | Apollon Oikonomopoulos | IPv4 Gateway: 192.0.2.1 |
282 | eec83a95 | Apollon Oikonomopoulos | IPv6 Network: 2001:db8:dead:beef::/64 |
283 | eec83a95 | Apollon Oikonomopoulos | IPv6 Gateway: 2001:db8:dead:beef::1 |
284 | eec83a95 | Apollon Oikonomopoulos | Total IPv4 count: 256 |
285 | eec83a95 | Apollon Oikonomopoulos | Free address count: 201 (80% free) |
286 | eec83a95 | Apollon Oikonomopoulos | IPv4 pool status: XXX.........XXXXXXXXXXXXXX...XX............. |
287 | eec83a95 | Apollon Oikonomopoulos | XXX..........XXX...........................X |
288 | eec83a95 | Apollon Oikonomopoulos | ....XXX..........XXX.....................XXX |
289 | eec83a95 | Apollon Oikonomopoulos | X: occupied .: free |
290 | eec83a95 | Apollon Oikonomopoulos | Externally reserved IPv4 addresses: |
291 | eec83a95 | Apollon Oikonomopoulos | 192.0.2.3, 192.0.2.22 |
292 | eec83a95 | Apollon Oikonomopoulos | Connected to node groups: |
293 | eec83a95 | Apollon Oikonomopoulos | default (link br0), other_group(link br1) |
294 | eec83a95 | Apollon Oikonomopoulos | Used by 22 instances: |
295 | eec83a95 | Apollon Oikonomopoulos | inst1 |
296 | eec83a95 | Apollon Oikonomopoulos | inst2 |
297 | eec83a95 | Apollon Oikonomopoulos | inst32 |
298 | eec83a95 | Apollon Oikonomopoulos | .. |
299 | eec83a95 | Apollon Oikonomopoulos | |
300 | eec83a95 | Apollon Oikonomopoulos | |
301 | eec83a95 | Apollon Oikonomopoulos | IAllocator changes |
302 | eec83a95 | Apollon Oikonomopoulos | ++++++++++++++++++ |
303 | eec83a95 | Apollon Oikonomopoulos | |
304 | eec83a95 | Apollon Oikonomopoulos | The IAllocator protocol can be made network-aware, i.e. also consider |
305 | eec83a95 | Apollon Oikonomopoulos | network availability for node group selection. Networks, as well as |
306 | eec83a95 | Apollon Oikonomopoulos | future shared storage pools, can be seen as constraints used to rule out |
307 | eec83a95 | Apollon Oikonomopoulos | the placement on certain node groups. |
308 | eec83a95 | Apollon Oikonomopoulos | |
309 | eec83a95 | Apollon Oikonomopoulos | .. vim: set textwidth=72 : |
310 | eec83a95 | Apollon Oikonomopoulos | .. Local Variables: |
311 | eec83a95 | Apollon Oikonomopoulos | .. mode: rst |
312 | eec83a95 | Apollon Oikonomopoulos | .. fill-column: 72 |
313 | eec83a95 | Apollon Oikonomopoulos | .. End: |