
Welcome to Lukeoson Labs
+ ++ “It takes aeons of evolution and perpetual starvation" ... Work in progress +
+diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..8722b370 --- /dev/null +++ b/404.html @@ -0,0 +1,2472 @@ + + + +
+ + + + + + + + + + + + + + + + + +Luke Richardson is currently employed as Network Architect in London.
+
+ Network Architect
+ Hello@Lukeoson.com
+ Linkedin
+ +447376209455
+ lukeoson
+ Acclaim
+ Please don't hesitate to book time with my Calendly.
Please don't hesitate to book time with my Calendly.
+Just want to chat? I'm always happy to meet people and discuss Technology.
+Scheduling an interview? Awesome. Thanks. Evenings are best.
+Arranging a paid consulting call? My rate is $500 per hour for Network Assurance.
+Need a speaker for your event? I'm ready. Please reach out!
+Want to discuss a potential collaboration? I'm always open to new opportunities.
+Want to talk about climbing? Don't be silly. See you at the crag!
+Anything regarding my current employment at Lloret? Please contact me directly.
+Getting deep and meaningful? You will need to agree that...
+... NOTHING is CERTAIN and EVERYTHING is POSSIBLE. 🎉
+Zoom Meeting with Luke NOW > 320 876 8436
+Google Meeting with Luke NOW > Reach me at lukeoson@gmail.com or 07376 209455
+I cancelled my subscription. If you choose to Zoom it's 40mins on free tier.
+Luke Richardson is currently employed as a Network Architect in London.
+
+ Network Architect
+ Hello@Lukeoson.com
+ Linkedin
+ +447376209455
+ lukeoson
+ Acclaim
+ Please don't hesitate to book time with my Calendly.
Luke's Employment in the Technology Industry includes WeWork & Dimension Data.
+gantt
+dateFormat YYYY
+title Luke's Career Path
+
+section Dimension Data
+Project Management & Network Engineer :done, 2012, 2017
+
+section Redstone
+Network Engineer :done, 2017, 2018
+
+section Sabbatical
+Peace & Quiet :done, 2018, 2019
+
+section WeWork
+Network Architect - Global :done, 2019, 2023
+
+section Lloret Control Systems
+Network Architect :active, 2023, 2025
+Where | +When | +What | +Why | +
---|---|---|---|
Available for Hire | +2024 - | +Network Automation | +Bring it all together | +
Lloret | +2023 - Present | +Network Architect | +Rediscover my Roots | +
WeWork | +2019 - 2023 | +Network Architect - Global | +Build Complex Systems at Scale | +
Redstone | +2017 - 2018 | +Network Engineer & TPM | +Prove Myself | +
Dimension Data | +2012 - 2017 | +PM to Network Engineer | +Learn the Ropes | +
Luke's Education includes a BA in Politics prior to his various Tech Industry roles.
+Where | +When | +What | +Why | +
---|---|---|---|
YouTube | +2008 - 2023 | +> 10,000 hours | +Life long learner | +
University of London | +2005 - 2008 | +Politics BA - 2:1 | +I should have known better | +
Bishop Stopford | +1997 - 2005 | +x4 A-levels Grade A | +The year they let you retake exams! | +
This chart shows a timeline of Luke's Professional Certifications and upcoming expiry.
+gantt
+dateFormat YYYY
+title Luke's Learning Path
+
+section You Tube
+Stay Curious :active, 2019, 2025
+
+section CCNA
+Cisco Route & Switch :done, 2019, 2022
+
+section JNCIA-Junos
+Juniper Networks Certified Associate - Junos :active, 2020, 2025
+
+section JNCIA-DevOps
+Juniper Networks Certified Associate - DevOps :active, 2020, 2025
+
+section JNCIA-Secuirty
+Juniper Networks Certified Associate - Security :active, 2020, 2025
+
+section JNCIA-Mist
+Juniper Networks Certified Associate - Mist :active, 2020, 2025
+
+section Juniper Associate x 4
+Juniper JNCIA x 4 :active, 2021, 2025
+
+section JNCIS-DevOps
+Juniper Networks Certified Specialist - DevOps :active, 2021, 2025
+
+section JNCIS-ENT
+Juniper Networks Certified Specialist - ENT :active, 2023, 2025
+
+section JNCIS-Mist
+Juniper Networks Certified Specialist - Mist :active, 2023, 2025
+
+section Juniper Specialist x3
+Juniper JNCIS x 3 :active, 2023, 2025
+
+section Juniper Innovator
+Juniper Networks Innovator :done, 2023, 2024
+
+section GitLab Associate
+GitLab Certified Git Associate :active, 2021, 2025
+
+section AWS Certified Cloud
+AWS Certified Cloud :active, 2021, 2025
+
+section Okta Professional
+Okta Certified Professional :done, 2021, 2024
+
+section GitHub
+GitHub Foundations :active, 2023, 2025
+
+section Allied Telesis
+Allied Telesis Professional ENT :active, 2023, 2025
+
+section Lost to Time
+Multiple others not stored in Credly :done, 2020, 2025
+Luke's Career story is of ascending rigour & complexity (1) Smartly Summarised
+ +Lloret Control Systems
+Greenfield Architecture of Cisco, Meraki, Aruba, & Allied Telesis.
+At Lloret, i'm regretfully unfulfilled with the industry segment. I'm looking for something more inspiring that embraces the paradigm shift toward Infrastructure as Code.
+++Network Design mapping Client Specifications to constraints.
+
+ Requirements delivered in strict adherence to defined budget.
+ Managed multitudinous stakeholders expectations.
+ Built a frame of reference for future project pipelines.
+ Delivered in strict adherence to defined timeline.
WeWork
+Key contributor to the global Network Architecture.
+Circa 750 Branches spanning >100 Countries with x4 Data Centres in x3 Continents.
+++Transition the Global Branch Network to Juniper Full Stack.
+
+ Radically reduced outages & increased network performance.
+ Accommodations for budget & logistics constraints.
+ Enabled the Golden Config for global standardisation.
+ Completed refresh of First Generation Branches by 2023.
Key contributor to the global Network Automation & Orchestration Strategy.
+Much nuance here, lessons learnt and all that jazz.
+++Incorporate the Branch Network into a code pipeline.
+
+ Reduce the time to deploy a change from days to minutes.
+ Built block by block. Source of Truth & Assurance first.
+ Radically reduce team toil & increased Member MPS.
+ Complete the transition to Infrastructure as Code by 2023.
Owner & Keeper of Nautobot & Netbox Sources of Truth & IPFabric Network Assurance.
+Network to Code & IPFabric are wonderful companies - I joyfully advocate for!
+++Built Nautobot in AWS & IPFabric as distributed On-Premise.
+
+ Accurate Database of >10,000 network devices. No Diff.
+ Cross Functional collaboration with DevOps & Security.
+ Ensure we have viable Sources of Truth both actual & desired.
+ Complete the transition to Infrastructure as Code by 2023.
Administrative duties of Splunk Cloud Observability & Okta SSO.
+An unexpected void following Layoffs - I was eager to help!
+++Be the gateway for SSO configuration & access in Network Systems.
+
+ Configuration & Access verified by Cyber Compliance Team.
+ Training & Documentation for Okta & Splunk.
+ Ensured the Network Team had the correct access to the correct systems.
+ Completed the transition to SSO Okta for capable Systems by 2023.
Luke's Hobbies occupied much of his twenties as he pursued adventure sports.
+Alas, time flies, he is now 38 years old and primarily focused on his career.
+Luke's life tree looks like this:
+ +Luke's 2022 WeWork Performance Review
+If you would like a reference, Brandon Ross would be a useful starting point.
+Describe how Luke has successfully delivered business impact:
+++"Luke is exceptionally good at identifying technology business opportunities and delivering on them. Luke's management of IPFabric and Netbox have been stellar."
+
Brandon Ross, Network Architecture Director, WeWork
+Describe how Luke could work to further elevate their business impact:
+++"Luke should continue his excellent progress at building relationships with other stakeholders around Wework."
+
Brandon Ross, Network Architecture Director, WeWork
+Categorize Luke's proficiency across each impact driver:
+>>>>>>>>>>>>>>
Core Strength>>>>>>>>>>>>>>>>>>
Core Strength>>>>>>>>>>>>>>>>>>>>>>>>>>
Exceptional Skill>>>>>>>>>>>>>
Core Strength>>>>>>>>>>>>>>>>>>
Core Strength>>>>>>>>>>>>>>>>>
Exceptional Skill>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
High>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Maximum++ + + + + + + + + + + + + + + + +Thanks for taking the time to read my resume. Please get in touch. 🎉
+
pedning
+ + + + + + + + + + + + + + + + +pending
+ + + + + + + + + + + + + + + + +pending
+ + + + + + + + + + + + + + + + +Luke's Employment in the Technology Industry includes WeWork & Dimension Data.
+<div data-iframe-width="150" data-iframe-height="270" data-share-badge-id="4e357c24-30e4-4379-8e20-54bedc6213dd" data-share-badge-host="https://www.credly.com"></div>
+<!-- Additional badges can be added here -->
+</div>
+<script type="text/javascript" async src="//cdn.credly.com/assets/utilities/embed.js"></script>
+
pending
+ + + + + + + + + + + + + + + + +pending
+ + + + + + + + + + + + + + + + +pending
+ + + + + + + + + + + + + + + + +IPv4 addresses are assigned by IANA (Internet Assigned Numbers Authority).
+They allocate routable IP addresses to ISPs (Internet Service Providers).
+ISPs assign routable IP addresses to customers.
+Octet Number | +Binary Format | +Decimal Equivalent | +
---|---|---|
1st Octet | +00000000 | +0 - 255 | +
2nd Octet | +00000000 | +0 - 255 | +
3rd Octet | +00000000 | +0 - 255 | +
4th Octet | +00000000 | +0 - 255 | +
Octet Number | +Binary Format | +Decimal Equivalent | +
---|---|---|
1st Octet | +11000000 | +192 | +
2nd Octet | +10101000 | +168 | +
3rd Octet | +00000001 | +1 | +
4th Octet | +00000010 | +2 | +
Component | +Description | +Details | +
---|---|---|
Octet | +An IPv4 address is divided into 4 octets. | +Each octet consists of 8 bits. | +
Bit | +The basic unit of data in an IP address. | +There are 32 bits in total (8 bits per octet). | +
Byte | +Equivalent to one octet. | +Each byte (or octet) ranges from 0 to 255. | +
Example | +For the IP address 192.168.1.2: | +- 192 is the first octet (byte). - 168 is the second octet (byte). - 1 is the third octet (byte). - 2 is the fourth octet (byte). |
+
Octet Number | +Binary Format | +Decimal Equivalent | +
---|---|---|
1st Octet | +00001010 | +10 | +
2nd Octet | +01000110 | +70 | +
3rd Octet | +00000011 | +3 | +
4th Octet | +01100100 | +100 | +
Group Number | +Binary Format | +Hexadecimal Equivalent | +
---|---|---|
1st Group | +0000000000000000 | +0000 - FFFF | +
2nd Group | +0000000000000000 | +0000 - FFFF | +
3rd Group | +0000000000000000 | +0000 - FFFF | +
4th Group | +0000000000000000 | +0000 - FFFF | +
5th Group | +0000000000000000 | +0000 - FFFF | +
6th Group | +0000000000000000 | +0000 - FFFF | +
7th Group | +0000000000000000 | +0000 - FFFF | +
8th Group | +0000000000000000 | +0000 - FFFF | +
Example IPv6 Address: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Step | +Description | +IPv6 Address | +
---|---|---|
1 | +Remove leading zeros in each block | +2001:db8:85a3:0:0:8a2e:370:7334 |
+
2 | +Collapse consecutive blocks of zeros with :: |
+2001:db8:85a3::8a2e:370:7334 |
+
2001:db8:85a3::8a2e:370:7334
must remain as it is. ::
Note
+Dropping leading zeros in IPv6 addresses still makes sense because each field in an IPv6 address is understood to be a fixed size of 16 bits, represented in hexadecimal. When you see a field like 0db8, it's clear that it represents four hexadecimal digits, even if it's written as db8. The leading zero doesn't add any additional information because the size of the field is already established.
+graph LR
+ A[IPv6 Address] --> B[Group 1]
+ A --> C[Group 2]
+ A --> D[Group 3]
+ A --> E[Group 4]
+ A --> F[Group 5]
+ A --> G[Group 6]
+ A --> H[Group 7]
+ A --> I[Group 8]
+
+ B --> B1[16 bits<br>Hex: 2001]
+ C --> C1[16 bits<br>Hex: 0db8]
+ D --> D1[16 bits<br>Hex: 85a3]
+ E --> E1[16 bits<br>Hex: 0000]
+ F --> F1[16 bits<br>Hex: 0000]
+ G --> G1[16 bits<br>Hex: 8a2e]
+ H --> H1[16 bits<br>Hex: 0370]
+ I --> I1[16 bits<br>Hex: 7334]
+
+ style A fill:#f9f,stroke:#333,stroke-width:4px
+ style B fill:#ccf,stroke:#f66,stroke-width:2px
+ style C fill:#ccf,stroke:#f66,stroke-width:2px
+ style D fill:#ccf,stroke:#f66,stroke-width:2px
+ style E fill:#ccf,stroke:#f66,stroke-width:2px
+ style F fill:#ccf,stroke:#f66,stroke-width:2px
+ style G fill:#ccf,stroke:#f66,stroke-width:2px
+ style H fill:#ccf,stroke:#f66,stroke-width:2px
+ style I fill:#ccf,stroke:#f66,stroke-width:2px
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Network Congestion: Broadcast packets are sent to all devices on a network segment, regardless of whether they're the intended recipient. This means every device has to process these packets, even if they're irrelevant. On a busy network, this can lead to a lot of unnecessary data traffic, congesting the network.
+Resource Drain: Each device on the network must process and determine the relevance of broadcast packets. This can be a drain on resources, especially on devices that might already be running heavy tasks. It's like getting a bunch of irrelevant group emails; you have to check each one, just in case.
+Reduced Performance: High levels of broadcast traffic can slow down the overall network performance. Devices spend time and processing power handling these broadcasts, which could be better spent on actual data transmission relevant to their tasks.
+Security Concerns: Broadcasts can be a security risk. They can potentially be used for malicious activities like broadcast storms or as a method to discover devices on a network by an attacker.
+The goal in network design and management is, therefore, to keep broadcast traffic as minimal as possible. This can be achieved by:
+In essence, minimizing broadcast packets helps maintain a smoother, faster, and more secure network. It's like keeping public announcements in a big building to only the floors that need to hear them, rather than blasting them everywhere!
+ + + + + + + + + + + + + + + + +CIDR stands for "Classless Inter-Domain Routing." It's a method used for allocating IP addresses and routing Internet Protocol packets. CIDR replaced the older system based on classes A, B, and C in the 1990s.
+++We call slash notation "CIDR notation" because it's a key component of Classless Inter-Domain Routing (CIDR), which is a method for allocating IP addresses and routing decisions. The slash notation is a concise way to represent an IP address and its associated routing prefix.
+
Decimal Subnet Mask | +Binary Subnet Mask | +CIDR Notation | +
---|---|---|
255.255.255.255 | +11111111.11111111.11111111.11111111 | +/32 | +
255.255.255.254 | +11111111.11111111.11111111.11111110 | +/31 | +
255.255.255.252 | +11111111.11111111.11111111.11111100 | +/30 | +
255.255.255.248 | +11111111.11111111.11111111.11111000 | +/29 | +
255.255.255.240 | +11111111.11111111.11111111.11110000 | +/28 | +
255.255.255.224 | +11111111.11111111.11111111.11100000 | +/27 | +
255.255.255.192 | +11111111.11111111.11111111.11000000 | +/26 | +
255.255.255.128 | +11111111.11111111.11111111.10000000 | +/25 | +
255.255.255.0 | +11111111.11111111.11111111.00000000 | +/24 | +
255.255.254.0 | +11111111.11111111.11111110.00000000 | +/23 | +
255.255.252.0 | +11111111.11111111.11111100.00000000 | +/22 | +
255.255.248.0 | +11111111.11111111.11111000.00000000 | +/21 | +
255.255.240.0 | +11111111.11111111.11110000.00000000 | +/20 | +
255.255.224.0 | +11111111.11111111.11100000.00000000 | +/19 | +
255.255.192.0 | +11111111.11111111.11000000.00000000 | +/18 | +
255.255.128.0 | +11111111.11111111.10000000.00000000 | +/17 | +
255.255.0.0 | +11111111.11111111.00000000.00000000 | +/16 | +
255.254.0.0 | +11111111.11111110.00000000.00000000 | +/15 | +
255.252.0.0 | +11111111.11111100.00000000.00000000 | +/14 | +
255.248.0.0 | +11111111.11111000.00000000.00000000 | +/13 | +
255.240.0.0 | +11111111.11110000.00000000.00000000 | +/12 | +
255.224.0.0 | +11111111.11100000.00000000.00000000 | +/11 | +
255.192.0.0 | +11111111.11000000.00000000.00000000 | +/10 | +
255.128.0.0 | +11111111.10000000.00000000.00000000 | +/9 | +
255.0.0.0 | +11111111.00000000.00000000.00000000 | +/8 | +
254.0.0.0 | +11111110.00000000.00000000.00000000 | +/7 | +
252.0.0.0 | +11111100.00000000.00000000.00000000 | +/6 | +
248.0.0.0 | +11111000.00000000.00000000.00000000 | +/5 | +
240.0.0.0 | +11110000.00000000.00000000.000000 | +/4 | +
224.0.0.0 | +11100000.00000000.00000000.00000000 | +/3 | +
192.0.0.0 | +11000000.00000000.00000000.00000000 | +/2 | +
128.0.0.0 | +10000000.00000000.00000000.00000000 | +/1 | +
0.0.0.0 | +00000000.00000000.00000000.00000000 | +/0 (Default) | +
Class A: Large networks, 0-126.
+0xxxxxxx | First bit is OFF.
+Class B: Medium networks, 128-191.
+10xxxxxx | First bit is ON, Second bit is OFF.
+Class C: Small networks, 192-223.
+110xxxxx | First two bits are ON, Third bit is OFF.
+Class D: Multicast groups, 224-239.
+1110xxxx | First three bits are ON, Fourth bit is OFF.
+Class E: Experimental use, 240-255.
+1111xxxx | First four bits are ON.
+Class | +Leading Bits | +Range of First Octet | +
---|---|---|
A | +0xxxxxxx | +0 - 127 | +
B | +10xxxxxx | +128 - 191 | +
C | +110xxxxx | +192 - 223 | +
D | +1110xxxx | +224 - 239 | +
E | +1111xxxx | +240 - 255 | +
Luke's favourite Visual Subnet Calc from davidc.net.
+A common introductory source of info at How to Network.com.
+Lets start with a Class C network stealing 2 bits from Hosts.
+How about 192.168.100.0/26
+IP Address | +Subnet Mask | +CIDR Notation | +Binary Subnet Mask | +
---|---|---|---|
192.168.100.0 | +255.255.255.192 | +/26 | +11111111.11111111.11111111.11000000 | +
Concept | +Explanation | +
---|---|
Network Address | +192.168.100.128 (192.168.100.130 falls in this range) | +
CIDR Notation | +/26 (means 26 bits for network, remaining for host) | +
Subnet Mask | +255.255.255.192 (or /26) | +
Binary Subnet Mask | +11111111.11111111.11111111.11000000 | +
Host Address Range | +192.168.100.128 - 192.168.100.191 | +
Next Network Address | +192.168.100.192 (since /26 allows 64 addresses per subnet) | +
Broadcast Address | +192.168.100.191 (one less than the next network address) | +
Let's start with a Class B network stealing 3 bits from Hosts.
+How about 172.16.0.0/19
+IP Address | +Subnet Mask | +CIDR Notation | +Binary Subnet Mask | +
---|---|---|---|
172.16.0.0 | +255.255.224.0 | +/19 | +11111111.11111111.11100000.00000000 | +
Concept | +Explanation | +
---|---|
Network Address | +172.16.32.0 (172.16.32.130 falls in this range) | +
CIDR Notation | +/19 (means 19 bits for network, remaining for host) | +
Subnet Mask | +255.255.224.0 (or /19) | +
Binary Subnet Mask | +11111111.11111111.11100000.00000000 | +
Host Address Range | +172.16.32.0 - 172.16.63.255 | +
Next Network Address | +172.16.64.0 (since /19 allows 8192 addresses per subnet) | +
Broadcast Address | +172.16.63.255 (one less than the next network address) | +
Let's start with a Class A network stealing 4 bits from Hosts.
+How about 10.0.0.0/12
+IP Address | +Subnet Mask | +CIDR Notation | +Binary Subnet Mask | +
---|---|---|---|
10.0.0.0 | +255.240.0.0 | +/12 | +11111111.11110000.00000000.00000000 | +
Concept | +Explanation | +
---|---|
Network Address | +10.16.0.0 (10.16.0.130 falls in this range) | +
CIDR Notation | +/12 (means 12 bits for network, remaining for host) | +
Subnet Mask | +255.240.0.0 (or /12) | +
Binary Subnet Mask | +11111111.11110000.00000000.00000000 | +
Host Address Range | +10.16.0.0 - 10.31.255.255 | +
Next Network Address | +10.32.0.0 (since /12 allows 1,048,576 addresses per subnet) | +
Broadcast Address | +10.31.255.255 (one less than the next network address) | +
MAC Addresses are 48 bits long.
+IPv6 Addresses are 128 bits long.
+Made of 16 Symbols
+More User-Friendly Than Binary
+Base-16 Numbering System: Hexadecimal is a base-16 system. Power of 16.
+Binary is Base-2: Binary is a base-2 system. Power of 2.
+Decimal is Base-10: Power of 10. 10 Digits! Caveman Counting.
+graph TD
+ subgraph A[Decimal]
+ A1[0]
+ A2[1]
+ A3[2]
+ A4[3]
+ A5[4]
+ A6[5]
+ A7[6]
+ A8[7]
+ A9[8]
+ A10[9]
+ A11[10]
+ A12[11]
+ A13[12]
+ A14[13]
+ A15[14]
+ A16[15]
+ end
+
+ subgraph B[Hexadecimal]
+ B1[0]
+ B2[1]
+ B3[2]
+ B4[3]
+ B5[4]
+ B6[5]
+ B7[6]
+ B8[7]
+ B9[8]
+ B10[9]
+ B11[A]
+ B12[B]
+ B13[C]
+ B14[D]
+ B15[E]
+ B16[F]
+ end
+
+ A1 --> B1
+ A2 --> B2
+ A3 --> B3
+ A4 --> B4
+ A5 --> B5
+ A6 --> B6
+ A7 --> B7
+ A8 --> B8
+ A9 --> B9
+ A10 --> B10
+ A11 --> B11
+ A12 --> B12
+ A13 --> B13
+ A14 --> B14
+ A15 --> B15
+ A16 --> B16
+Decimal | +Hexadecimal | +Binary | +
---|---|---|
0 | +0 | +0000 | +
1 | +1 | +0001 | +
2 | +2 | +0010 | +
3 | +3 | +0011 | +
4 | +4 | +0100 | +
5 | +5 | +0101 | +
6 | +6 | +0110 | +
7 | +7 | +0111 | +
8 | +8 | +1000 | +
9 | +9 | +1001 | +
10 | +A | +1010 | +
11 | +B | +1011 | +
12 | +C | +1100 | +
13 | +D | +1101 | +
14 | +E | +1110 | +
15 | +F | +1111 | +
pending
+ + + + + + + + + + + + + + + + +Network | +IP Address | +Subnet Mask | +Description | +
---|---|---|---|
LAN | +10.1.0.1 | +255.255.0.0 | +LAN Network | +
STAFF | +10.70.0.1 | +255.255.0.0 | +Staff Network | +
BYOD | +10.110.0.1 | +255.255.0.0 | +BYOD Network | +
GUEST | +10.120.0.1 | +255.255.0.0 | +Guest Network | +
set ip 10.1.0.1 255.255.0.0 #LAN
+set ip 10.70.0.1 255.255.0.0 #STAFF
+set ip 10.110.0.1 255.255.0.0 #BYOD
+set ip 10.120.0.1 255.255.0.0 #GUEST
+
site002 $ get system arp
+Address Age(min) Hardware Addr Interface
+10.70.3.5 0 64:79:f0:45:eb:56 lloret_staff
+10.70.3.72 15 c4:9d:ed:ad:27:d9 lloret_staff
+10.120.0.32 1 d2:eb:db:14:f6:d5 lloret_guest
+10.70.241.1 1 c0:56:e3:50:32:94 lloret_staff
+10.120.0.44 1 66:c9:6a:28:bd:73 lloret_guest
+10.70.3.29 0 d8:bb:c1:0e:e7:8e lloret_staff
+10.70.3.41 0 f4:a8:0d:5c:e5:82 lloret_staff
+10.120.0.68 1 ce:d9:90:ca:85:38 lloret_guest
+10.70.0.206 0 00:0c:29:95:86:5a lloret_staff
+10.70.0.17 0 00:11:32:b4:fd:93 lloret_staff
+10.70.3.53 3 e0:4f:43:e3:c0:b3 lloret_staff
+10.110.0.40 3 26:39:93:9a:9c:c0 lloret_byod
+10.70.240.100 12 6c:4b:90:6b:a1:d6 lloret_staff
+10.120.0.25 1 ce:91:23:e7:02:c0 lloret_guest
+10.70.3.10 3 d8:5e:d3:ae:d4:3c lloret_staff
+10.70.3.77 0 28:16:a8:04:d8:a7 lloret_staff
+10.70.3.22 0 08:3a:88:6d:d2:45 lloret_staff
+10.70.1.69 0 1c:69:7a:64:db:5f lloret_staff
+10.70.3.34 0 6c:24:08:2c:05:dd lloret_staff
+10.110.0.21 0 5a:20:ea:cb:62:b7 lloret_byod
+10.70.3.46 0 f8:75:a4:7f:21:f2 lloret_staff
+10.70.0.10 0 9c:8e:99:4b:9d:68 lloret_staff
+10.1.0.241 1 78:bc:1a:ad:ed:52 lan
+10.120.0.73 1 ba:cc:77:f4:f0:2b lloret_guest
+10.70.3.70 0 f8:75:a4:7f:40:25 lloret_staff
+10.120.0.30 1 0e:4a:68:ac:9d:e3 lloret_guest
+10.70.3.15 1 50:a4:d0:61:13:bd lloret_staff
+10.70.243.153 1 58:fd:b1:56:7c:81 lloret_staff
+10.1.0.21 3 24:9a:d8:2b:16:79 lan
+10.70.3.27 1 6c:4b:90:59:5e:b7 lloret_staff
+10.70.3.39 0 98:ee:cb:ea:0a:70 lloret_staff
+10.70.3.51 0 44:39:c4:34:ee:5c lloret_staff
+10.70.0.15 0 00:11:32:e9:02:2b lloret_staff
+10.1.0.246 1 08:4f:a9:fd:86:c4 lan
+10.120.0.23 0 a2:60:df:48:18:97 lloret_guest
+10.70.2.248 0 b8:27:eb:3f:36:43 lloret_staff
+10.70.3.8 0 50:a4:d0:61:3b:5f lloret_staff
+10.70.3.20 0 50:a4:d0:61:3b:68 lloret_staff
+10.70.3.32 0 04:ec:d8:26:6b:cd lloret_staff
+10.70.3.44 0 48:2a:e3:aa:f5:e4 lloret_staff
+10.70.3.56 1 50:a4:d0:61:3b:44 lloret_staff
+10.120.0.83 1 3e:93:08:cd:7d:00 lloret_guest
+10.70.3.13 1 50:a4:d0:61:3a:6c lloret_staff
+10.70.243.151 8794 88:c9:b3:d0:17:4f lloret_staff
+10.120.0.40 2 62:ca:9e:c2:99:c6 lloret_guest
+10.70.3.25 0 24:9a:d8:0d:1d:d1 lloret_staff
+10.70.3.49 0 28:16:a8:01:87:f5 lloret_staff
+10.1.0.244 1 5c:5a:c7:57:c4:20 lan
+10.70.3.61 0 a4:f9:33:4d:7c:68 lloret_staff
+10.70.3.6 0 f4:a8:0d:32:44:12 lloret_staff
+10.70.3.18 1 50:a4:d0:61:3a:e4 lloret_staff
+86.188.216.217 0 54:a2:74:27:f7:11 wan1
+10.120.0.45 2 56:c0:73:c9:11:da lloret_guest
+10.70.3.30 0 d8:5e:d3:ae:d4:3b lloret_staff
+10.70.243.101 3 00:0e:c6:d3:f1:e4 lloret_staff
+10.70.0.6 2670 9c:b6:54:74:9c:ca lloret_staff
+10.70.3.42 0 10:60:4b:68:0a:8f lloret_staff
+10.70.3.66 0 0c:37:96:15:9e:c7 lloret_staff
+10.70.3.11 0 10:b5:88:06:96:67 lloret_staff
+10.120.0.93 0 26:61:e0:70:54:60 lloret_guest
+10.120.0.38 3 5e:7e:9c:18:45:d0 lloret_guest
+10.70.3.23 3 02:11:32:2f:e9:be lloret_staff
+10.120.0.50 1 42:16:3f:ae:69:02 lloret_guest
+10.70.3.35 0 04:ec:d8:7c:db:de lloret_staff
+10.70.3.47 0 5c:e9:1e:6b:54:a9 lloret_staff
+10.70.0.11 0 02:11:32:27:bb:b6 lloret_staff
+10.1.0.242 1 10:b3:d6:46:49:ee lan
+10.70.3.83 1 e8:eb:1b:11:af:f7 lloret_staff
+10.70.3.28 0 00:0a:b0:07:25:83 lloret_staff
+10.70.3.40 22 40:16:3b:c1:a3:d1 lloret_staff
+10.70.3.52 0 e4:a8:df:95:98:b8 lloret_staff
+10.70.0.16 0 00:11:32:d2:1d:9e lloret_staff
+10.1.0.247 1 78:bc:1a:ad:ee:28 lan
+10.70.3.64 0 d4:3d:7e:7d:fa:89 lloret_staff
+10.70.2.249 0 b8:27:eb:9a:44:39 lloret_staff
+10.70.3.9 0 d8:5e:d3:ae:d2:34 lloret_staff
+10.70.3.21 1 44:39:c4:34:f8:28 lloret_staff
+10.70.3.33 0 14:d6:4d:1f:e5:fa lloret_staff
+10.70.3.45 0 f4:a8:0d:31:df:d1 lloret_staff
+10.70.242.100 52 00:80:f4:46:e9:a2 lloret_staff
+10.70.3.57 2 98:ee:cb:a5:d7:b6 lloret_staff
+10.1.1.12 4 30:b5:c2:cd:9c:6e lan
+10.70.3.2 8432 9c:50:d1:20:49:01 lloret_staff
+10.70.3.69 0 98:ee:cb:b7:23:61 lloret_staff
+10.120.0.29 0 a2:9b:d9:63:07:4f lloret_guest
+10.70.3.14 2 08:3a:88:69:34:be lloret_staff
+10.70.3.81 5 98:ee:cb:9c:3c:48 lloret_staff
+10.70.3.26 5 60:70:c0:48:f6:e4 lloret_staff
+10.70.3.38 0 d8:80:83:3f:58:fb lloret_staff
+10.70.0.14 5 00:11:32:8a:ac:85 lloret_staff
+10.1.0.245 1 08:4f:a9:ae:44:d4 lan
+10.70.3.62 1 8c:89:a5:3c:bf:bf lloret_staff
+192.168.1.1 0 00:1e:42:15:a3:64 wan2
+10.120.0.22 17 68:ec:c5:b1:8f:0f lloret_guest
+10.120.0.89 1 2a:2a:5d:c2:a0:82 lloret_guest
+10.70.3.74 0 cc:48:3a:c3:2a:67 lloret_staff
+10.70.3.19 0 08:3a:88:6d:6c:59 lloret_staff
+10.70.3.31 0 e0:4f:43:25:04:ab lloret_staff
+10.70.3.55 3 e8:ea:6a:83:df:49 lloret_staff
+10.120.0.82 2 4a:bc:2b:b8:12:89 lloret_guest
+10.120.0.27 0 ca:12:b5:1c:71:18 lloret_guest
+10.70.3.12 1 6c:3c:8c:7a:25:46 lloret_staff
+10.70.243.150 2 00:0a:b0:09:66:11 lloret_staff
+10.70.3.24 0 74:97:79:ec:a4:29 lloret_staff
+10.70.3.36 3 50:a4:d0:61:3b:62 lloret_staff
+10.70.0.12 2 02:11:32:27:ba:55 lloret_staff
+
+site002 $
+
IP Address | +Subnet Mask | +CIDR Notation | +Binary Subnet Mask | +
---|---|---|---|
10.1.0.1 | +255.255.0.0 | +/16 | +11111111.11111111.00000000.00000000 | +
Concept | +Explanation | +
---|---|
Network Address | +10.1.0.0 (10.1.0.130 falls in this range) | +
CIDR Notation | +/16 (means 16 bits for network, remaining for host) | +
Subnet Mask | +255.255.0.0 (or /16) | +
Binary Subnet Mask | +11111111.11111111.00000000.00000000 | +
Host Address Range | +10.1.0.0 - 10.1.255.255 | +
Broadcast Address | +10.1.255.255 (covers the entire 10.1.x.x range) | +
This example is specific to the 10.1.0.1/16 subnet, detailing its characteristics and addressing within a Class A network.
+IP Address | +Subnet Mask | +CIDR Notation | +Binary Subnet Mask | +
---|---|---|---|
10.70.0.0 | +255.255.0.0 | +/16 | +11111111.11111111.00000000.00000000 | +
Concept | +Explanation | +
---|---|
Network Address | +10.70.0.0 (10.70.3.130 falls in this range) | +
CIDR Notation | +/16 (means 16 bits for network, remaining for host) | +
Subnet Mask | +255.255.0.0 (or /16) | +
Binary Subnet Mask | +11111111.11111111.00000000.00000000 | +
Host Address Range | +10.70.0.0 - 10.70.255.255 | +
Broadcast Address | +10.70.255.255 (covers the entire 10.70.x.x range) | +
IP Address | +Subnet Mask | +CIDR Notation | +Binary Subnet Mask | +
---|---|---|---|
10.110.0.1 | +255.255.0.0 | +/16 | +11111111.11111111.00000000.00000000 | +
Concept | +Explanation | +
---|---|
Network Address | +10.110.0.0 (10.110.0.130 falls in this range) | +
CIDR Notation | +/16 (means 16 bits for network, remaining for host) | +
Subnet Mask | +255.255.0.0 (or /16) | +
Binary Subnet Mask | +11111111.11111111.00000000.00000000 | +
Host Address Range | +10.110.0.0 - 10.110.255.255 | +
Broadcast Address | +10.110.255.255 (covers the entire 10.110.x.x range) | +
IP Address | +Subnet Mask | +CIDR Notation | +Binary Subnet Mask | +
---|---|---|---|
10.120.0.1 | +255.255.0.0 | +/16 | +11111111.11111111.00000000.00000000 | +
Concept | +Explanation | +
---|---|
Network Address | +10.120.0.0 (10.120.0.130 falls in this range) | +
CIDR Notation | +/16 (means 16 bits for network, remaining for host) | +
Subnet Mask | +255.255.0.0 (or /16) | +
Binary Subnet Mask | +11111111.11111111.00000000.00000000 | +
Host Address Range | +10.120.0.0 - 10.120.255.255 | +
Broadcast Address | +10.120.255.255 (covers the entire 10.120.x.x range) | +
Binary: Base-2, uses 0 and 1.
+ +Hexadecimal: Base-16, uses 0-9 and A-F.
+ +Decimal: Base-10, uses 0-9.
+ +Bit Position | +7 | +6 | +5 | +4 | +3 | +2 | +1 | +0 | +
---|---|---|---|---|---|---|---|---|
Binary Value | +128 | +64 | +32 | +16 | +8 | +4 | +2 | +1 | +
What is The OSI Model by Cloudflare ?
+The Open Systems Interconnect Model from the International Organization for Standardization
+The OSI model was first defined in raw form in Washington, D.C., in February 1978 by French software engineer Hubert Zimmermann, and the refined but still draft standard was published by the ISO in 1980.
+It is a reference model. Ultimately, the TCP/IP model is the more practical model for today's networks, but the OSI model is still used to describe network layers and protocols. The US DoD invented the TCP/IP model in the 1970s, and it was used to build the internet. The OSI model was created in the 1980s by the International Organization for Standardization (ISO), and it was designed to be an abstract model for describing network protocols, not a practical model for building networks.
+Layer Number | +Layer Name | +Function | +Examples | +
---|---|---|---|
7 | +Application | +Provides network services directly to applications | +HTTP, FTP, SMTP | +
6 | +Presentation | +Translates data between the network and application formats | +SSL, TLS, JPEG, MPEG | +
5 | +Session | +Manages sessions between applications | +NetBIOS, RPC | +
4 | +Transport | +Provides reliable data transfer | +TCP, UDP | +
3 | +Network | +Handles addressing and routing of data packets | +IP, ICMP, IPSec | +
2 | +Data Link | +Transfers data between network and physical layers | +Ethernet, PPP, Switch, Bridge | +
1 | +Physical | +Deals with the physical connection to the network, data transmission | +Cables, Hubs, Repeaters, Network Cards | +
Layer Number | +Layer Name | +Function | +Examples | +
---|---|---|---|
4 | +Application | +Handles high-level protocols, representation, encoding | +HTTP, SMTP, FTP, DNS | +
3 | +Transport | +Manages end-to-end data transmission | +TCP, UDP | +
2 | +Internet | +Determines the best path through the network | +IP (IPv4, IPv6), ICMP | +
1 | +Network Access (or Link) | +Deals with the physical aspects of data transmission | +Ethernet, Wi-Fi, ARP | +
Protocol | +OSI Layer | +Description | +
---|---|---|
BACnet | +Application | +Provides rules for data representation and communication. | +
+ | Network | +BACnet/IP uses IP for networking. | +
+ | Physical/Data Link | +Uses Ethernet, ARCNET, or MSTP for physical communication. | +
Modbus | +Application | +Defines its own data model and functions at this layer. | +
+ | Transport | +In Modbus TCP/IP, TCP is used for transport. | +
+ | Network | +Modbus TCP/IP uses IP. | +
+ | Physical/Data Link | +In Modbus Serial (RTU or ASCII), operates over RS-232 or RS-485 lines. | +
Stage | +Description | +
---|---|
1. Generation | +Data is generated or requested by an application. | +
2. Encapsulation | +Data is encapsulated into packets with headers. | +
3. Transmission | +Packets are transmitted over the network. | +
4. Routing | +Routers forward packets based on destination. | +
5. Switching | +Switches forward packets within local networks. | +
6. Arrival | +Packets arrive at their destination. | +
7. Decapsulation | +Packets are decapsulated to retrieve data. | +
8. Delivery | +Data is delivered to the destination app. | +
+-----------------------------------+
+ | Layer 7: Application |
+ | - Data generated by app |
+ +-----------------------------------+
+ | Layer 6: Presentation |
+ | - Data conversion and encoding|
+ +-----------------------------------+
+ | Layer 5: Session |
+ | - Session management |
+ +-----------------------------------+
+ | Layer 4: Transport |
+ | - Segmentation/Reassembly |
+ | - Ports and error checking |
+ +-----------------------------------+
+ | Layer 3: Network |
+ | - Routing |
+ | - Logical addressing |
+ +-----------------------------------+
+ | Layer 2: Data Link |
+ | - Frame creation/interpretation|
+ | - MAC addressing |
+ +-----------------------------------+
+ | Layer 1: Physical |
+ | - Transmission of raw bits |
+ +-----------------------------------+
+
Power of 2 | +Result | +
---|---|
2^0 | +1 | +
2^1 | +2 | +
2^2 | +4 | +
2^3 | +8 | +
2^4 | +16 | +
2^5 | +32 | +
2^6 | +64 | +
2^7 | +128 | +
2^8 | +256 | +
2^9 | +512 | +
2^10 | +1,024 | +
2^11 | +2,048 | +
2^12 | +4,096 | +
2^13 | +8,192 | +
2^14 | +16,384 | +
2^15 | +32,768 | +
2^16 | +65,536 | +
2^17 | +131,072 | +
2^18 | +262,144 | +
2^19 | +524,288 | +
2^20 | +1,048,576 | +
2^21 | +2,097,152 | +
2^22 | +4,194,304 | +
2^23 | +8,388,608 | +
2^24 | +16,777,216 | +
Bit Position | +Possible Values | +
---|---|
1 | +128 | +
2 | +192 | +
3 | +224 | +
4 | +240 | +
5 | +248 | +
6 | +252 | +
7 | +254 | +
8 | +255 | +
Here is my go to Visual Subnet Calc.
+But it is handy to know the basic theory. ␆
+In most programming languages, arrays and sequences start at index 0. This convention carries over to how we count positions in a binary number. It aligns with the way memory addresses and offsets are calculated in computer systems.
+Bit Position | +7 | +6 | +5 | +4 | +3 | +2 | +1 | +0 | +
---|---|---|---|---|---|---|---|---|
Binary Value | +128 | +64 | +32 | +16 | +8 | +4 | +2 | +1 | +
Binary Bits | +Decimal Number | +
---|---|
00000000 | +0 | +
00000001 | +1 | +
00000010 | +2 | +
00000011 | +3 | +
00000100 | +4 | +
00000101 | +5 | +
00000110 | +6 | +
00000111 | +7 | +
00001000 | +8 | +
00001001 | +9 | +
... | +... | +
11111110 | +254 | +
11111111 | +255 | +
Octet Number | +Binary Format | +Decimal Equivalent | +
---|---|---|
1st Octet | +11000000 | +192 | +
2nd Octet | +10101000 | +168 | +
3rd Octet | +00000001 | +1 | +
4th Octet | +00000000 | +0 | +
Octet Number | +Binary Format | +Decimal Equivalent | +
---|---|---|
1st Octet | +11000000 | +192 | +
2nd Octet | +10101000 | +168 | +
3rd Octet | +00000001 | +1 | +
4th Octet | +11111111 | +255 | +
Octet Number | +Binary Format | +Decimal Equivalent | +
---|---|---|
1st Octet | +11000000 | +192 | +
2nd Octet | +10101000 | +168 | +
3rd Octet | +00000001 | +1 | +
4th Octet | +00000001 | +1 | +
Host Bits Status | +Address Type | +Description | +
---|---|---|
All 0s | +Network Address | +The address used to identify the subnet itself. | +
All 1s | +Broadcast Address | +The address used to send data to all hosts on the subnet. | +
Network | +IP Address | +Subnet Mask | +Description | +
---|---|---|---|
LAN | +10.1.0.1 | +255.255.0.0 | +LAN Network | +
STAFF | +10.70.0.1 | +255.255.0.0 | +Staff Network | +
BYOD | +10.110.0.1 | +255.255.0.0 | +BYOD Network | +
GUEST | +10.120.0.1 | +255.255.0.0 | +Guest Network | +
++When we talk about aggregating subnets, we're basically trying to find a bigger subnet that can neatly fit all these smaller subnets inside it.
+
We're looking for the common ground here, the starting point that fits all these ranges. If we look closely, all the addresses start with "10.", which is our first clue. After the "10.", things start to get different, so that's where we need to focus.
+When we do a bit of magical binary conversion and comparison, we find that the common bits in all these addresses go up to the first 8 bits (that's the "10" part). After that, the bits start to differ.
+So, if we were to aggregate these networks, our new subnet would start at 10.0.0.0. But what about the mask? Well, since we only have the first 8 bits in common, our new mask would be 255.0.0.0.
+Therefore, your aggregated subnet would be 10.0.0.0 with a subnet mask of 255.0.0.0. This big subnet umbrella can cover all your smaller subnets like a cozy blanket! 🌐💻🎉
+Network | +IP Address | +Binary Representation (First 10 bits) | +
---|---|---|
LAN | +10.1.0.1 | +00001010.00 | +
STAFF | +10.70.0.1 | +00001010.01 | +
BYOD | +10.110.0.1 | +00001010.01 | +
GUEST | +10.120.0.1 | +00001010.01 | +
traceroute bad.horse
+traceroute to bad.horse (162.252.205.157), 64 hops max, 52 byte packets
+ 1 192.168.200.254 (192.168.200.254) 2.121 ms 2.470 ms 2.295 ms
+ 2 79.173.166.153 (79.173.166.153) 2.599 ms 3.316 ms 2.614 ms
+ 3 195.167.176.78 (195.167.176.78) 3.516 ms 3.514 ms 3.220 ms
+ 4 lon00-br0.as5631.net (83.143.228.238) 4.232 ms 3.710 ms 3.021 ms
+ 5 xe-9-1-2.edge3.london2.level3.net (212.113.9.201) 3.169 ms 3.103 ms 2.936 ms
+ 6 ae1.8.bar4.toronto1.level3.net (4.69.218.54) 90.796 ms 90.944 ms 90.892 ms
+ 7 level3-gw.core02.tor1.prioritycolo.com (4.16.51.30) 91.740 ms 91.998 ms 91.592 ms
+ 8 67.223.96.90 (67.223.96.90) 91.401 ms 91.863 ms 91.377 ms
+ 9 bad.horse (162.252.205.130) 91.974 ms 91.953 ms 91.525 ms
+10 bad.horse (162.252.205.131) 97.062 ms 96.838 ms 98.465 ms
+11 bad.horse (162.252.205.132) 101.131 ms 98.995 ms 99.642 ms
+12 bad.horse (162.252.205.133) 106.636 ms 106.428 ms 106.886 ms
+13 he.rides.across.the.nation (162.252.205.134) 111.930 ms 112.171 ms 131.932 ms
+14 the.thoroughbred.of.sin (162.252.205.135) 116.678 ms 116.763 ms 116.639 ms
+15 he.got.the.application (162.252.205.136) 129.628 ms 121.732 ms 119.512 ms
+16 that.you.just.sent.in (162.252.205.137) 127.010 ms 127.023 ms 125.168 ms
+17 it.needs.evaluation (162.252.205.138) 129.663 ms 131.599 ms 131.342 ms
+18 so.let.the.games.begin (162.252.205.139) 137.167 ms 136.652 ms 134.110 ms
+19 a.heinous.crime (162.252.205.140) 142.548 ms 140.485 ms 141.390 ms
+20 a.show.of.force (162.252.205.141) 146.570 ms * 146.862 ms
+21 a.murder.would.be.nice.of.course (162.252.205.142) 150.387 ms 152.285 ms 148.757 ms
+22 bad.horse (162.252.205.143) 156.445 ms 156.839 ms 156.380 ms
+23 bad.horse (162.252.205.144) 161.859 ms 161.328 ms 161.561 ms
+24 bad.horse (162.252.205.145) 167.209 ms 166.741 ms 165.658 ms
+25 he-s.bad (162.252.205.146) 171.489 ms 169.464 ms 169.579 ms
+26 the.evil.league.of.evil (162.252.205.147) 175.822 ms 176.793 ms 176.918 ms
+27 is.watching.so.beware (162.252.205.148) 181.350 ms 181.487 ms 181.877 ms
+28 the.grade.that.you.receive (162.252.205.149) 186.980 ms 186.881 ms 183.815 ms
+29 will.be.your.last.we.swear (162.252.205.150) 191.504 ms 192.136 ms 191.605 ms
+30 so.make.the.bad.horse.gleeful (162.252.205.151) 194.137 ms 196.883 ms 196.596 ms
+31 or.he-ll.make.you.his.mare (162.252.205.152) 201.546 ms 201.798 ms 201.274 ms
+32 o_o (162.252.205.153) 206.265 ms 207.723 ms 206.742 ms
+33 you-re.saddled.up (162.252.205.154) 323.803 ms 211.544 ms 211.737 ms
+34 there-s.no.recourse (162.252.205.155) 216.559 ms 217.206 ms 216.652 ms
+35 it-s.hi-ho.silver (162.252.205.156) 223.292 ms 333.837 ms 248.602 ms
+36 signed.bad.horse (162.252.205.157) 221.292 ms 221.970 ms 297.960 ms
+
++ + + + + + + + + + + + + + + + + +Here is an image showing a group of diverse cavemen inventing the decimal system, with thought bubbles depicting their dreams of future computers, branded with "Lloret Control Systems", and used for counting a vast number of antelopes. The scenes blend primitive settings with futuristic elements.
+
Aspect | +Wildcard Mask | +Subnet Mask | +
---|---|---|
Purpose | +Used in Access Control Lists (ACLs) to specify which IP addresses to permit or deny access to. | +Used in IP addressing to divide a network into subnetworks and determine the network and host portions of an IP address. | +
Format | +Inverse of subnet mask. It marks the bits that are to be matched with the corresponding bits in an IP address. | +Binary mask with 1s indicating the network portion and 0s indicating the host portion. | +
Representation | +Typically represented with the "wildcard bits" keyword in ACLs, followed by a series of four octets with values between 0 and 255 separated by dots. Example: 0.0.0.255 |
+Represented using the same dotted decimal format as IP addresses, with a varying number of bits set to 1. Example: 255.255.255.0 |
+
Usage Example | +To permit access to IP addresses within a specific range, specify the wildcard mask in an ACL entry. Example: permit 192.168.1.0 0.0.0.255 allows all addresses in the 192.168.1.0/24 subnet. |
+To define network boundaries within an IP address range, apply the subnet mask to the IP addresses. Example: 192.168.1.0/24 represents a subnet with a subnet mask of 255.255.255.0 . |
+
Network Calculation | +To calculate the network ID from an IP address, perform a bitwise AND operation with the IP address and the wildcard mask. | +To calculate the network ID from an IP address, perform a bitwise AND operation with the IP address and the subnet mask. | +
CAT-ENT Training
+The Training Instructions 2020 - Student 4 from Allied Telesis.
+The CAT-ENT.pptx from Allied Telesis.
+The CAT-ENT-INTRO from Allied Telesis.
+CAP-ENT Training
+The Training Instructions 2020 - Student 4 from Allied Telesis.
+The CAP-ENT.pptx from Allied Telesis.
+The CAP-ENT-INTRO).pdf from Allied Telesis.
+The CAP-ENT-EXTENDED.pdf from Allied Telesis.
+pending
+ + + + + + + + + + + + + + + + +pending
+ + + + + + + + + + + + + + + + +Alas, my Company has a preference for Allied Telesis, as a cheaper alternative.
+Value Engineering, so they say.
+So I have to learn it.
+Manager Friendly
+I have touched Allied Telesis before. My former employer had a lucky dip smattering of Allied Telesis in the Network i would occasionally stumble upon. I remember them well because they were known by the slang manager friendly due to the default credentials being manager:friend
! that chimed with the lower price point... to the chagrin of the Network Team.
The CAP/ENT training course provides knowledge of the AlliedWare Plus operating system.
+The course ends with an open-book multiple-choice exam.
+++Monday 5th February 2024 - Wednesday 7th February 2024
+
A remote lab is provided for the course. You SHH to a Linux box and onward to the console of the Allied Telesis Firewall & Switches.
+No Stack | |
---|---|
Use lsof -i tcp:22
to see the SSH sessions to the lab devices. In our case we have x2 per lab device as we are passing a linux jump box to reach the device console.
The command lsof -i tcp:22
is used in Unix-like operating systems to list open files and network connections. The components of this command (lsof, -i, tcp:22) each have specific meanings:
lsof
: This stands for "List Open Files". lsof is a command-line utility that provides information about files that are opened by processes. In Unix and Linux systems, almost everything is treated as a file, including physical devices, directories, and network sockets.
-i
: This option tells lsof to show network connections. When used without any additional parameters, -i lists all network files. However, it can be further narrowed down with additional parameters like protocol type (TCP or UDP) and port numbers.
tcp:22
: This further filters the lsof output to show only TCP connections (due to tcp) that are using port 22. Port 22 is the default port for SSH (Secure Shell) connections, which are used for securely accessing remote machines.
➜ ~ lsof -i tcp:22
+
+COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
+ssh 94715 lukeoson 4u IPv4 0x52af948b88c31015 0t0 TCP 192.168.1.108:61894->194.73.86.54:ssh (ESTABLISHED)
+ssh 94715 lukeoson 5u IPv4 0x52af948b88c31015 0t0 TCP 192.168.1.108:61894->194.73.86.54:ssh (ESTABLISHED)
+ssh 94838 lukeoson 4u IPv4 0x52af948b8986327d 0t0 TCP 192.168.1.108:61928->194.73.86.54:ssh (ESTABLISHED)
+ssh 94838 lukeoson 5u IPv4 0x52af948b8986327d 0t0 TCP 192.168.1.108:61928->194.73.86.54:ssh (ESTABLISHED)
+ssh 94938 lukeoson 4u IPv4 0x52af948b8862e705 0t0 TCP 192.168.1.108:61965->194.73.86.54:ssh (ESTABLISHED)
+ssh 94938 lukeoson 5u IPv4 0x52af948b8862e705 0t0 TCP 192.168.1.108:61965->194.73.86.54:ssh (ESTABLISHED)
+
And you get a topology like this:
+ +The first thing we did was unstack the switches. Couple of reboots required to remove the provisioned devices and renumber to 1. This exercise was to prepare the lab for the content to follow.
+No Stack | |
---|---|
With the devices unstacked we can proceed to the course content.
+The first module covered some Spanning Tree features.
+Root Guard | |
---|---|
Verify with show spanning-tree brief
.
BPDU Guard | |
---|---|
Error Disabled Timeout | |
---|---|
Usage:
+specifies the time interval after which a port is brought back up when it has been disabled by the BPDU guard feature
+Loop Detection | |
---|---|
Warning
+Always remove loop-protection loop-detect ldf-interval 5
when enabling EPSR.
2017 Feb 24 00:58:39 user.warning RACK1 HSL[877]: Thrash-limiting: Disabled learning on port2.0.26 by 0202.0ayy.xxxx on VLAN 20
+2017 Feb 24 00:58:39 user.warning RACK1 HSL[877]: Thrash-limiting: Disabled learning on port1.0.25 by 0202.0ayy.xxxx on VLAN 2
+2017 Feb 24 00:58:39 user.warning RACK1 HSL[877]: Thrash-limiting: Disabled learning on sa50 by 0202.0ayy.xxxx on VLAN 2
+
Spanning tree
+ Ports blocked by a spanning tree protocol can still transmit and receive LLDP advertisements.
+802.1x
+ Ports blocked by 802.1x port authorization cannot transmit or receive LLDP advertisements. If LLDP has stored information for a neighbor on the port before it was blocked, this information will eventually time out and be discarded.
+VLAN tagging
+ LLDP packets are untagged; they do not contain 802.1Q header information with VLAN identifier and priority tagging.
+Virtual Chassis Stacking (VCStack) resiliency link
+ When a port is configured as a VCStack resiliency link port, LLDP does not operate on the port; LLDP neither transmits nor receives advertisements, and any LLDP configuration and data stored for the port, including counters, is discarded.
+Mirror ports
+* LLDP does not operate on mirror analyzer ports
``` py linenums="1" title="LLDP" hl_lines="1 2"
+Free 2D symbols for computer network diagrams.
+Simple. I wanted modern, crisp, pixel-perfect, printable, manufacturer independent symbols for computer-network topology that does not look like they were made in the 80s.
+sed -e "s/rgb(77,77,77)/rgb(45,103,185)/" c_shield_gray.svg > c_shield_blue.svg
{"use strict";var fs=/["'&<>]/;di.exports=us;function us(e){var t=""+e,r=fs.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i I'm Luke. Currently employed as a Network Architect in London. Here you will find my Resume, my new Blog, and some Network related content. I'm open to new and compelling opportunities in the Network Automation realm If you have a role that you think I might be interested in, please get in touch. You have my thanks and appreciation. My door is open. You can Hire Me I'm open to new opportunities in London. It's, unapologetically, of dubious quality. Some highlights you may consider: Or, for something even more frivolous: Here's my Book Recommendations And my Favourite Quotes Other than that, these pages provide a rudiment of information covering my interests in Network Automation as a career journey captured by the Epics: This content is limited. It's less than MVP. And nothing close to MLP. It's Dev in progress. I have decided not to port any previous content to this site. I'm starting from scratch. The fundamentals of TCP/IP Networks. Some initial content you may consider: Introduction to CIDR & VLSM ... The path to Network as Code. Some initial content you may consider: Introduction to Version Control ... These Pages are built with Mkdocs ... The Network Sources of Truth ...
+ “It takes aeons of evolution and perpetual starvation" ... Work in progress
+ I'm Luke. Currently employed as a Network Architect in London. Here you will find my Resume, my new Blog, and some Network related content. I'm open to new and compelling opportunities in the Network Automation realm If you have a role that you think I might be interested in, please get in touch. You have my thanks and appreciation. My door is open. You can Hire Me I'm open to new opportunities in London. Luke's LinkedIn Luke's Mail Luke's GitHub Luke's Acclaim Resume Word Download Resume PDF Download Book a Meeting You can Read my Blog It's, unapologetically, of dubious quality. Some highlights you may consider: AutoCon Zero 2023 Cisco Live EMEA 2023 Cisco Live Vegas 2022 Or, for something even more frivolous: Here's my Book Recommendations And my Favourite Quotes Other than that, these pages provide a rudiment of information covering my interests in Network Automation as a career journey captured by the Epics: This content is limited. It's less than MVP. And nothing close to MLP. It's Dev in progress. I have decided not to port any previous content to this site. I'm starting from scratch. Basic Network Theory The fundamentals of TCP/IP Networks. Some initial content you may consider: Introduction to CIDR & VLSM ... Introduction to DNS ... Introduction to NAC ... Infrastructure as Code The path to Network as Code. Some initial content you may consider: Introduction to Version Control ... These Pages are built with Mkdocs ... The Network Sources of Truth ... Luke Richardson is currently employed as Network Architect in London. Network Architect Hello@Lukeoson.com Linkedin +447376209455 lukeoson Acclaim Please don't hesitate to book time with my Calendly. Please don't hesitate to book time with my Calendly. Just want to chat? I'm always happy to meet people and discuss Technology. Scheduling an interview? Awesome. Thanks. Evenings are best. Arranging a paid consulting call? My rate is $500 per hour for Network Assurance. Need a speaker for your event? I'm ready. Please reach out! Want to discuss a potential collaboration? I'm always open to new opportunities. Want to talk about climbing? Don't be silly. See you at the crag! Anything regarding my current employment at Lloret? Please contact me directly. Getting deep and meaningful? You will need to agree that... ... NOTHING is CERTAIN and EVERYTHING is POSSIBLE. \ud83c\udf89 Zoom Meeting with Luke NOW > 320 876 8436 Google Meeting with Luke NOW > Reach me at lukeoson@gmail.com or 07376 209455 I cancelled my subscription. If you choose to Zoom it's 40mins on free tier. Luke Richardson is currently employed as a Network Architect in London. Network Architect Hello@Lukeoson.com Linkedin +447376209455 lukeoson Acclaim Please don't hesitate to book time with my Calendly. Luke's Employment in the Technology Industry includes WeWork & Dimension Data. Luke's Education includes a BA in Politics prior to his various Tech Industry roles. This chart shows a timeline of Luke's Professional Certifications and upcoming expiry. Luke's Career story is of ascending rigour & complexity (1) Smartly Summarised Lloret Control Systems Greenfield Architecture of Cisco, Meraki, Aruba, & Allied Telesis. At Lloret, i'm regretfully unfulfilled with the industry segment. I'm looking for something more inspiring that embraces the paradigm shift toward Infrastructure as Code. Network Design mapping Client Specifications to constraints. Requirements delivered in strict adherence to defined budget. Managed multitudinous stakeholders expectations. Built a frame of reference for future project pipelines. Delivered in strict adherence to defined timeline. WeWork Key contributor to the global Network Architecture. Circa 750 Branches spanning >100 Countries with x4 Data Centres in x3 Continents. Transition the Global Branch Network to Juniper Full Stack. Radically reduced outages & increased network performance. Accommodations for budget & logistics constraints. Enabled the Golden Config for global standardisation. Completed refresh of First Generation Branches by 2023. Key contributor to the global Network Automation & Orchestration Strategy. Much nuance here, lessons learnt and all that jazz. Incorporate the Branch Network into a code pipeline. Reduce the time to deploy a change from days to minutes. Built block by block. Source of Truth & Assurance first. Radically reduce team toil & increased Member MPS. Complete the transition to Infrastructure as Code by 2023. Owner & Keeper of Nautobot & Netbox Sources of Truth & IPFabric Network Assurance. Network to Code & IPFabric are wonderful companies - I joyfully advocate for! Built Nautobot in AWS & IPFabric as distributed On-Premise. Accurate Database of >10,000 network devices. No Diff. Cross Functional collaboration with DevOps & Security. Ensure we have viable Sources of Truth both actual & desired. Complete the transition to Infrastructure as Code by 2023. Administrative duties of Splunk Cloud Observability & Okta SSO. An unexpected void following Layoffs - I was eager to help! Be the gateway for SSO configuration & access in Network Systems. Configuration & Access verified by Cyber Compliance Team. Training & Documentation for Okta & Splunk. Ensured the Network Team had the correct access to the correct systems. Completed the transition to SSO Okta for capable Systems by 2023. Luke's Hobbies occupied much of his twenties as he pursued adventure sports. Alas, time flies, he is now 38 years old and primarily focused on his career. Luke's life tree looks like this: Luke's 2022 WeWork Performance Review If you would like a reference, Brandon Ross would be a useful starting point. Describe how Luke has successfully delivered business impact: \"Luke is exceptionally good at identifying technology business opportunities and delivering on them. Luke's management of IPFabric and Netbox have been stellar.\" Brandon Ross, Network Architecture Director, WeWork Describe how Luke could work to further elevate their business impact: \"Luke should continue his excellent progress at building relationships with other stakeholders around Wework.\" Brandon Ross, Network Architecture Director, WeWork Categorize Luke's proficiency across each impact driver: Thanks for taking the time to read my resume. Please get in touch. \ud83c\udf89 pending pedning pending Luke's Employment in the Technology Industry includes WeWork & Dimension Data. pending pending pending pending IPv4 addresses are assigned by IANA (Internet Assigned Numbers Authority). They allocate routable IP addresses to ISPs (Internet Service Providers). ISPs assign routable IP addresses to customers. Google IPv6 Adoption Tracker Example IPv6 Address: Note Dropping leading zeros in IPv6 addresses still makes sense because each field in an IPv6 address is understood to be a fixed size of 16 bits, represented in hexadecimal. When you see a field like 0db8, it's clear that it represents four hexadecimal digits, even if it's written as db8. The leading zero doesn't add any additional information because the size of the field is already established. Network Congestion: Broadcast packets are sent to all devices on a network segment, regardless of whether they're the intended recipient. This means every device has to process these packets, even if they're irrelevant. On a busy network, this can lead to a lot of unnecessary data traffic, congesting the network. Resource Drain: Each device on the network must process and determine the relevance of broadcast packets. This can be a drain on resources, especially on devices that might already be running heavy tasks. It's like getting a bunch of irrelevant group emails; you have to check each one, just in case. Reduced Performance: High levels of broadcast traffic can slow down the overall network performance. Devices spend time and processing power handling these broadcasts, which could be better spent on actual data transmission relevant to their tasks. Security Concerns: Broadcasts can be a security risk. They can potentially be used for malicious activities like broadcast storms or as a method to discover devices on a network by an attacker. The goal in network design and management is, therefore, to keep broadcast traffic as minimal as possible. This can be achieved by: In essence, minimizing broadcast packets helps maintain a smoother, faster, and more secure network. It's like keeping public announcements in a big building to only the floors that need to hear them, rather than blasting them everywhere! CIDR stands for \"Classless Inter-Domain Routing.\" It's a method used for allocating IP addresses and routing Internet Protocol packets. CIDR replaced the older system based on classes A, B, and C in the 1990s. We call slash notation \"CIDR notation\" because it's a key component of Classless Inter-Domain Routing (CIDR), which is a method for allocating IP addresses and routing decisions. The slash notation is a concise way to represent an IP address and its associated routing prefix. Class A: Large networks, 0-126. 0xxxxxxx | First bit is OFF. Class B: Medium networks, 128-191. 10xxxxxx | First bit is ON, Second bit is OFF. Class C: Small networks, 192-223. 110xxxxx | First two bits are ON, Third bit is OFF. Class D: Multicast groups, 224-239. 1110xxxx | First three bits are ON, Fourth bit is OFF. Class E: Experimental use, 240-255. 1111xxxx | First four bits are ON. Luke's favourite Visual Subnet Calc from davidc.net. A common Book and associated YouTube. A common introductory source of info at How to Network.com. Lets start with a Class C network stealing 2 bits from Hosts. How about 192.168.100.0/26 Let's start with a Class B network stealing 3 bits from Hosts. How about 172.16.0.0/19 Let's start with a Class A network stealing 4 bits from Hosts. How about 10.0.0.0/12 MAC Addresses are 48 bits long. IPv6 Addresses are 128 bits long. Made of 16 Symbols More User-Friendly Than Binary Base-16 Numbering System: Hexadecimal is a base-16 system. Power of 16. Binary is Base-2: Binary is a base-2 system. Power of 2. Decimal is Base-10: Power of 10. 10 Digits! Caveman Counting. b){var w=i.offsetWidth,T=i.offsetHeight,C=o/T,k={width:w*C,height:T*C};i.parentNode.setAttribute("style","max-width: ".concat(k.width,"px")),r&&s.setAttribute("style","max-width: ".concat(k.width,"px;"))}else i.parentNode.style.maxWidth="".concat(x),r&&s.setAttribute("style","max-width: ".concat(x,";"))}}}}},{key:"reload",value:function(){this.init()}},{key:"updateNavigationClasses",value:function(){var e=this.loop();d(this.nextButton,"disabled"),d(this.prevButton,"disabled"),0==this.index&&this.elements.length-1==0?(h(this.prevButton,"disabled"),h(this.nextButton,"disabled")):0!==this.index||e?this.index!==this.elements.length-1||e||h(this.nextButton,"disabled"):h(this.prevButton,"disabled")}},{key:"loop",value:function(){var e=O(this.settings,"loopAtEnd")?this.settings.loopAtEnd:null;return e=O(this.settings,"loop")?this.settings.loop:e,e}},{key:"close",value:function(){var e=this;if(!this.lightboxOpen){if(this.events){for(var t in this.events)this.events.hasOwnProperty(t)&&this.events[t].destroy();this.events=null}return!1}if(this.closing)return!1;this.closing=!0,this.slidePlayerPause(this.activeSlide),this.fullElementsList&&(this.elements=this.fullElementsList),this.bodyHiddenChildElms.length&&o(this.bodyHiddenChildElms,(function(e){e.removeAttribute("aria-hidden")})),h(this.modal,"glightbox-closing"),g(this.overlay,"none"==this.settings.openEffect?"none":this.settings.cssEfects.fade.out),g(this.activeSlide,this.settings.cssEfects[this.settings.closeEffect].out,(function(){if(e.activeSlide=null,e.prevActiveSlideIndex=null,e.prevActiveSlide=null,e.built=!1,e.events){for(var t in e.events)e.events.hasOwnProperty(t)&&e.events[t].destroy();e.events=null}var i=document.body;d(Q,"glightbox-open"),d(i,"glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"),e.modal.parentNode.removeChild(e.modal),e.trigger("close"),T(e.settings.onClose)&&e.settings.onClose();var n=document.querySelector(".gcss-styles");n&&n.parentNode.removeChild(n),e.lightboxOpen=!1,e.closing=null}))}},{key:"destroy",value:function(){this.close(),this.clearAllEvents(),this.baseEvents&&this.baseEvents.destroy()}},{key:"on",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!T(t))throw new TypeError("Event name and callback must be defined");this.apiEvents.push({evt:e,once:i,callback:t})}},{key:"once",value:function(e,t){this.on(e,t,!0)}},{key:"trigger",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=[];o(this.apiEvents,(function(t,s){var l=t.evt,o=t.once,r=t.callback;l==e&&(r(i),o&&n.push(s))})),n.length&&o(n,(function(e){return t.apiEvents.splice(e,1)}))}},{key:"clearAllEvents",value:function(){this.apiEvents.splice(0,this.apiEvents.length)}},{key:"version",value:function(){return"3.1.1"}}]),e}();return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new te(e);return t.init(),t}}));
diff --git a/assets/javascripts/lunr/min/lunr.ar.min.js b/assets/javascripts/lunr/min/lunr.ar.min.js
new file mode 100644
index 00000000..9b06c26c
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ar.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWordFilter,e.ar.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ar.stemmer))},e.ar.wordCharacters="ء-ٛٱـ",e.ar.trimmer=e.trimmerSupport.generateTrimmer(e.ar.wordCharacters),e.Pipeline.registerFunction(e.ar.trimmer,"trimmer-ar"),e.ar.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ف ك ب و س ل ن ا ي ت",pre2:"ال لل",pre3:"بال وال فال تال كال ولل",pre4:"فبال كبال وبال وكال"},e.suf={suf1:"ه ك ت ن ا ي",suf2:"نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه",suf3:"تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها",suf4:"كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا"},e.patterns=JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}'),e.execArray=["cleanWord","removeDiacritics","cleanAlef","removeStopWords","normalizeHamzaAndAlef","removeStartWaw","removePre432","removeEndTaa","wordCheck"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.he.min.js b/assets/javascripts/lunr/min/lunr.he.min.js
new file mode 100644
index 00000000..b863d3ea
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.he.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.he=function(){this.pipeline.reset(),this.pipeline.add(e.he.trimmer,e.he.stopWordFilter,e.he.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.he.stemmer))},e.he.wordCharacters="֑-״א-תa-zA-Za-zA-Z0-90-9",e.he.trimmer=e.trimmerSupport.generateTrimmer(e.he.wordCharacters),e.Pipeline.registerFunction(e.he.trimmer,"trimmer-he"),e.he.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ה ו י ת",pre2:"ב כ ל מ ש כש",pre3:"הב הכ הל המ הש בש לכ",pre4:"וב וכ ול ומ וש",pre5:"מה שה כל",pre6:"מב מכ מל ממ מש",pre7:"בה בו בי בת כה כו כי כת לה לו לי לת",pre8:"ובה ובו ובי ובת וכה וכו וכי וכת ולה ולו ולי ולת"},e.suf={suf1:"ך כ ם ן נ",suf2:"ים ות וך וכ ום ון ונ הם הן יכ יך ינ ים",suf3:"תי תך תכ תם תן תנ",suf4:"ותי ותך ותכ ותם ותן ותנ",suf5:"נו כם כן הם הן",suf6:"ונו וכם וכן והם והן",suf7:"תכם תכן תנו תהם תהן",suf8:"הוא היא הם הן אני אתה את אנו אתם אתן",suf9:"ני נו כי כו כם כן תי תך תכ תם תן",suf10:"י ך כ ם ן נ ת"},e.patterns=JSON.parse('{"hebrewPatterns": [{"pt1": [{"c": "ה", "l": 0}]}, {"pt2": [{"c": "ו", "l": 0}]}, {"pt3": [{"c": "י", "l": 0}]}, {"pt4": [{"c": "ת", "l": 0}]}, {"pt5": [{"c": "מ", "l": 0}]}, {"pt6": [{"c": "ל", "l": 0}]}, {"pt7": [{"c": "ב", "l": 0}]}, {"pt8": [{"c": "כ", "l": 0}]}, {"pt9": [{"c": "ש", "l": 0}]}, {"pt10": [{"c": "כש", "l": 0}]}, {"pt11": [{"c": "בה", "l": 0}]}, {"pt12": [{"c": "וב", "l": 0}]}, {"pt13": [{"c": "וכ", "l": 0}]}, {"pt14": [{"c": "ול", "l": 0}]}, {"pt15": [{"c": "ומ", "l": 0}]}, {"pt16": [{"c": "וש", "l": 0}]}, {"pt17": [{"c": "הב", "l": 0}]}, {"pt18": [{"c": "הכ", "l": 0}]}, {"pt19": [{"c": "הל", "l": 0}]}, {"pt20": [{"c": "המ", "l": 0}]}, {"pt21": [{"c": "הש", "l": 0}]}, {"pt22": [{"c": "מה", "l": 0}]}, {"pt23": [{"c": "שה", "l": 0}]}, {"pt24": [{"c": "כל", "l": 0}]}]}'),e.execArray=["cleanWord","removeDiacritics","removeStopWords","normalizeHebrewCharacters"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r
=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.pt.min.js b/assets/javascripts/lunr/min/lunr.pt.min.js
new file mode 100644
index 00000000..6c16996d
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.pt.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Portuguese` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.ro.min.js b/assets/javascripts/lunr/min/lunr.ro.min.js
new file mode 100644
index 00000000..72771401
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ro.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Romanian` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Post01
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Welcome to Lukeoson Labs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+While i have you, please do remember ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Welcome to Lukeoson Labs
+
+
While i have you, please do remember ...
"},{"location":"tags/","title":"Tags","text":"
"},{"location":"Contact/","title":"Contact","text":"
"},{"location":"Contact/#meet-with-luke","title":"Meet with Luke","text":"
"},{"location":"Contact/#schedule-meeting","title":"Schedule Meeting","text":"
"},{"location":"Hire-Me/#employment-history","title":"Employment History","text":"
"},{"location":"Hire-Me/#education","title":"Education","text":"
Where When What Why Available for Hire 2024 - Network Automation Bring it all together Lloret 2023 - Present Network Architect Rediscover my Roots WeWork 2019 - 2023 Network Architect - Global Build Complex Systems at Scale Redstone 2017 - 2018 Network Engineer & TPM Prove Myself Dimension Data 2012 - 2017 PM to Network Engineer Learn the Ropes gantt\ndateFormat YYYY\ntitle Luke's Career Path\n\nsection Dimension Data\nProject Management & Network Engineer :done, 2012, 2017\n\nsection Redstone\nNetwork Engineer :done, 2017, 2018\n\nsection Sabbatical\nPeace & Quiet :done, 2018, 2019\n\nsection WeWork\nNetwork Architect - Global :done, 2019, 2023\n\nsection Lloret Control Systems\nNetwork Architect :active, 2023, 2025
"},{"location":"Hire-Me/#career-achievements","title":"Career Achievements","text":"gantt\ndateFormat YYYY\ntitle Luke's Learning Path \n\nsection You Tube \nStay Curious :active, 2019, 2025\n\nsection CCNA \nCisco Route & Switch :done, 2019, 2022\n\nsection JNCIA-Junos \nJuniper Networks Certified Associate - Junos :active, 2020, 2025\n\nsection JNCIA-DevOps \nJuniper Networks Certified Associate - DevOps :active, 2020, 2025\n\nsection JNCIA-Secuirty \nJuniper Networks Certified Associate - Security :active, 2020, 2025\n\nsection JNCIA-Mist \nJuniper Networks Certified Associate - Mist :active, 2020, 2025\n\nsection Juniper Associate x 4 \nJuniper JNCIA x 4 :active, 2021, 2025 \n\nsection JNCIS-DevOps \nJuniper Networks Certified Specialist - DevOps :active, 2021, 2025 \n\nsection JNCIS-ENT \nJuniper Networks Certified Specialist - ENT :active, 2023, 2025 \n\nsection JNCIS-Mist \nJuniper Networks Certified Specialist - Mist :active, 2023, 2025 \n\nsection Juniper Specialist x3 \nJuniper JNCIS x 3 :active, 2023, 2025 \n\nsection Juniper Innovator\nJuniper Networks Innovator :done, 2023, 2024 \n\nsection GitLab Associate \nGitLab Certified Git Associate :active, 2021, 2025 \n\nsection AWS Certified Cloud\nAWS Certified Cloud :active, 2021, 2025 \n\nsection Okta Professional \nOkta Certified Professional :done, 2021, 2024 \n\nsection GitHub\nGitHub Foundations :active, 2023, 2025\n\nsection Allied Telesis \nAllied Telesis Professional ENT :active, 2023, 2025\n\nsection Lost to Time\nMultiple others not stored in Credly :done, 2020, 2025
"},{"location":"Hire-Me/#hobbies","title":"Hobbies","text":"
"},{"location":"Hire-Me/#testimonials","title":"Testimonials","text":"
\u279c Interests tree\n.\n\u251c\u2500\u2500 Adventure\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Mountains\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 Rock Climbing\n\u251c\u2500\u2500 Politics\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Influential-People\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 Power-Structures \n\u2514\u2500\u2500 Technology\n \u251c\u2500\u2500 Infrastructure as Code\n \u2514\u2500\u2500 Network Engineering\n
>>>>>>>>>>>>>>
Core Strength>>>>>>>>>>>>>>>>>>
Core Strength>>>>>>>>>>>>>>>>>>>>>>>>>>
Exceptional Skill>>>>>>>>>>>>>
Core Strength>>>>>>>>>>>>>>>>>>
Core Strength>>>>>>>>>>>>>>>>>
Exceptional Skill>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
High>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Maximum
","tags":["pending"]},{"location":"Network-Rudiments/DNS/placeholder/","title":"Placeholder","text":"<div data-iframe-width=\"150\" data-iframe-height=\"270\" data-share-badge-id=\"4e357c24-30e4-4379-8e20-54bedc6213dd\" data-share-badge-host=\"https://www.credly.com\"></div>\n<!-- Additional badges can be added here -->\n</div>\n<script type=\"text/javascript\" async src=\"//cdn.credly.com/assets/utilities/embed.js\"></script>\n
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/IPv4/#each-byte-has-a-value-between-0-and-255","title":"Each Byte has a value between 0 and 255","text":"
Octet Number Binary Format Decimal Equivalent 1st Octet 00000000 0 - 255 2nd Octet 00000000 0 - 255 3rd Octet 00000000 0 - 255 4th Octet 00000000 0 - 255","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/IPv4/#example-ipv4-addresses","title":"Example IPv4 Addresses:","text":"
Octet Number Binary Format Decimal Equivalent 1st Octet 11000000 192 2nd Octet 10101000 168 3rd Octet 00000001 1 4th Octet 00000010 2","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/IPv4/#bits-bytes-of-19216812","title":"Bits & Bytes of 192.168.1.2","text":"Component Description Details Octet An IPv4 address is divided into 4 octets. Each octet consists of 8 bits. Bit The basic unit of data in an IP address. There are 32 bits in total (8 bits per octet). Byte Equivalent to one octet. Each byte (or octet) ranges from 0 to 255. Example For the IP address 192.168.1.2: - 192 is the first octet (byte).- 168 is the second octet (byte).- 1 is the third octet (byte).- 2 is the fourth octet (byte).
Octet Number Binary Format Decimal Equivalent 1st Octet 00001010 10 2nd Octet 01000110 70 3rd Octet 00000011 3 4th Octet 01100100 100","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/IPv6/","title":"IPv6","text":"
Group Number Binary Format Hexadecimal Equivalent 1st Group 0000000000000000 0000 - FFFF 2nd Group 0000000000000000 0000 - FFFF 3rd Group 0000000000000000 0000 - FFFF 4th Group 0000000000000000 0000 - FFFF 5th Group 0000000000000000 0000 - FFFF 6th Group 0000000000000000 0000 - FFFF 7th Group 0000000000000000 0000 - FFFF 8th Group 0000000000000000 0000 - FFFF 2001:0db8:85a3:0000:0000:8a2e:0370:7334
2001:db8:85a3:0:0:8a2e:370:7334
2 Collapse consecutive blocks of zeros with ::
2001:db8:85a3::8a2e:370:7334
2001:db8:85a3::8a2e:370:7334
must remain as it is. ::
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/broadcast/","title":"Bad","text":"","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/broadcast/#why-minimize-broadcast-packets","title":"Why Minimize Broadcast Packets?","text":"graph LR\n A[IPv6 Address] --> B[Group 1]\n A --> C[Group 2]\n A --> D[Group 3]\n A --> E[Group 4]\n A --> F[Group 5]\n A --> G[Group 6]\n A --> H[Group 7]\n A --> I[Group 8]\n\n B --> B1[16 bits<br>Hex: 2001]\n C --> C1[16 bits<br>Hex: 0db8]\n D --> D1[16 bits<br>Hex: 85a3]\n E --> E1[16 bits<br>Hex: 0000]\n F --> F1[16 bits<br>Hex: 0000]\n G --> G1[16 bits<br>Hex: 8a2e]\n H --> H1[16 bits<br>Hex: 0370]\n I --> I1[16 bits<br>Hex: 7334]\n\n style A fill:#f9f,stroke:#333,stroke-width:4px\n style B fill:#ccf,stroke:#f66,stroke-width:2px\n style C fill:#ccf,stroke:#f66,stroke-width:2px\n style D fill:#ccf,stroke:#f66,stroke-width:2px\n style E fill:#ccf,stroke:#f66,stroke-width:2px\n style F fill:#ccf,stroke:#f66,stroke-width:2px\n style G fill:#ccf,stroke:#f66,stroke-width:2px\n style H fill:#ccf,stroke:#f66,stroke-width:2px\n style I fill:#ccf,stroke:#f66,stroke-width:2px
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/broadcast/#the-goal","title":"The Goal","text":"
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/cidr/#slash-the-decimals-decimate-to-slash","title":"Slash the Decimals. Decimate to Slash.","text":"
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/classy/#bits-specified-by-class","title":"Bits specified by Class","text":"Class Leading Bits Range of First Octet A 0xxxxxxx 0 - 127 B 10xxxxxx 128 - 191 C 110xxxxx 192 - 223 D 1110xxxx 224 - 239 E 1111xxxx 240 - 255","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/classy/#subnets-classy-cider","title":"Subnets - Classy Cider \ud83c\udf7b","text":"
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/documents/","title":"Helpful resources for learning to subnet","text":"
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/example/","title":"Subnetting Examples","text":"","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/example/#example-class-c-subnet","title":"Example Class C Subnet","text":"
What is the mask in decimal? IP Address Subnet Mask CIDR Notation Binary Subnet Mask 192.168.100.0 255.255.255.192 /26 11111111.11111111.11111111.11000000 How many subnets?
How many hosts per subnet?
What subnet is host 192.168.100.130 in?
What is the broadcast address of 192.168.100.130/26 host?
Example Class C Summary Concept Explanation Network Address 192.168.100.128 (192.168.100.130 falls in this range) CIDR Notation /26 (means 26 bits for network, remaining for host) Subnet Mask 255.255.255.192 (or /26) Binary Subnet Mask 11111111.11111111.11111111.11000000 Host Address Range 192.168.100.128 - 192.168.100.191 Next Network Address 192.168.100.192 (since /26 allows 64 addresses per subnet) Broadcast Address 192.168.100.191 (one less than the next network address)","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/example/#example-class-b-subnet","title":"Example Class B Subnet","text":"
What is the mask in decimal? IP Address Subnet Mask CIDR Notation Binary Subnet Mask 172.16.0.0 255.255.224.0 /19 11111111.11111111.11100000.00000000 How many subnets?
How many hosts per subnet?
What subnet is host 172.16.32.130 in?
What is the broadcast address of 172.16.32.130/19 host?
Example Class B Summary Concept Explanation Network Address 172.16.32.0 (172.16.32.130 falls in this range) CIDR Notation /19 (means 19 bits for network, remaining for host) Subnet Mask 255.255.224.0 (or /19) Binary Subnet Mask 11111111.11111111.11100000.00000000 Host Address Range 172.16.32.0 - 172.16.63.255 Next Network Address 172.16.64.0 (since /19 allows 8192 addresses per subnet) Broadcast Address 172.16.63.255 (one less than the next network address)","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/example/#example-class-a-subnet","title":"Example Class A Subnet","text":"
What is the mask in decimal? IP Address Subnet Mask CIDR Notation Binary Subnet Mask 10.0.0.0 255.240.0.0 /12 11111111.11110000.00000000.00000000 How many subnets?
How many hosts per subnet?
What subnet is host 10.16.0.130 in?
What is the broadcast address of 10.16.0.130/12 host?
Example Class A Summary Concept Explanation Network Address 10.16.0.0 (10.16.0.130 falls in this range) CIDR Notation /12 (means 12 bits for network, remaining for host) Subnet Mask 255.240.0.0 (or /12) Binary Subnet Mask 11111111.11110000.00000000.00000000 Host Address Range 10.16.0.0 - 10.31.255.255 Next Network Address 10.32.0.0 (since /12 allows 1,048,576 addresses per subnet) Broadcast Address 10.31.255.255 (one less than the next network address)","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/hex/","title":"Hex","text":"","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/hex/#what-is-hexadecimal","title":"What is Hexadecimal?","text":"
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/hex/#convert-binary-to-hexadecimal","title":"Convert Binary to Hexadecimal","text":"graph TD\n subgraph A[Decimal]\n A1[0]\n A2[1]\n A3[2]\n A4[3]\n A5[4]\n A6[5]\n A7[6]\n A8[7]\n A9[8]\n A10[9]\n A11[10]\n A12[11]\n A13[12]\n A14[13]\n A15[14]\n A16[15]\n end\n\n subgraph B[Hexadecimal]\n B1[0]\n B2[1]\n B3[2]\n B4[3]\n B5[4]\n B6[5]\n B7[6]\n B8[7]\n B9[8]\n B10[9]\n B11[A]\n B12[B]\n B13[C]\n B14[D]\n B15[E]\n B16[F]\n end\n\n A1 --> B1\n A2 --> B2\n A3 --> B3\n A4 --> B4\n A5 --> B5\n A6 --> B6\n A7 --> B7\n A8 --> B8\n A9 --> B9\n A10 --> B10\n A11 --> B11\n A12 --> B12\n A13 --> B13\n A14 --> B14\n A15 --> B15\n A16 --> B16
Decimal Hexadecimal Binary 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/lloret-nets/","title":"Lloret Nets","text":"","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/lloret-nets/#lloret-networks","title":"Lloret Networks","text":"Network IP Address Subnet Mask Description LAN 10.1.0.1 255.255.0.0 LAN Network STAFF 10.70.0.1 255.255.0.0 Staff Network BYOD 10.110.0.1 255.255.0.0 BYOD Network GUEST 10.120.0.1 255.255.0.0 Guest Network Lloret Networks set ip 10.1.0.1 255.255.0.0 #LAN\nset ip 10.70.0.1 255.255.0.0 #STAFF\nset ip 10.110.0.1 255.255.0.0 #BYOD\nset ip 10.120.0.1 255.255.0.0 #GUEST\n
site002 $ get system arp \nAddress Age(min) Hardware Addr Interface\n10.70.3.5 0 64:79:f0:45:eb:56 lloret_staff\n10.70.3.72 15 c4:9d:ed:ad:27:d9 lloret_staff\n10.120.0.32 1 d2:eb:db:14:f6:d5 lloret_guest\n10.70.241.1 1 c0:56:e3:50:32:94 lloret_staff\n10.120.0.44 1 66:c9:6a:28:bd:73 lloret_guest\n10.70.3.29 0 d8:bb:c1:0e:e7:8e lloret_staff\n10.70.3.41 0 f4:a8:0d:5c:e5:82 lloret_staff\n10.120.0.68 1 ce:d9:90:ca:85:38 lloret_guest\n10.70.0.206 0 00:0c:29:95:86:5a lloret_staff\n10.70.0.17 0 00:11:32:b4:fd:93 lloret_staff\n10.70.3.53 3 e0:4f:43:e3:c0:b3 lloret_staff\n10.110.0.40 3 26:39:93:9a:9c:c0 lloret_byod\n10.70.240.100 12 6c:4b:90:6b:a1:d6 lloret_staff\n10.120.0.25 1 ce:91:23:e7:02:c0 lloret_guest\n10.70.3.10 3 d8:5e:d3:ae:d4:3c lloret_staff\n10.70.3.77 0 28:16:a8:04:d8:a7 lloret_staff\n10.70.3.22 0 08:3a:88:6d:d2:45 lloret_staff\n10.70.1.69 0 1c:69:7a:64:db:5f lloret_staff\n10.70.3.34 0 6c:24:08:2c:05:dd lloret_staff\n10.110.0.21 0 5a:20:ea:cb:62:b7 lloret_byod\n10.70.3.46 0 f8:75:a4:7f:21:f2 lloret_staff\n10.70.0.10 0 9c:8e:99:4b:9d:68 lloret_staff\n10.1.0.241 1 78:bc:1a:ad:ed:52 lan\n10.120.0.73 1 ba:cc:77:f4:f0:2b lloret_guest\n10.70.3.70 0 f8:75:a4:7f:40:25 lloret_staff\n10.120.0.30 1 0e:4a:68:ac:9d:e3 lloret_guest\n10.70.3.15 1 50:a4:d0:61:13:bd lloret_staff\n10.70.243.153 1 58:fd:b1:56:7c:81 lloret_staff\n10.1.0.21 3 24:9a:d8:2b:16:79 lan\n10.70.3.27 1 6c:4b:90:59:5e:b7 lloret_staff\n10.70.3.39 0 98:ee:cb:ea:0a:70 lloret_staff\n10.70.3.51 0 44:39:c4:34:ee:5c lloret_staff\n10.70.0.15 0 00:11:32:e9:02:2b lloret_staff\n10.1.0.246 1 08:4f:a9:fd:86:c4 lan\n10.120.0.23 0 a2:60:df:48:18:97 lloret_guest\n10.70.2.248 0 b8:27:eb:3f:36:43 lloret_staff\n10.70.3.8 0 50:a4:d0:61:3b:5f lloret_staff\n10.70.3.20 0 50:a4:d0:61:3b:68 lloret_staff\n10.70.3.32 0 04:ec:d8:26:6b:cd lloret_staff\n10.70.3.44 0 48:2a:e3:aa:f5:e4 lloret_staff\n10.70.3.56 1 50:a4:d0:61:3b:44 lloret_staff\n10.120.0.83 1 3e:93:08:cd:7d:00 lloret_guest\n10.70.3.13 1 50:a4:d0:61:3a:6c lloret_staff\n10.70.243.151 8794 88:c9:b3:d0:17:4f lloret_staff\n10.120.0.40 2 62:ca:9e:c2:99:c6 lloret_guest\n10.70.3.25 0 24:9a:d8:0d:1d:d1 lloret_staff\n10.70.3.49 0 28:16:a8:01:87:f5 lloret_staff\n10.1.0.244 1 5c:5a:c7:57:c4:20 lan\n10.70.3.61 0 a4:f9:33:4d:7c:68 lloret_staff\n10.70.3.6 0 f4:a8:0d:32:44:12 lloret_staff\n10.70.3.18 1 50:a4:d0:61:3a:e4 lloret_staff\n86.188.216.217 0 54:a2:74:27:f7:11 wan1\n10.120.0.45 2 56:c0:73:c9:11:da lloret_guest\n10.70.3.30 0 d8:5e:d3:ae:d4:3b lloret_staff\n10.70.243.101 3 00:0e:c6:d3:f1:e4 lloret_staff\n10.70.0.6 2670 9c:b6:54:74:9c:ca lloret_staff\n10.70.3.42 0 10:60:4b:68:0a:8f lloret_staff\n10.70.3.66 0 0c:37:96:15:9e:c7 lloret_staff\n10.70.3.11 0 10:b5:88:06:96:67 lloret_staff\n10.120.0.93 0 26:61:e0:70:54:60 lloret_guest\n10.120.0.38 3 5e:7e:9c:18:45:d0 lloret_guest\n10.70.3.23 3 02:11:32:2f:e9:be lloret_staff\n10.120.0.50 1 42:16:3f:ae:69:02 lloret_guest\n10.70.3.35 0 04:ec:d8:7c:db:de lloret_staff\n10.70.3.47 0 5c:e9:1e:6b:54:a9 lloret_staff\n10.70.0.11 0 02:11:32:27:bb:b6 lloret_staff\n10.1.0.242 1 10:b3:d6:46:49:ee lan\n10.70.3.83 1 e8:eb:1b:11:af:f7 lloret_staff\n10.70.3.28 0 00:0a:b0:07:25:83 lloret_staff\n10.70.3.40 22 40:16:3b:c1:a3:d1 lloret_staff\n10.70.3.52 0 e4:a8:df:95:98:b8 lloret_staff\n10.70.0.16 0 00:11:32:d2:1d:9e lloret_staff\n10.1.0.247 1 78:bc:1a:ad:ee:28 lan\n10.70.3.64 0 d4:3d:7e:7d:fa:89 lloret_staff\n10.70.2.249 0 b8:27:eb:9a:44:39 lloret_staff\n10.70.3.9 0 d8:5e:d3:ae:d2:34 lloret_staff\n10.70.3.21 1 44:39:c4:34:f8:28 lloret_staff\n10.70.3.33 0 14:d6:4d:1f:e5:fa lloret_staff\n10.70.3.45 0 f4:a8:0d:31:df:d1 lloret_staff\n10.70.242.100 52 00:80:f4:46:e9:a2 lloret_staff\n10.70.3.57 2 98:ee:cb:a5:d7:b6 lloret_staff\n10.1.1.12 4 30:b5:c2:cd:9c:6e lan\n10.70.3.2 8432 9c:50:d1:20:49:01 lloret_staff\n10.70.3.69 0 98:ee:cb:b7:23:61 lloret_staff\n10.120.0.29 0 a2:9b:d9:63:07:4f lloret_guest\n10.70.3.14 2 08:3a:88:69:34:be lloret_staff\n10.70.3.81 5 98:ee:cb:9c:3c:48 lloret_staff\n10.70.3.26 5 60:70:c0:48:f6:e4 lloret_staff\n10.70.3.38 0 d8:80:83:3f:58:fb lloret_staff\n10.70.0.14 5 00:11:32:8a:ac:85 lloret_staff\n10.1.0.245 1 08:4f:a9:ae:44:d4 lan\n10.70.3.62 1 8c:89:a5:3c:bf:bf lloret_staff\n192.168.1.1 0 00:1e:42:15:a3:64 wan2\n10.120.0.22 17 68:ec:c5:b1:8f:0f lloret_guest\n10.120.0.89 1 2a:2a:5d:c2:a0:82 lloret_guest\n10.70.3.74 0 cc:48:3a:c3:2a:67 lloret_staff\n10.70.3.19 0 08:3a:88:6d:6c:59 lloret_staff\n10.70.3.31 0 e0:4f:43:25:04:ab lloret_staff\n10.70.3.55 3 e8:ea:6a:83:df:49 lloret_staff\n10.120.0.82 2 4a:bc:2b:b8:12:89 lloret_guest\n10.120.0.27 0 ca:12:b5:1c:71:18 lloret_guest\n10.70.3.12 1 6c:3c:8c:7a:25:46 lloret_staff\n10.70.243.150 2 00:0a:b0:09:66:11 lloret_staff\n10.70.3.24 0 74:97:79:ec:a4:29 lloret_staff\n10.70.3.36 3 50:a4:d0:61:3b:62 lloret_staff\n10.70.0.12 2 02:11:32:27:ba:55 lloret_staff\n\nsite002 $ \n
This example is specific to the 10.1.0.1/16 subnet, detailing its characteristics and addressing within a Class A network.
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/lloret-nets/#lloret-staff-block","title":"Lloret Staff Block","text":"Binary: Base-2, uses 0 and 1.
Hexadecimal: Base-16, uses 0-9 and A-F.
Decimal: Base-10, uses 0-9.
What is The OSI Model by Cloudflare ?
The Open Systems Interconnect Model from the International Organization for Standardization
The OSI model was first defined in raw form in Washington, D.C., in February 1978 by French software engineer Hubert Zimmermann, and the refined but still draft standard was published by the ISO in 1980.
It is a reference model. Ultimately, the TCP/IP model is the more practical model for today's networks, but the OSI model is still used to describe network layers and protocols. The US DoD invented the TCP/IP model in the 1970s, and it was used to build the internet. The OSI model was created in the 1980s by the International Organization for Standardization (ISO), and it was designed to be an abstract model for describing network protocols, not a practical model for building networks.
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/osi/#from-binary-to-magic","title":"From Binary to Magic","text":"Layer Number Layer Name Function Examples 7 Application Provides network services directly to applications HTTP, FTP, SMTP 6 Presentation Translates data between the network and application formats SSL, TLS, JPEG, MPEG 5 Session Manages sessions between applications NetBIOS, RPC 4 Transport Provides reliable data transfer TCP, UDP 3 Network Handles addressing and routing of data packets IP, ICMP, IPSec 2 Data Link Transfers data between network and physical layers Ethernet, PPP, Switch, Bridge 1 Physical Deals with the physical connection to the network, data transmission Cables, Hubs, Repeaters, Network Cards","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/osi/#how-does-the-osi-reference-model-relate-to-tcpip","title":"How does the OSI Reference Model relate to TCP/IP?","text":"Layer Number Layer Name Function Examples 4 Application Handles high-level protocols, representation, encoding HTTP, SMTP, FTP, DNS 3 Transport Manages end-to-end data transmission TCP, UDP 2 Internet Determines the best path through the network IP (IPv4, IPv6), ICMP 1 Network Access (or Link) Deals with the physical aspects of data transmission Ethernet, Wi-Fi, ARP","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/osi/#in-case-you-were-wondering","title":"In case you were wondering...","text":"Protocol OSI Layer Description BACnet Application Provides rules for data representation and communication. Network BACnet/IP uses IP for networking. Physical/Data Link Uses Ethernet, ARCNET, or MSTP for physical communication. Modbus Application Defines its own data model and functions at this layer. Transport In Modbus TCP/IP, TCP is used for transport. Network Modbus TCP/IP uses IP. Physical/Data Link In Modbus Serial (RTU or ASCII), operates over RS-232 or RS-485 lines.","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/packet-life/","title":"The Life of a Packet","text":"","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/packet-life/#a-unholy-flow-of-complexity-to-deliver-a-payload-simplified","title":"A unholy flow of complexity to deliver a Payload - Simplified","text":"Stage Description 1. Generation Data is generated or requested by an application. 2. Encapsulation Data is encapsulated into packets with headers. 3. Transmission Packets are transmitted over the network. 4. Routing Routers forward packets based on destination. 5. Switching Switches forward packets within local networks. 6. Arrival Packets arrive at their destination. 7. Decapsulation Packets are decapsulated to retrieve data. 8. Delivery Data is delivered to the destination app.","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/packet-life/#data-journey-through-the-osi-model","title":"Data Journey Through the OSI Model","text":" +-----------------------------------+\n | Layer 7: Application |\n | - Data generated by app |\n +-----------------------------------+\n | Layer 6: Presentation |\n | - Data conversion and encoding|\n +-----------------------------------+\n | Layer 5: Session |\n | - Session management |\n +-----------------------------------+\n | Layer 4: Transport |\n | - Segmentation/Reassembly |\n | - Ports and error checking |\n +-----------------------------------+\n | Layer 3: Network |\n | - Routing |\n | - Logical addressing |\n +-----------------------------------+\n | Layer 2: Data Link |\n | - Frame creation/interpretation|\n | - MAC addressing |\n +-----------------------------------+\n | Layer 1: Physical |\n | - Transmission of raw bits |\n +-----------------------------------+\n
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/power2/","title":"The Power of 2","text":"Power of 2 Result 2^0 1 2^1 2 2^2 4 2^3 8 2^4 16 2^5 32 2^6 64 2^7 128 2^8 256 2^9 512 2^10 1,024 2^11 2,048 2^12 4,096 2^13 8,192 2^14 16,384 2^15 32,768 2^16 65,536 2^17 131,072 2^18 262,144 2^19 524,288 2^20 1,048,576 2^21 2,097,152 2^22 4,194,304 2^23 8,388,608 2^24 16,777,216 Bit Position Possible Values 1 128 2 192 3 224 4 240 5 248 6 252 7 254 8 255","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/subnetting-101/","title":"Subnet 101","text":"\ud83d\udd15 Do not be alarmed. Most people use a subnet calculator in the real world. \ud83d\ude0c Here is my go to Visual Subnet Calc.
But it is handy to know the basic theory. \u2406
In most programming languages, arrays and sequences start at index 0. This convention carries over to how we count positions in a binary number. It aligns with the way memory addresses and offsets are calculated in computer systems.
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/subnetting-101/#an-octets-decimal-values","title":"An Octets Decimal Values \u266b","text":"When we talk about aggregating subnets, we're basically trying to find a bigger subnet that can neatly fit all these smaller subnets inside it.
We're looking for the common ground here, the starting point that fits all these ranges. If we look closely, all the addresses start with \"10.\", which is our first clue. After the \"10.\", things start to get different, so that's where we need to focus.
When we do a bit of magical binary conversion and comparison, we find that the common bits in all these addresses go up to the first 8 bits (that's the \"10\" part). After that, the bits start to differ.
So, if we were to aggregate these networks, our new subnet would start at 10.0.0.0. But what about the mask? Well, since we only have the first 8 bits in common, our new mask would be 255.0.0.0.
Therefore, your aggregated subnet would be 10.0.0.0 with a subnet mask of 255.0.0.0. This big subnet umbrella can cover all your smaller subnets like a cozy blanket! \ud83c\udf10\ud83d\udcbb\ud83c\udf89
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/super-lloret/#or-to-get-more-granular","title":"Or to get more granular...","text":"Network IP Address Binary Representation (First 10 bits) LAN 10.1.0.1 00001010.00 STAFF 10.70.0.1 00001010.01 BYOD 10.110.0.1 00001010.01 GUEST 10.120.0.1 00001010.01","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/trace/","title":"Trace","text":"traceroute bad.horse\ntraceroute to bad.horse (162.252.205.157), 64 hops max, 52 byte packets\n 1 192.168.200.254 (192.168.200.254) 2.121 ms 2.470 ms 2.295 ms\n 2 79.173.166.153 (79.173.166.153) 2.599 ms 3.316 ms 2.614 ms\n 3 195.167.176.78 (195.167.176.78) 3.516 ms 3.514 ms 3.220 ms\n 4 lon00-br0.as5631.net (83.143.228.238) 4.232 ms 3.710 ms 3.021 ms\n 5 xe-9-1-2.edge3.london2.level3.net (212.113.9.201) 3.169 ms 3.103 ms 2.936 ms\n 6 ae1.8.bar4.toronto1.level3.net (4.69.218.54) 90.796 ms 90.944 ms 90.892 ms\n 7 level3-gw.core02.tor1.prioritycolo.com (4.16.51.30) 91.740 ms 91.998 ms 91.592 ms\n 8 67.223.96.90 (67.223.96.90) 91.401 ms 91.863 ms 91.377 ms\n 9 bad.horse (162.252.205.130) 91.974 ms 91.953 ms 91.525 ms\n10 bad.horse (162.252.205.131) 97.062 ms 96.838 ms 98.465 ms\n11 bad.horse (162.252.205.132) 101.131 ms 98.995 ms 99.642 ms\n12 bad.horse (162.252.205.133) 106.636 ms 106.428 ms 106.886 ms\n13 he.rides.across.the.nation (162.252.205.134) 111.930 ms 112.171 ms 131.932 ms\n14 the.thoroughbred.of.sin (162.252.205.135) 116.678 ms 116.763 ms 116.639 ms\n15 he.got.the.application (162.252.205.136) 129.628 ms 121.732 ms 119.512 ms\n16 that.you.just.sent.in (162.252.205.137) 127.010 ms 127.023 ms 125.168 ms\n17 it.needs.evaluation (162.252.205.138) 129.663 ms 131.599 ms 131.342 ms\n18 so.let.the.games.begin (162.252.205.139) 137.167 ms 136.652 ms 134.110 ms\n19 a.heinous.crime (162.252.205.140) 142.548 ms 140.485 ms 141.390 ms\n20 a.show.of.force (162.252.205.141) 146.570 ms * 146.862 ms\n21 a.murder.would.be.nice.of.course (162.252.205.142) 150.387 ms 152.285 ms 148.757 ms\n22 bad.horse (162.252.205.143) 156.445 ms 156.839 ms 156.380 ms\n23 bad.horse (162.252.205.144) 161.859 ms 161.328 ms 161.561 ms\n24 bad.horse (162.252.205.145) 167.209 ms 166.741 ms 165.658 ms\n25 he-s.bad (162.252.205.146) 171.489 ms 169.464 ms 169.579 ms\n26 the.evil.league.of.evil (162.252.205.147) 175.822 ms 176.793 ms 176.918 ms\n27 is.watching.so.beware (162.252.205.148) 181.350 ms 181.487 ms 181.877 ms\n28 the.grade.that.you.receive (162.252.205.149) 186.980 ms 186.881 ms 183.815 ms\n29 will.be.your.last.we.swear (162.252.205.150) 191.504 ms 192.136 ms 191.605 ms\n30 so.make.the.bad.horse.gleeful (162.252.205.151) 194.137 ms 196.883 ms 196.596 ms\n31 or.he-ll.make.you.his.mare (162.252.205.152) 201.546 ms 201.798 ms 201.274 ms\n32 o_o (162.252.205.153) 206.265 ms 207.723 ms 206.742 ms\n33 you-re.saddled.up (162.252.205.154) 323.803 ms 211.544 ms 211.737 ms\n34 there-s.no.recourse (162.252.205.155) 216.559 ms 217.206 ms 216.652 ms\n35 it-s.hi-ho.silver (162.252.205.156) 223.292 ms 333.837 ms 248.602 ms\n36 signed.bad.horse (162.252.205.157) 221.292 ms 221.970 ms 297.960 ms\n
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/whoami/","title":"Hello","text":"Here is an image showing a group of diverse cavemen inventing the decimal system, with thought bubbles depicting their dreams of future computers, branded with \"Lloret Control Systems\", and used for counting a vast number of antelopes. The scenes blend primitive settings with futuristic elements.
","tags":["pending","Example"]},{"location":"Network-Rudiments/Subnetting/wild/","title":"Wildcards","text":"Aspect Wildcard Mask Subnet Mask Purpose Used in Access Control Lists (ACLs) to specify which IP addresses to permit or deny access to. Used in IP addressing to divide a network into subnetworks and determine the network and host portions of an IP address. Format Inverse of subnet mask. It marks the bits that are to be matched with the corresponding bits in an IP address. Binary mask with 1s indicating the network portion and 0s indicating the host portion. Representation Typically represented with the \"wildcard bits\" keyword in ACLs, followed by a series of four octets with values between 0 and 255 separated by dots. Example:0.0.0.255
Represented using the same dotted decimal format as IP addresses, with a varying number of bits set to 1. Example: 255.255.255.0
Usage Example To permit access to IP addresses within a specific range, specify the wildcard mask in an ACL entry. Example: permit 192.168.1.0 0.0.0.255
allows all addresses in the 192.168.1.0/24
subnet. To define network boundaries within an IP address range, apply the subnet mask to the IP addresses. Example: 192.168.1.0/24
represents a subnet with a subnet mask of 255.255.255.0
. Network Calculation To calculate the network ID from an IP address, perform a bitwise AND operation with the IP address and the wildcard mask. To calculate the network ID from an IP address, perform a bitwise AND operation with the IP address and the subnet mask.","tags":["pending","Example"]},{"location":"Vendors/Allied-Telesis/","title":"Allied Telesis","text":"pending
"},{"location":"Vendors/Allied-Telesis/documents/","title":"Documents","text":"CAT-ENT Training
The Training Instructions 2020 - Student 4 from Allied Telesis.
The CAT-ENT.pptx from Allied Telesis.
The CAT-ENT-INTRO from Allied Telesis.
CAP-ENT Training
The Training Instructions 2020 - Student 4 from Allied Telesis.
The CAP-ENT.pptx from Allied Telesis.
The CAP-ENT-INTRO).pdf from Allied Telesis.
The CAP-ENT-EXTENDED.pdf from Allied Telesis.
pending
"},{"location":"Vendors/Allied-Telesis/training/","title":"Introduction","text":"Alas, my Company has a preference for Allied Telesis, as a cheaper alternative.
Value Engineering, so they say.
So I have to learn it.
Manager Friendly
I have touched Allied Telesis before. My former employer had a lucky dip smattering of Allied Telesis in the Network i would occasionally stumble upon. I remember them well because they were known by the slang manager friendly due to the default credentials being manager:friend
! that chimed with the lower price point... to the chagrin of the Network Team.
The CAP/ENT training course provides knowledge of the AlliedWare Plus operating system.
The course ends with an open-book multiple-choice exam.
Monday 5th February 2024 - Wednesday 7th February 2024
A remote lab is provided for the course. You SHH to a Linux box and onward to the console of the Allied Telesis Firewall & Switches.
No StackHost AT-LAB-FW\n Hostname uk-1.training.alliedtelesis.com\n User training41\n # Welcome 4 (1)\n # manager (2)\n # friend (3)\n\nHost AT-LAB-530-ONE\n Hostname uk-1.training.alliedtelesis.com\n User training42\n\nHost AT-LAB-530-TWO\n Hostname uk-1.training.alliedtelesis.com\n User training43\n
Use lsof -i tcp:22
to see the SSH sessions to the lab devices. In our case we have x2 per lab device as we are passing a linux jump box to reach the device console.
The command lsof -i tcp:22
is used in Unix-like operating systems to list open files and network connections. The components of this command (lsof, -i, tcp:22) each have specific meanings:
lsof
: This stands for \"List Open Files\". lsof is a command-line utility that provides information about files that are opened by processes. In Unix and Linux systems, almost everything is treated as a file, including physical devices, directories, and network sockets.
-i
: This option tells lsof to show network connections. When used without any additional parameters, -i lists all network files. However, it can be further narrowed down with additional parameters like protocol type (TCP or UDP) and port numbers.
tcp:22
: This further filters the lsof output to show only TCP connections (due to tcp) that are using port 22. Port 22 is the default port for SSH (Secure Shell) connections, which are used for securely accessing remote machines.
\u279c ~ lsof -i tcp:22\n\nCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME\nssh 94715 lukeoson 4u IPv4 0x52af948b88c31015 0t0 TCP 192.168.1.108:61894->194.73.86.54:ssh (ESTABLISHED)\nssh 94715 lukeoson 5u IPv4 0x52af948b88c31015 0t0 TCP 192.168.1.108:61894->194.73.86.54:ssh (ESTABLISHED)\nssh 94838 lukeoson 4u IPv4 0x52af948b8986327d 0t0 TCP 192.168.1.108:61928->194.73.86.54:ssh (ESTABLISHED)\nssh 94838 lukeoson 5u IPv4 0x52af948b8986327d 0t0 TCP 192.168.1.108:61928->194.73.86.54:ssh (ESTABLISHED)\nssh 94938 lukeoson 4u IPv4 0x52af948b8862e705 0t0 TCP 192.168.1.108:61965->194.73.86.54:ssh (ESTABLISHED)\nssh 94938 lukeoson 5u IPv4 0x52af948b8862e705 0t0 TCP 192.168.1.108:61965->194.73.86.54:ssh (ESTABLISHED)\n
And you get a topology like this:
"},{"location":"Vendors/Allied-Telesis/training/#at-trn-capent-training","title":"AT-TRN-CAP/ENT Training","text":""},{"location":"Vendors/Allied-Telesis/training/#stacking","title":"Stacking","text":"The first thing we did was unstack the switches. Couple of reboots required to remove the provisioned devices and renumber to 1. This exercise was to prepare the lab for the content to follow.
No Stackawplus(config)#no stack 1 enable\nawplus(config)#no switch 2 provision\nawplus(config)#end\nawplus#write memory\nawplus#reload # (1)\n
With the devices unstacked we can proceed to the course content.
"},{"location":"Vendors/Allied-Telesis/training/#spanning-tree","title":"Spanning Tree","text":"The first module covered some Spanning Tree features.
awplus# configure terminal\nawplus(config)# interface port1.0.1\nawplus(config-if)# spanning-tree guard root # (1)\n
Verify with show spanning-tree brief
.
awplus# configure terminal\nawplus(config)# interface port1.1.2\nawplus(config)# spanning-tree portfast\nawplus(config-if)# spanning-tree portfast bpdu-guard enable (1)\n
awplus# configure terminal\nawplus(config)# spanning-tree errdisable-timeout enable (1)\nawplus(config)# spanning-tree errdisable-timeout interval 50 (2)\n
Usage:
specifies the time interval after which a port is brought back up when it has been disabled by the BPDU guard feature
awplus(config)# loop-protection loop-detect ldf-interval 5 (1)\nawplus(config-if)# loop-protection action link-down (2)\nawplus(config-if)# loop-protection timeout 10 (3)\n
Warning
Always remove loop-protection loop-detect ldf-interval 5
when enabling EPSR.
2017 Feb 24 00:58:39 user.warning RACK1 HSL[877]: Thrash-limiting: Disabled learning on port2.0.26 by 0202.0ayy.xxxx on VLAN 20\n2017 Feb 24 00:58:39 user.warning RACK1 HSL[877]: Thrash-limiting: Disabled learning on port1.0.25 by 0202.0ayy.xxxx on VLAN 2\n2017 Feb 24 00:58:39 user.warning RACK1 HSL[877]: Thrash-limiting: Disabled learning on sa50 by 0202.0ayy.xxxx on VLAN 2\n
"},{"location":"Vendors/Allied-Telesis/training/#advanced-vlan","title":"Advanced VLAN","text":""},{"location":"Vendors/Allied-Telesis/training/#espr-diable-loop-prevention","title":"ESPR - diable loop prevention!","text":""},{"location":"Vendors/Allied-Telesis/training/#acl","title":"ACL","text":""},{"location":"Vendors/Allied-Telesis/training/#lldp","title":"LLDP","text":"Spanning tree Ports blocked by a spanning tree protocol can still transmit and receive LLDP advertisements. 802.1x Ports blocked by 802.1x port authorization cannot transmit or receive LLDP advertisements. If LLDP has stored information for a neighbor on the port before it was blocked, this information will eventually time out and be discarded. VLAN tagging LLDP packets are untagged; they do not contain 802.1Q header information with VLAN identifier and priority tagging. Virtual Chassis Stacking (VCStack) resiliency link When a port is configured as a VCStack resiliency link port, LLDP does not operate on the port; LLDP neither transmits nor receives advertisements, and any LLDP configuration and data stored for the port, including counters, is discarded. Mirror ports * LLDP does not operate on mirror analyzer ports
``` py linenums=\"1\" title=\"LLDP\" hl_lines=\"1 2\"
"},{"location":"Vendors/Allied-Telesis/training/#at-trn-capent-exam","title":"AT-TRN-CAP/ENT-EXAM","text":""},{"location":"assets/icons/affinity-master/","title":"Affinity symbol set","text":"Free 2D symbols for computer network diagrams.
"},{"location":"assets/icons/affinity-master/#why","title":"Why?","text":"Simple. I wanted modern, crisp, pixel-perfect, printable, manufacturer independent symbols for computer-network topology that does not look like they were made in the 80s.
"},{"location":"assets/icons/affinity-master/#want-to-change-color","title":"Want to change color?","text":"sed -e \"s/rgb(77,77,77)/rgb(45,103,185)/\" c_shield_gray.svg > c_shield_blue.svg