Skip to content

RouterShell is an open-source IOS-like CLI for configuring Linux/embedded Linux OS as a router

License

Notifications You must be signed in to change notification settings

mgarcia01752/RouterShell

Repository files navigation

RouterShell (WORK IN PROGRESS)

RouterShell is an open-source, IOS-like CLI distribution written in Python 3. It is designed to provide a flexible and user-friendly command-line interface for network administrators and enthusiasts, offering a comprehensive range of networking features and capabilities tailored to diverse needs.

Key Features of RouterShell:

  1. Interface Configurations: RouterShell supports a variety of interface configurations, including:

    • Loopback Interfaces: Ideal for testing and diagnostics, loopback interfaces are easy to set up and provide a versatile tool for network validation.
    • Physical Interfaces: Compatibility with Ethernet, USB, wireless (WiFi and cellular) interfaces, making it adaptable to various hardware environments.
    • Bridging: Enables the connection of different network segments, which is beneficial in creating complex network topologies.
    • VLAN Support: Facilitates network segmentation and organization, which is crucial for larger, more intricate networks.
  2. Tunneling: RouterShell includes support for tunneling protocols, such as GRE (Generic Routing Encapsulation), allowing the creation of point-to-point and point-to-multipoint tunnels. This feature enables the encapsulation of packets for secure and efficient transport across different network segments, which is useful in VPNs and cross-network communication.

  3. NAT (Network Address Translation) Support: Provides NAT functionality, essential for translating private IP addresses to public IP addresses, commonly required in both home and enterprise network setups. This feature helps in conserving public IP addresses and adds a layer of security by masking internal network structures.

  4. Access Control List (ACL) and Firewall Support: RouterShell supports ACLs and firewall functionalities, offering enhanced network security by controlling incoming and outgoing traffic based on predefined rules. This is crucial for protecting network resources and managing data flow effectively.

RouterShell aims to provide a comprehensive CLI experience similar to traditional network operating systems, with the flexibility and extensibility of Python, making it a valuable tool for managing and automating network environments.

Regarding its intended use:

  • Quick Router Deployment: RouterShell is designed to expedite router setup using a minimal Linux image, a valuable feature when rapid deployment is crucial.

  • Router-on-a-Stick Configuration: RouterShell supports the "router-on-a-stick" configuration, useful for scenarios requiring network segmentation.

  • Compatibility with Embedded Router Distributions: While initially developed with a focus on Ubuntu, RouterShell's lower layers are designed to be OS-agnostic, potentially allowing compatibility with various lightweight Linux distributions.

In conclusion, RouterShell is a router CLI distribution with features well-suited for specific network setups and security requirements. However, it is crucial to thoroughly assess your specific networking needs and consider whether RouterShell aligns with them before selecting it as your networking solution. Its comprehensive feature set, including NAT support and access control list/firewall support, makes it a versatile choice for network administrators and enthusiasts looking to configure and manage network infrastructure efficiently.

Table of Contents

Router Configuration Examples

Explore a variety of router configuration examples to help you get started with RouterShell:

These examples cover scenarios like configuring a four-port bridge with VLAN support, setting up a four-port switch, and configuring NAT for a two-port setup. You can access the detailed instructions and information in the respective configuration files.

  • Four-Port Bridge with VLAN Configuration: This example guides you through setting up a four-port bridge with VLAN support, allowing for network segmentation and efficient traffic management.

  • Four-Port Switch Configuration: Learn how to configure a four-port switch, which is essential for creating a network with multiple connected devices.

  • Two-Port NAT Configuration: Understand how to set up Network Address Translation (NAT) for a two-port router, enabling the translation of private IP addresses to public IP addresses.

These configuration examples serve as practical guides to help you implement specific networking setups with RouterShell. Refer to the linked documentation files for step-by-step instructions and detailed explanations.

Feel free to explore these examples and adapt them to your networking needs. If you have any questions or need further assistance, don't hesitate to contact our community or project team. Thank you for choosing RouterShell!

Additional Resources

Please select the specific documentation file you are interested in from the table of contents above to access detailed information and instructions for configuring and using RouterShell.

If you have any questions or need further assistance, please feel free to reach out to our community or project team. Thank you for choosing RouterShell!

Running RouterShell (Temporary until install script is ready)

README INSTALLATION

Run RouterShell

./start.sh

About

RouterShell is an open-source IOS-like CLI for configuring Linux/embedded Linux OS as a router

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published