2023-05-25 07:19:58 +00:00
|
|
|
# Visual Subnet Calculator - [visualsubnetcalc.com](https://visualsubnetcalc.com)
|
2023-05-10 02:30:16 +00:00
|
|
|
|
2023-05-25 07:19:58 +00:00
|
|
|
![demo.gif](src%2Fdemo.gif)
|
2023-05-18 05:46:48 +00:00
|
|
|
|
2023-05-10 05:43:44 +00:00
|
|
|
Visual Subnet Calculator is a modernized tool based on the original work by [davidc](https://github.com/davidc/subnets).
|
|
|
|
It strives to be a tool for quickly designing networks and collaborating on that design with others. It focuses on
|
|
|
|
expediting the work of network administrators, not academic subnetting math.
|
|
|
|
|
2023-05-23 02:31:50 +00:00
|
|
|
## Design Tenets
|
2023-05-10 05:43:44 +00:00
|
|
|
|
2023-05-23 02:31:50 +00:00
|
|
|
The following tenets are the most important values that drive the design of the tool. New features, pull requests, etc
|
|
|
|
should align to these tenets, or propose an adjustment to the tenets.
|
2023-05-10 05:43:44 +00:00
|
|
|
|
|
|
|
- **Simplicity is king.** Network admins are busy and Visual Subnet Calculator should always be easy for FIRST TIME USERS to
|
|
|
|
quickly and intuitively use.
|
|
|
|
- **Subnetting is design work.** Promote features that enhance visual clarity and easy mental processing of even the most
|
|
|
|
complex architectures.
|
|
|
|
- **Users control the data.** We store nothing, but provide convenient ways for users to save and share their designs.
|
2023-05-23 02:31:07 +00:00
|
|
|
- **Embrace community contributions.** Consider and respond to all feedback and pull requests in the context of these
|
2023-05-23 02:31:50 +00:00
|
|
|
tenets.
|
2023-05-10 02:30:16 +00:00
|
|
|
|
2023-05-18 04:04:14 +00:00
|
|
|
## Building From Source
|
|
|
|
|
|
|
|
If you have a more opinionated best-practice way to lay out this repository please open an issue.
|
|
|
|
|
|
|
|
Build prerequisites:
|
2023-05-23 02:40:58 +00:00
|
|
|
- (Optional but recommended) NVM to manage node version
|
|
|
|
- node.js (version 20) and associated NPM.
|
|
|
|
- sass (Globally installed, following instructions below.)
|
2023-05-18 04:04:14 +00:00
|
|
|
|
|
|
|
Compile from source:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
# Clone the repository
|
|
|
|
> git clone https://github.com/ckabalan/visualsubnetcalc
|
2023-05-25 05:14:20 +00:00
|
|
|
# Use recommended NVM version
|
2023-05-23 02:31:07 +00:00
|
|
|
> nvm use
|
2023-05-18 04:04:14 +00:00
|
|
|
# Change to the sources directory
|
|
|
|
> cd visualsubnetcalc/src
|
|
|
|
# Install Bootstrap
|
|
|
|
> npm install
|
2023-05-23 02:31:07 +00:00
|
|
|
# Compile Bootstrap (Also install sass command line globally)
|
|
|
|
> npm run build
|
2023-05-25 05:14:20 +00:00
|
|
|
# Run the local webserver
|
|
|
|
> npm start
|
2023-05-18 04:04:14 +00:00
|
|
|
```
|
|
|
|
|
2024-06-24 15:52:29 +00:00
|
|
|
|
|
|
|
|
2023-05-18 04:04:14 +00:00
|
|
|
The full application should then be available within `./dist/`, open `./dist/index.html` in a browser.
|
|
|
|
|
2024-06-24 15:52:29 +00:00
|
|
|
### Run with certificates (Optional)
|
|
|
|
|
|
|
|
***NB:*** *required for testing clipboard.writeText() in the browser. Feature is only available in secure (https) mode.*
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
|
|
|
#Install mkcert
|
|
|
|
> brew install mkcert
|
|
|
|
# generate CA Certs to be trusted by local browsers
|
|
|
|
> mkcert install
|
|
|
|
# generate certs for local development
|
|
|
|
> cd visualsubnetcalc/src
|
|
|
|
# generate certs for local development
|
|
|
|
> npm run setup:certs
|
|
|
|
# run the local webserver with https
|
|
|
|
> npm run local-secure-start
|
|
|
|
````
|
|
|
|
|
|
|
|
# Cloud Subnet Notes
|
|
|
|
|
|
|
|
- [AWS reserves 3 additional IPs](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html)
|
|
|
|
|
|
|
|
- [Azure reserves 3 additional IPs](https://learn.microsoft.com/en-us/azure/virtual-network/virtual-networks-faq#are-there-any-restrictions-on-using-ip-addresses-within-these-subnets)
|
|
|
|
|
|
|
|
|
|
|
|
## Standard mode:
|
|
|
|
- Smallest subnet: /32
|
|
|
|
- Two reserved addresses per subnet of size <= 30:
|
|
|
|
- Network Address (network + 0)
|
|
|
|
- Broadcast Address (last network address)
|
|
|
|
## AWS mode :
|
|
|
|
- Smallest subnet: /28
|
|
|
|
- Five reserved addresses per subnet:
|
|
|
|
- Network Address (network + 0)
|
|
|
|
- AWS Reserved - VPC Router
|
|
|
|
- AWS Reserved - VPC DNS
|
|
|
|
- AWS Reserved - Future Use
|
|
|
|
- Broadcast Address (last network address)
|
|
|
|
## Azure mode :
|
|
|
|
- Smallest subnet: /29
|
|
|
|
- Five reserved addresses per subnet:
|
|
|
|
- Network Address (network + 0)
|
|
|
|
- Azure Reserved - Default Gateway
|
|
|
|
- Azure Reserved - DNS Mapping
|
|
|
|
- Azure Reserved - DNS Mapping
|
|
|
|
- Broadcast Address (last network address)
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-21 05:21:57 +00:00
|
|
|
## Credits
|
|
|
|
|
|
|
|
Split icon made by [Freepik](https://www.flaticon.com/authors/freepik) from [Flaticon](https://www.flaticon.com/).
|
|
|
|
|
2023-05-10 02:30:16 +00:00
|
|
|
## License
|
|
|
|
|
|
|
|
Visual Subnet Calculator is released under the [MIT License](https://opensource.org/licenses/MIT)
|