42 lines
2.5 KiB
Markdown
42 lines
2.5 KiB
Markdown
# Looking Glass
|
|
|
|
## Problem Statement
|
|
|
|
Network administrators often face challenges when troubleshooting issues from outside a network.
|
|
To address this, a Looking Glass (LG) can be deployed. The LG allows external users to issue commands for network troubleshooting.
|
|
For example, an administrator can:
|
|
|
|
- Perform pings
|
|
- Execute traceroutes or MTR commands
|
|
- Display BGP routes for a specific IP address
|
|
- Check the status of BGP sessions
|
|
|
|
This functionality enables administrators to troubleshoot network issues more effectively.
|
|
|
|
## Functional Requirements
|
|
|
|
- Security: The LG must be secure to prevent unauthorized access and ensure data integrity.
|
|
- User-Friendliness:
|
|
- The LG frontend should provide command history for user reference.
|
|
- The LG frontend should provide graphical output for BGP routes to enhance understanding.
|
|
- Deployment and Maintenance: The LG must be easy to deploy and maintain, minimizing the administrative burden.
|
|
- Integration: The LG must interact with Bird2 for BGP functionalities.
|
|
- Multi-Router Support: The LG must support multiple routers to facilitate broader network management.
|
|
- API integration: The LG backend should have a way to integrate with chatbots to facilitate Chat-Ops.
|
|
|
|
## Technical Requirements
|
|
|
|
- Input Validation: The LG must only accept strictly validated user input to prevent injection attacks and ensure command integrity.
|
|
- Restricted Mode Operation: The LG must operate in restricted mode with Bird to limit the scope of commands executed.
|
|
- Performance:
|
|
- The LG frontend must load quickly to enhance user experience.
|
|
- The LG must stream command output in real-time for immediate feedback.
|
|
- The LG frontend must be responsive across different devices and screen sizes.
|
|
- Library and Framework Usage: The LG must utilize a minimal number of libraries and frameworks to reduce complexity and potential vulnerabilities.
|
|
- Configuration: The LG must support configuration through a simple config file or environment variables for ease of setup.
|
|
- BGP Community Mapping: The LG must map BGP communities to user-friendly descriptions, such as "Route originated internally" or "Route learned from upstream," to improve clarity for users.
|
|
- Rate Limiting: The LG should support rate limiting to prevent abuse and ensure fair usage.
|
|
- Logging: The LG needs to log requests for auditing and troubleshooting purposes.
|
|
- Containerization: The LG should support containerized deployments to facilitate scalability and isolation.
|
|
- API: the lg should have a simple API.
|