blob: 4af68f7a3a23343a0be6e2198a4f287d8fc86b96 [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
11Once the hardware has been ordered, the installation can be planned. The
12following information needs to be added to `NetBox
13<https://netbox.readthedocs.io/en/stable>`_ to describe each edge site:
14
151. Add a Site for the edge (if one doesn't already exist), which has the
16 physical location and contact information for the edge.
17
182. Add equipment Racks to the Site (if they don't already exist).
19
203. Add a Tenant for the edge (who owns/manages it), assigned to the ``Pronto``
21 or ``Aether`` Tenant Group.
22
234. Add a VRF (Routing Table) for the edge site. This is usually just the name
24 of the site. Make sure that ``Enforce unique space`` is checked, so that IP
25 addresses within the VRF are forced to be unique, and that the Tenant Group
26 and Tenant are set.
27
285. Add a VLAN Group to the edge site, which groups the site's VLANs and
29 requires that they have a unique VLAN number.
30
316. Add VLANs for the edge site. These should be assigned a VLAN Group, the
32 Site, and Tenant.
33
34 There can be multiple of the same VLAN in NetBox (VLANs are layer 2, and
35 local to the site), but not within the VLAN group.
36
37 The minimal list of VLANs:
38
39 * ADMIN 1
40 * UPLINK 10
41 * MGMT 800
42 * FAB 801
43
44 If you have multiple deployments at a site using the same management server,
45 add additional VLANs incremented by 10 for the MGMT/FAB - for example:
46
47 * DEVMGMT 810
48 * DEVFAB 801
49
507. Add IP Prefixes for the site. This should have the Tenant and VRF assigned.
51
52 All edge IP prefixes fit into a ``/22`` sized block.
53
54 The description of the Prefix contains the DNS suffix for all Devices that
55 have IP addresses within this Prefix. The full DNS names are generated by
56 combining the first ``<devname>`` component of the Device names with this
57 suffix.
58
59 An examples using the ``10.0.0.0/22`` block. There are 4 edge
60 prefixes, with the following purposes:
61
62 * ``10.0.0.0/25``
63
64 * Has the Server BMC/LOM and Management Switch
65 * Assign the ADMIN 1 VLAN
66 * Set the description to ``admin.<deployment>.<site>.aetherproject.net`` (or
67 ``prontoproject.net``).
68
69 * ``10.0.0.128/25``
70
71 * Has the Server Management plane, Fabric Switch Management/BMC
72 * Assign MGMT 800 VLAN
73 * Set the description to ``<deployment>.<site>.aetherproject.net`` (or
74 ``prontoproject.net``).
75
76 * ``10.0.1.0/25``
77
78 * IP addresses of the qsfp0 port of the Compute Nodes to Fabric switches, devices
79 connected to the Fabric like the eNB
80 * Assign FAB 801 VLAN
81 * Set the description to ``fab1.<deployment>.<site>.aetherproject.net`` (or
82 ``prontoproject.net``).
83
84 * ``10.0.1.128/25``
85
86 * IP addresses of the qsfp1 port of the Compute Nodes to fabric switches
87 * Assign FAB 801 VLAN
88 * Set the description to ``fab2.<deployment>.<site>.aetherproject.net`` (or
89 ``prontoproject.net``).
90
91 There also needs to be a parent range of the two fabric ranges added:
92
93 * ``10.0.1.0/24``
94
95 * This is used to configure the correct routes, DNS, and TFTP servers
96 provided by DHCP to the equipment that is connected to the fabric
97 leaf switch that the management server (which provides those
98 services) is not connected to.
99
100 Additionally, these edge prefixes are used for Kubernetes but don't need to
101 be created in NetBox:
102
103 * ``10.0.2.0/24``
104
105 * Kubernetes Pod IP's
106
107 * ``10.0.3.0/24``
108
109 * Kubernetes Cluster IP's
110
1118. Add Devices to the site, for each piece of equipment. These are named with a
112 scheme similar to the DNS names used for the pod, given in this format::
113
114 <devname>.<deployment>.<site>
115
116 Examples::
117
118 mgmtserver1.ops1.tucson
119 node1.stage1.menlo
120
121 Note that these names are transformed into DNS names using the Prefixes, and
122 may have additional components - ``admin`` or ``fabric`` may be added after
123 the ``<devname>`` for devices on those networks.
124
125 Set the following fields when creating a device:
126
127 * Site
128 * Tenant
129 * Rack & Rack Position
130 * Serial number
131
132 If a specific Device Type doesn't exist for the device, it must be created,
133 which is detailed in the NetBox documentation, or ask the OPs team for help.
134
135 See `Rackmount of Equipment`_ below for guidance on how equipment should be
136 mounted in the Rack.
137
1389. Add Services to the management server:
139
140 * name: ``dns``
141 protocol: UDP
142 port: 53
143
144 * name: ``tftp``
145 protocol: UDP
146 port: 69
147
148 These are used by the DHCP and DNS config to know which servers offer
149 DNS or TFTP service.
150
15110. Set the MAC address for the physical interfaces on the device.
152
153 You may also need to add physical network interfaces if aren't already
154 created by the Device Type. An example would be if additional add-in
155 network cards were installed.
156
15711. Add any virtual interfaces to the Devices. When creating a virtual
158 interface, it should have it's ``label`` field set to the physical network
159 interface that it is assigned
160
161 These are needed are two cases for the Pronto deployment:
162
163 1. On the Management Server, there should bet (at least) two VLAN
164 interfaces created attached to the ``eno2`` network port, which
165 are used to provide connectivity to the management plane and fabric.
166 These should be named ``<name of vlan><vlan ID>``, so the MGMT 800 VLAN
167 would become a virtual interface named ``mgmt800``, with the label
168 ``eno2``.
169
170 2. On the Fabric switches, the ``eth0`` port is shared between the OpenBMC
171 interface and the ONIE/ONL installation. Add a ``bmc`` virtual
172 interface with a label of ``eth0`` on each fabric switch, and check the
173 ``OOB Management`` checkbox.
174
17512. Create IP addresses for the physical and virtual interfaces. These should
176 have the Tenant and VRF set.
177
178 The Management Server should always have the first IP address in each
179 range, and they should be incremental, in this order. Examples are given as
180 if there was a single instance of each device - adding additional devices
181 would increment the later IP addresses.
182
183 * Management Server
184
185 * ``eno1`` - site provided public IP address, or blank if DHCP
186 provided
187
188 * ``eno2`` - 10.0.0.1/25 (first of ADMIN) - set as primary IP
189 * ``bmc`` - 10.0.0.2/25 (next of ADMIN)
190 * ``mgmt800`` - 10.0.0.129/25 (first of MGMT)
191 * ``fab801`` - 10.0.1.1/25 (first of FAB)
192
193 * Management Switch
194
195 * ``gbe1`` - 10.0.0.3/25 (next of ADMIN) - set as primary IP
196
197 * Fabric Switch
198
199 * ``eth0`` - 10.0.0.130/25 (next of MGMT), set as primary IP
200 * ``bmc`` - 10.0.0.131/25
201
202 * Compute Server
203
204 * ``eth0`` - 10.0.0.132/25 (next of MGMT), set as primary IP
205 * ``bmc`` - 10.0.0.4/25 (next of ADMIN)
206 * ``qsfp0`` - 10.0.1.2/25 (next of FAB)
207 * ``qsfp1`` - 10.0.1.3/25
208
209 * Other Fabric devices (eNB, etc.)
210
211 * ``eth0`` or other primary interface - 10.0.1.4/25 (next of FAB)
212
21313. Add DHCP ranges to the IP Prefixes for IP's that aren't reserved. These are
214 done like any other IP Address, but with the ``Status`` field is set to
215 ``DHCP``, and they'll consume the entire range of IP addresses given in the
216 CIDR mask.
217
218 For example ``10.0.0.32/27`` as a DHCP block would take up 1/4 of the ADMIN
219 prefix.
220
22114. Add router IP reservations to the IP Prefix for both Fabric prefixes. These
222 are IP addresses used by ONOS to route traffic to the other leaf, and have
223 the following attributes:
224
225 - Have the last usable address in range (in the ``/25`` fabric examples
226 above, these would be ``10.0.1.126/25`` and ``10.0.1.254/25``)
227
228 - Have a ``Status`` of ``Reserved``, and the VRF, Tenant Group, and Tenant
229 set.
230
231 - The Description must start with the word ``router``, such as: ``router
232 for leaf1 Fabric``
233
234 - A custom field named ``RFC3442 Routes`` is set to the CIDR IP address of
235 the opposite leaf - if the leaf's prefix is ``10.0.1.0/25`` and the
236 router IP is ``10.0.1.126/25`` then ``RFC3442 Routes`` should be set to
237 ``10.0.1.128\25`` (and the reverse - on ``10.0.1.254/25`` the ``RFC3442
238 Routes`` would be set to be ``10.0.1.0/25``). This creates an `RFC3442
239 Classless Static Route Option <https://tools.ietf.org/html/rfc3442>`_
240 for the subnet in DHCP.
241
24215. Add Cables between physical interfaces on the devices
243
244 The topology needs to match the logical diagram presented in the
245 :ref:`network_cable_plan`. Note that many of the management interfaces
246 need to be located either on the MGMT or ADMIN VLANs, and the management
247 switch is
248 used to provide that separation.
249
250Rackmount of Equipment
251----------------------
252
253Most of the Pronto equipment has a 19" rackmount form factor.
254
255Guidelines for mounting this equipment:
256
257- The EdgeCore Wedge Switches have a front-to-back (aka "port-to-power") fan
258 configuration, so hot air exhaust is out the back of the switch near the
259 power inlets, away from the 32 QSFP network ports on the front of the switch.
260
261- The full-depth 1U and 2U Supermicro servers also have front-to-back airflow
262 but have most of their ports on the rear of the device.
263
264- Airflow through the rack should be in one direction to avoid heat being
265 pulled from one device into another. This means that to connect the QSFP
266 network ports from the servers to the switches, cabling should be routed
267 through the rack from front (switch) to back (server). Empty rack spaces
268 should be reserved for this purpose.
269
270- The short-depth management HP Switch and 1U Supermicro servers should be
271 mounted on the rear of the rack. They both don't generate an appreciable
272 amount of heat, so the airflow direction isn't a significant factor in
273 racking them.
274
275Inventory
276---------
277
278Once equipment arrives, any device needs to be recorded in inventory if it:
279
2801. Connects to the network (has a MAC address)
2812. Has a serial number
2823. Isn't a subcomponent (disk, add-in card, linecard, etc.) of a larger device.
283
284The following information should be recorded for every device:
285
286- Manufacturer
287- Model
288- Serial Number
289- MAC address (for the primary and any management/BMC/IPMI interfaces)
290
291This information should be be added to the corresponding Devices within the ONF
292NetBox instance. The accuracy of this information is very important as it is
293used in bootstrapping the compute systems, which is currently done by Serial
294Number, as reported to iPXE by SMBIOS.
295
296Once inventory has been completed, let the Infra team know, and the pxeboot
297configuration will be generated to have the OS preseed files corresponding to the
298new servers based on their serial numbers.