blob: 9c36a97a3e64599db3364e5b566741c42059ec4f [file] [log] [blame]
Zack Williams794532a2021-03-18 17:38:36 -07001..
2 SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
3 SPDX-License-Identifier: Apache-2.0
4
5Site Planning
6=============
7
8Site Design in Netbox
9---------------------
10
Zack Williams2dfb6242021-08-24 09:19:00 -070011The Aether project uses Netbox as source of truth, and the automation script
12uses the Netbox API to create input files for Ansible Playbooks which are used
13to configure each site.
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080014
Zack Williams794532a2021-03-18 17:38:36 -070015Once the hardware has been ordered, the installation can be planned. The
16following information needs to be added to `NetBox
17<https://netbox.readthedocs.io/en/stable>`_ to describe each edge site:
18
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080019.. note::
20 The **bold** words represent the models in Netbox.
21
221. Add a **Site** for the edge (if one doesn't already exist), which has the
23 physical location and contact information for the Aether Edge.
Zack Williams794532a2021-03-18 17:38:36 -070024
252. Add equipment Racks to the Site (if they don't already exist).
26
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800273. Add a **Tenant** for the edge (who owns/manages it), assigned to the ``Pronto``
Zack Williams794532a2021-03-18 17:38:36 -070028 or ``Aether`` Tenant Group.
29
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800304. Add a **VRF** (Routing Table) for the edge site. This is usually just the name
Zack Williams794532a2021-03-18 17:38:36 -070031 of the site. Make sure that ``Enforce unique space`` is checked, so that IP
32 addresses within the VRF are forced to be unique, and that the Tenant Group
33 and Tenant are set.
34
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800355. Add a **VLAN Group** to the edge site, which groups the site's VLANs and
Zack Williams794532a2021-03-18 17:38:36 -070036 requires that they have a unique VLAN number.
37
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800386. Add **VLANs** for the edge site. These VLAN objects should be assigned a VLAN
39 Group, a Site, and a Tenant.
Zack Williams794532a2021-03-18 17:38:36 -070040
41 There can be multiple of the same VLAN in NetBox (VLANs are layer 2, and
42 local to the site), but not within the VLAN group.
43
44 The minimal list of VLANs:
45
46 * ADMIN 1
47 * UPLINK 10
48 * MGMT 800
49 * FAB 801
50
51 If you have multiple deployments at a site using the same management server,
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080052 add additional VLANs incremented by 10 for the MGMT/FAB - for example, you
53 can create the VLANs for development server as follows:
Zack Williams794532a2021-03-18 17:38:36 -070054
55 * DEVMGMT 810
56 * DEVFAB 801
57
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800587. Add IP **Prefixes** for the site. This should have the Tenant and VRF assigned.
Zack Williams794532a2021-03-18 17:38:36 -070059
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080060 All IP prefixes of Aether Edge will fit into a ``/22`` sized block.
Zack Williams794532a2021-03-18 17:38:36 -070061
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080062 The Prefix description field is used to create DNS names for IP addresses in the Prefix.
63 The DNS A records for each IP address start with the name of the Device, and end with
64 the Prefix description.
Zack Williams794532a2021-03-18 17:38:36 -070065
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080066 For example, if we have a management server named ``mgmtserver`` in **Prefix**
67 ``prod1.menlo.aetherproject.net``, and the management server's DNS name will be
68 ``mgmtserver.prod1.menlo.aetherproject.net``.
Zack Williams794532a2021-03-18 17:38:36 -070069
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080070 Here is an example using the ``10.0.0.0/22`` block. Let's name our deployment
71 as "prod1", and name our site as "menlo". Then we define 4 **Prefixes**
72 with different purposes.
73
74.. note::
75 NOTE: You should replace the **prod1** and **menlo** to your deployment name and
76 site name.
77..
78
79 * ADMIN Prefix - ``10.0.0.0/25`` (for Lights-out management)
Zack Williams794532a2021-03-18 17:38:36 -070080
81 * Has the Server BMC/LOM and Management Switch
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080082 * Assign with the ADMIN 1 VLAN
83 * Set the description to ``admin.prod1.menlo.aetherproject.net`` (or
Zack Williams794532a2021-03-18 17:38:36 -070084 ``prontoproject.net``).
85
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080086 * MGMT Prefix - ``10.0.0.128/25`` (for infrastructure control plane)
Zack Williams794532a2021-03-18 17:38:36 -070087
88 * Has the Server Management plane, Fabric Switch Management/BMC
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080089 * Assign with MGMT 800 VLAN
90 * Set the description to ``prod1.menlo.aetherproject.net`` (or
Zack Williams794532a2021-03-18 17:38:36 -070091 ``prontoproject.net``).
92
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080093 * FABRIC1 Prefix - ``10.0.1.0/25``
Zack Williams794532a2021-03-18 17:38:36 -070094
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080095 * Compute Nodes' qsfp0 port which connects to Fabric switches,
96 and other devices (eNB, ...) connect to the Fabric switches.
97 * Assign with FAB 801 VLAN
98 * Set the description to ``fab1.prod1.menlo.aetherproject.net`` (or
99 ``prontoproject.net``).
100
101 * FABRIC2 Prefix - ``10.0.1.128/25``
102
103 * Compute Nodes' qsfp1 port which connects to Fabric switches
Zack Williams794532a2021-03-18 17:38:36 -0700104 * Assign FAB 801 VLAN
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800105 * Set the description to ``fab2.prod1.menlo.aetherproject.net`` (or
Zack Williams794532a2021-03-18 17:38:36 -0700106 ``prontoproject.net``).
107
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800108 And we will have an additional parent prefix includes 2 FABRIC Prefix.
Zack Williams794532a2021-03-18 17:38:36 -0700109
110 * ``10.0.1.0/24``
111
112 * This is used to configure the correct routes, DNS, and TFTP servers
113 provided by DHCP to the equipment that is connected to the fabric
114 leaf switch that the management server (which provides those
115 services) is not connected to.
116
117 Additionally, these edge prefixes are used for Kubernetes but don't need to
118 be created in NetBox:
119
120 * ``10.0.2.0/24``
121
122 * Kubernetes Pod IP's
123
124 * ``10.0.3.0/24``
125
126 * Kubernetes Cluster IP's
127
Wei-Yu Chenf6c06422021-08-11 11:43:10 +08001288. Add **Devices** to the site, for each piece of equipment. These are named with a
Zack Williams794532a2021-03-18 17:38:36 -0700129 scheme similar to the DNS names used for the pod, given in this format::
130
131 <devname>.<deployment>.<site>
132
133 Examples::
134
135 mgmtserver1.ops1.tucson
136 node1.stage1.menlo
137
138 Note that these names are transformed into DNS names using the Prefixes, and
139 may have additional components - ``admin`` or ``fabric`` may be added after
140 the ``<devname>`` for devices on those networks.
141
142 Set the following fields when creating a device:
143
144 * Site
145 * Tenant
146 * Rack & Rack Position
147 * Serial number
148
149 If a specific Device Type doesn't exist for the device, it must be created,
150 which is detailed in the NetBox documentation, or ask the OPs team for help.
151
152 See `Rackmount of Equipment`_ below for guidance on how equipment should be
153 mounted in the Rack.
154
Wei-Yu Chenf6c06422021-08-11 11:43:10 +08001559. Add **Service** to the management server:
Zack Williams794532a2021-03-18 17:38:36 -0700156
157 * name: ``dns``
158 protocol: UDP
159 port: 53
160
161 * name: ``tftp``
162 protocol: UDP
163 port: 69
164
165 These are used by the DHCP and DNS config to know which servers offer
166 DNS or TFTP service.
167
16810. Set the MAC address for the physical interfaces on the device.
169
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800170 You may also need to add physical network interfaces if they aren't already
Zack Williams794532a2021-03-18 17:38:36 -0700171 created by the Device Type. An example would be if additional add-in
172 network cards were installed.
173
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080017411. Add any virtual interfaces to the **Devices**. When creating a virtual
175 interface, it should have it's ``label`` field set to the name of the
176 physical interface that it is assigned
Zack Williams794532a2021-03-18 17:38:36 -0700177
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800178 These are needed for two cases of the Pronto deployment:
Zack Williams794532a2021-03-18 17:38:36 -0700179
180 1. On the Management Server, there should bet (at least) two VLAN
181 interfaces created attached to the ``eno2`` network port, which
182 are used to provide connectivity to the management plane and fabric.
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800183 These interfaces should be named ``<name of vlan><vlan ID>``, so the
184 MGMT 800 VLAN would become a virtual interface named ``mgmt800``, with
185 the label ``eno2``.
Zack Williams794532a2021-03-18 17:38:36 -0700186
187 2. On the Fabric switches, the ``eth0`` port is shared between the OpenBMC
188 interface and the ONIE/ONL installation. Add a ``bmc`` virtual
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800189 interface with a label of ``eth0`` on each fabric switch, and have the
190 ``OOB Management`` checkbox checked.
Zack Williams794532a2021-03-18 17:38:36 -0700191
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080019212. Create **IP addresses** for the physical and virtual interfaces. These should
Zack Williams794532a2021-03-18 17:38:36 -0700193 have the Tenant and VRF set.
194
195 The Management Server should always have the first IP address in each
196 range, and they should be incremental, in this order. Examples are given as
197 if there was a single instance of each device - adding additional devices
198 would increment the later IP addresses.
199
200 * Management Server
201
202 * ``eno1`` - site provided public IP address, or blank if DHCP
203 provided
204
205 * ``eno2`` - 10.0.0.1/25 (first of ADMIN) - set as primary IP
206 * ``bmc`` - 10.0.0.2/25 (next of ADMIN)
207 * ``mgmt800`` - 10.0.0.129/25 (first of MGMT)
208 * ``fab801`` - 10.0.1.1/25 (first of FAB)
209
210 * Management Switch
211
212 * ``gbe1`` - 10.0.0.3/25 (next of ADMIN) - set as primary IP
213
214 * Fabric Switch
215
216 * ``eth0`` - 10.0.0.130/25 (next of MGMT), set as primary IP
217 * ``bmc`` - 10.0.0.131/25
218
219 * Compute Server
220
221 * ``eth0`` - 10.0.0.132/25 (next of MGMT), set as primary IP
222 * ``bmc`` - 10.0.0.4/25 (next of ADMIN)
223 * ``qsfp0`` - 10.0.1.2/25 (next of FAB)
224 * ``qsfp1`` - 10.0.1.3/25
225
226 * Other Fabric devices (eNB, etc.)
227
228 * ``eth0`` or other primary interface - 10.0.1.4/25 (next of FAB)
229
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080023013. Add **IP address** to the **Prefix** to represent reserved DHCP ranges.
231 We use a single IP address which ``Status`` is set to ``DHCP`` to stand
232 for the DHCP range, the DHCP server will consume the entire range of IP
233 address in the CIDR mask (includes first and last IP addresses).
Zack Williams794532a2021-03-18 17:38:36 -0700234
Wei-Yu Chenf6c06422021-08-11 11:43:10 +0800235 For example, IP ``10.0.0.32/27`` with ``DHCP`` status in Prefix
236 ``10.0.0.0/25``, the IP will be a DHCP block, and allocate IP address from
237 ``10.0.0.32`` to ``10.0.0.63``.
Zack Williams794532a2021-03-18 17:38:36 -0700238
Wei-Yu Chenf6c06422021-08-11 11:43:10 +080023914. Add **IP address** to the **Prefix** to represent route IP reservations for
240 both Fabric prefixes. These are IP addresses used by ONOS to route traffic
241 to the other leaf, and have the following attributes:
Zack Williams794532a2021-03-18 17:38:36 -0700242
243 - Have the last usable address in range (in the ``/25`` fabric examples
244 above, these would be ``10.0.1.126/25`` and ``10.0.1.254/25``)
245
246 - Have a ``Status`` of ``Reserved``, and the VRF, Tenant Group, and Tenant
247 set.
248
249 - The Description must start with the word ``router``, such as: ``router
250 for leaf1 Fabric``
251
252 - A custom field named ``RFC3442 Routes`` is set to the CIDR IP address of
253 the opposite leaf - if the leaf's prefix is ``10.0.1.0/25`` and the
254 router IP is ``10.0.1.126/25`` then ``RFC3442 Routes`` should be set to
255 ``10.0.1.128\25`` (and the reverse - on ``10.0.1.254/25`` the ``RFC3442
256 Routes`` would be set to be ``10.0.1.0/25``). This creates an `RFC3442
257 Classless Static Route Option <https://tools.ietf.org/html/rfc3442>`_
258 for the subnet in DHCP.
259
26015. Add Cables between physical interfaces on the devices
261
262 The topology needs to match the logical diagram presented in the
Zack Williams589ac232021-08-19 08:52:18 -0700263 :ref:`Production Environments <edge_deployment/overview:Production
264 Environments>`. Note that many of the management interfaces need to be
265 located either on the MGMT or ADMIN VLANs, and the management switch is
Zack Williams794532a2021-03-18 17:38:36 -0700266 used to provide that separation.
267
268Rackmount of Equipment
269----------------------
270
Zack Williams2dfb6242021-08-24 09:19:00 -0700271Most of the switch and server equipment used for Aether is available in the 19"
272rackmount form factor, but care needs to be taken in mounting this equipment to
273ensure proper airflow. Please follow these guidelines:
Zack Williams794532a2021-03-18 17:38:36 -0700274
275- The EdgeCore Wedge Switches have a front-to-back (aka "port-to-power") fan
276 configuration, so hot air exhaust is out the back of the switch near the
277 power inlets, away from the 32 QSFP network ports on the front of the switch.
278
Zack Williams589ac232021-08-19 08:52:18 -0700279- The full-depth servers (such as the 1U and 2U Supermicro servers used in
280 Pronto) also have front-to-back airflow but have most of their ports on the
281 rear of the device.
Zack Williams794532a2021-03-18 17:38:36 -0700282
283- Airflow through the rack should be in one direction to avoid heat being
284 pulled from one device into another. This means that to connect the QSFP
285 network ports from the servers to the switches, cabling should be routed
286 through the rack from front (switch) to back (server). Empty rack spaces
287 should be reserved for this purpose.
288
Zack Williams589ac232021-08-19 08:52:18 -0700289- The short-depth management switches and management servers should be mounted
290 on the rear of the rack. They don't generate an appreciable amount of heat,
291 so the airflow direction isn't a significant factor in racking them.
Zack Williams794532a2021-03-18 17:38:36 -0700292
293Inventory
294---------
295
296Once equipment arrives, any device needs to be recorded in inventory if it:
297
2981. Connects to the network (has a MAC address)
2992. Has a serial number
3003. Isn't a subcomponent (disk, add-in card, linecard, etc.) of a larger device.
301
302The following information should be recorded for every device:
303
304- Manufacturer
305- Model
306- Serial Number
307- MAC address (for the primary and any management/BMC/IPMI interfaces)
308
309This information should be be added to the corresponding Devices within the ONF
310NetBox instance. The accuracy of this information is very important as it is
311used in bootstrapping the compute systems, which is currently done by Serial
312Number, as reported to iPXE by SMBIOS.
313
314Once inventory has been completed, let the Infra team know, and the pxeboot
315configuration will be generated to have the OS preseed files corresponding to the
316new servers based on their serial numbers.