mirror of
https://github.com/thatmattlove/hyperglass.git
synced 2026-01-22 10:18:07 +00:00
- Add complete configuration reference (complete-config.mdx) with detailed parameter documentation, examples, and descriptions for all config.yaml options - Add user guide (user-guide.mdx) explaining hostname resolution, 'My IP' feature, query types, and troubleshooting for end users - Add quick-start configuration examples (quick-start.mdx) with 8 real-world scenarios: minimal, corporate, privacy-focused, high-performance, ISP, enterprise, development, and monitoring setups - Update navigation structure (_meta.tsx files) to integrate new documentation sections - Provide comprehensive coverage of DNS-over-HTTPS hostname resolution, myip.wtf IP detection, web UI customization, logging/webhooks, structured output, and theme configuration - Include practical examples, use cases, troubleshooting tips, and best practices throughout This addresses documentation gaps by providing both technical reference material for administrators and user-focused guidance for end users, with extensive real-world configuration examples.
362 lines
No EOL
11 KiB
Text
362 lines
No EOL
11 KiB
Text
---
|
|
title: User Guide
|
|
description: How to use the hyperglass web interface
|
|
---
|
|
|
|
import { Callout } from 'nextra/components'
|
|
|
|
# User Guide
|
|
|
|
This guide explains how to use the hyperglass web interface from an end-user perspective. If you're looking to configure hyperglass as an administrator, see the [Configuration Guide](/configuration).
|
|
|
|
## Getting Started
|
|
|
|
The hyperglass web interface provides an easy-to-use form for performing network diagnostics. Here's how to use it:
|
|
|
|
### 1. Select a Location
|
|
|
|
Choose which router/location you want to query from using the location selector. This determines which network device will execute your diagnostic command.
|
|
|
|
- **Dropdown Mode**: Select from a list of available locations
|
|
- **Gallery Mode**: Choose from a visual grid of location cards (used when there are 5 or fewer locations)
|
|
|
|
### 2. Choose Query Type
|
|
|
|
Select the type of network diagnostic you want to perform:
|
|
|
|
- **Ping**: Test basic connectivity and measure round-trip time
|
|
- **Traceroute**: Show the network path to a destination
|
|
- **BGP Route**: Look up BGP routing information for an IP prefix
|
|
- **BGP Community**: Find routes with specific BGP communities
|
|
- **BGP AS Path**: Find routes traversing specific ASNs
|
|
|
|
### 3. Enter Your Target
|
|
|
|
Specify what you want to query. This can be:
|
|
|
|
- **IP Address**: `8.8.8.8` or `2001:4860:4860::8888`
|
|
- **Hostname**: `google.com` or `www.example.com`
|
|
- **IP Prefix**: `8.8.8.0/24` (for BGP queries)
|
|
- **AS Number**: `AS15169` (for AS path queries)
|
|
|
|
## Using Hostnames (FQDN Resolution)
|
|
|
|
<Callout type="info">
|
|
When you enter a hostname like `google.com` instead of an IP address, hyperglass automatically resolves it to IP addresses using secure DNS-over-HTTPS. This happens directly in your browser for privacy and security.
|
|
</Callout>
|
|
|
|
### How Hostname Resolution Works
|
|
|
|
1. **Enter a hostname**: Type something like `google.com` in the target field
|
|
2. **Detection**: hyperglass detects this is a hostname (not an IP address)
|
|
3. **DNS Resolution**: A modal opens showing "Resolving hostname..."
|
|
4. **Choose IP**: Select from available IPv4 and/or IPv6 addresses
|
|
5. **Submit Query**: The selected IP address is used for your diagnostic query
|
|
|
|
### Hostname Resolution Features
|
|
|
|
- **IPv4 and IPv6**: Get both A and AAAA records when available
|
|
- **Privacy-Focused**: Uses DNS-over-HTTPS (encrypted) instead of plain DNS
|
|
- **Multiple Providers**: Supports Cloudflare DNS, Google DNS, or custom resolvers
|
|
- **Browser-Based**: Resolution happens in your browser, not on the server
|
|
|
|
### Example: Resolving a Hostname
|
|
|
|
```
|
|
1. Enter "google.com" as your target
|
|
2. Click Submit
|
|
3. See resolution modal:
|
|
┌─────────────────────────────────────┐
|
|
│ Your browser has resolved google.com to │
|
|
│ │
|
|
│ [→] 142.250.191.14 (IPv4) │
|
|
│ [→] 2607:f8b0:4004:c1b::71 (IPv6) │
|
|
│ │
|
|
└─────────────────────────────────────┘
|
|
4. Click your preferred IP address
|
|
5. Query executes using the selected IP
|
|
```
|
|
|
|
## Using "My IP" Feature
|
|
|
|
<Callout type="info">
|
|
The "My IP" button automatically detects your public IP address and uses it as the query target. This is useful for testing connectivity or routing to your current location.
|
|
</Callout>
|
|
|
|
### How "My IP" Works
|
|
|
|
1. **Click the "My IP" button** (located next to the target input field)
|
|
2. **IP Detection**: A modal opens showing "Detecting your IP address..."
|
|
3. **Choose Version**: Select your IPv4 or IPv6 address (or both if available)
|
|
4. **Auto-Population**: Your selected IP is automatically entered as the target
|
|
|
|
### When to Use "My IP"
|
|
|
|
- **Connectivity Testing**: Check if the network can reach your location
|
|
- **Routing Analysis**: See what path traffic takes to reach you
|
|
- **Latency Testing**: Measure round-trip time to your connection
|
|
- **Troubleshooting**: Diagnose connectivity issues from your current network
|
|
|
|
### Example: Using My IP
|
|
|
|
```
|
|
1. Click the "My IP" button
|
|
2. See detection modal:
|
|
┌─────────────────────────────────────┐
|
|
│ Select an IP Address │
|
|
│ │
|
|
│ [→] 203.0.113.45 (IPv4) │
|
|
│ [→] 2001:db8::1 (IPv6) │
|
|
│ │
|
|
└─────────────────────────────────────┘
|
|
3. Click your preferred IP version
|
|
4. IP is automatically entered as target
|
|
5. Submit your query as normal
|
|
```
|
|
|
|
## Query Types Explained
|
|
|
|
### Ping
|
|
|
|
Tests basic connectivity and measures round-trip time.
|
|
|
|
**Use Cases:**
|
|
- Check if a host is reachable
|
|
- Measure network latency
|
|
- Basic connectivity troubleshooting
|
|
|
|
**Sample Output:**
|
|
```
|
|
PING google.com (142.250.191.14): 56 data bytes
|
|
64 bytes from 142.250.191.14: icmp_seq=0 ttl=58 time=12.345 ms
|
|
64 bytes from 142.250.191.14: icmp_seq=1 ttl=58 time=11.678 ms
|
|
|
|
--- google.com ping statistics ---
|
|
2 packets transmitted, 2 packets received, 0.0% packet loss
|
|
round-trip min/avg/max/stddev = 11.678/12.012/12.345/0.334 ms
|
|
```
|
|
|
|
### Traceroute
|
|
|
|
Shows the network path packets take to reach a destination.
|
|
|
|
**Use Cases:**
|
|
- Identify network routing paths
|
|
- Find where connectivity breaks
|
|
- Analyze routing decisions
|
|
- Network troubleshooting
|
|
|
|
**Sample Output:**
|
|
```
|
|
traceroute to google.com (142.250.191.14), 30 hops max, 60 byte packets
|
|
1 gateway.local (192.168.1.1) 1.234 ms 1.456 ms 1.789 ms
|
|
2 isp-router.net (203.0.113.1) 5.123 ms 5.234 ms 5.345 ms
|
|
3 backbone.net (198.51.100.1) 12.34 ms 12.45 ms 12.56 ms
|
|
4 google-peer.net (142.250.191.14) 15.67 ms 15.78 ms 15.89 ms
|
|
```
|
|
|
|
### BGP Route
|
|
|
|
Look up BGP routing information for IP prefixes.
|
|
|
|
**Use Cases:**
|
|
- Check BGP route advertisements
|
|
- Verify RPKI validation status
|
|
- Analyze AS paths and communities
|
|
- Route troubleshooting
|
|
|
|
**Sample Output:**
|
|
```
|
|
BGP routing table entry for 8.8.8.0/24
|
|
Paths: 1 available
|
|
15169
|
|
192.0.2.1 from 192.0.2.1
|
|
Origin IGP, metric 0, valid, external, best
|
|
Community: 65000:100 65000:200
|
|
RPKI validation state: Valid
|
|
Last update: 2 hours ago
|
|
```
|
|
|
|
### BGP Community
|
|
|
|
Find routes with specific BGP communities.
|
|
|
|
**Use Cases:**
|
|
- Filter routes by community values
|
|
- Analyze traffic engineering policies
|
|
- Debug community-based routing
|
|
|
|
### BGP AS Path
|
|
|
|
Find routes traversing specific Autonomous Systems.
|
|
|
|
**Use Cases:**
|
|
- Analyze internet routing paths
|
|
- Check AS-level connectivity
|
|
- Investigate routing policies
|
|
|
|
## Understanding Results
|
|
|
|
### Status Indicators
|
|
|
|
Results include several status indicators:
|
|
|
|
- **✓ Success**: Query completed successfully
|
|
- **⚠ Warning**: Query completed with warnings
|
|
- **✗ Error**: Query failed
|
|
- **🕒 Cached**: Result was served from cache
|
|
- **⏱ Time**: Shows how long the query took
|
|
|
|
### Cache Information
|
|
|
|
<Callout type="info">
|
|
To improve performance, hyperglass caches query results. Cached results are marked with a clock icon and show when they expire. Fresh queries are automatically run when cache expires.
|
|
</Callout>
|
|
|
|
When you see cached results:
|
|
- **Cache Timer**: Shows "Results cached for X seconds"
|
|
- **Cache Icon**: Hover to see when the original query was run
|
|
- **Auto-Refresh**: New query runs automatically when cache expires
|
|
|
|
### RPKI Validation
|
|
|
|
For BGP queries, routes show RPKI validation status:
|
|
|
|
- **Valid**: Route has valid ROA (Route Origin Authorization)
|
|
- **Invalid**: Route conflicts with ROA
|
|
- **Unknown**: No ROA exists for this route
|
|
- **Not Verified**: RPKI validation not performed
|
|
|
|
## Common Use Cases
|
|
|
|
### Network Troubleshooting
|
|
|
|
**Scenario**: Website seems slow from your location
|
|
|
|
1. Use **"My IP"** feature to get your IP address
|
|
2. Run **ping** to measure basic connectivity and latency
|
|
3. Run **traceroute** to see the network path
|
|
4. Check **BGP route** to verify optimal routing
|
|
|
|
### Connectivity Testing
|
|
|
|
**Scenario**: Check if a server is reachable
|
|
|
|
1. Enter the server's **hostname or IP address**
|
|
2. Select multiple **router locations** to test from different points
|
|
3. Use **ping** for basic reachability
|
|
4. Use **traceroute** if ping fails to find where connectivity breaks
|
|
|
|
### Routing Analysis
|
|
|
|
**Scenario**: Analyze how traffic reaches a destination
|
|
|
|
1. Enter the **destination IP or prefix**
|
|
2. Use **BGP route** to see routing table entries
|
|
3. Check **AS path** to understand routing decisions
|
|
4. Verify **RPKI validation** for security
|
|
|
|
### Multi-Location Testing
|
|
|
|
**Scenario**: Test connectivity from multiple network locations
|
|
|
|
1. Choose your **target** (IP, hostname, or prefix)
|
|
2. Select **multiple locations** using Ctrl+Click (or Cmd+Click on Mac)
|
|
3. Submit query to test from **all selected locations simultaneously**
|
|
4. Compare results to identify location-specific issues
|
|
|
|
## Tips and Best Practices
|
|
|
|
### Efficient Querying
|
|
|
|
- **Use hostnames** when you don't know IP addresses - hyperglass will resolve them
|
|
- **Try "My IP"** for connectivity testing from your location
|
|
- **Select multiple locations** to get a broader view of network behavior
|
|
- **Check cached results** first - they may already have the information you need
|
|
|
|
### Interpreting Results
|
|
|
|
- **Compare multiple locations** to identify regional issues
|
|
- **Look at RPKI status** for BGP routes to verify security
|
|
- **Check AS paths** to understand routing decisions
|
|
- **Use traceroute** when ping shows connectivity issues
|
|
|
|
### Privacy and Security
|
|
|
|
- **DNS resolution** uses encrypted DNS-over-HTTPS for privacy
|
|
- **No logging** of sensitive query details in most configurations
|
|
- **RPKI validation** helps verify route authenticity
|
|
- **Rate limiting** prevents abuse while allowing legitimate use
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
**"Unable to resolve hostname"**
|
|
- Check spelling of the hostname
|
|
- Try a different DNS provider in browser settings
|
|
- Use an IP address instead
|
|
|
|
**"Request timed out"**
|
|
- Target may be unreachable or filtering responses
|
|
- Try a different query type
|
|
- Check from multiple locations
|
|
|
|
**"No output"**
|
|
- Query completed but returned no results
|
|
- Target may not exist in routing tables
|
|
- Try a broader search (e.g., larger prefix)
|
|
|
|
**"Target not allowed"**
|
|
- Query target is blocked by policy
|
|
- Contact administrator if you believe this is an error
|
|
- Try a different target
|
|
|
|
### Getting Help
|
|
|
|
If you encounter issues:
|
|
|
|
1. **Check multiple locations** - issue may be location-specific
|
|
2. **Try different query types** - some may work when others don't
|
|
3. **Contact network administrators** - they can review logs and policies
|
|
4. **Report persistent issues** - help improve the service
|
|
|
|
---
|
|
|
|
## Advanced Features
|
|
|
|
### Keyboard Shortcuts
|
|
|
|
- **Enter**: Submit query
|
|
- **Ctrl/Cmd + Click**: Select multiple locations
|
|
- **Tab**: Navigate between form fields
|
|
- **Escape**: Close modals/popups
|
|
|
|
### URL Parameters
|
|
|
|
You can bookmark or share queries using URL parameters:
|
|
|
|
```
|
|
https://lg.example.com/?location=router1&type=ping&target=8.8.8.8
|
|
```
|
|
|
|
Parameters:
|
|
- `location`: Router location ID
|
|
- `type`: Query type (ping, traceroute, bgp_route, etc.)
|
|
- `target`: Query target (IP, hostname, prefix, etc.)
|
|
|
|
### API Access
|
|
|
|
For programmatic access, use the REST API:
|
|
|
|
```bash
|
|
curl -X POST https://lg.example.com/api/query \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"query_location": "router1",
|
|
"query_type": "ping",
|
|
"query_target": "8.8.8.8"
|
|
}'
|
|
```
|
|
|
|
See the [API Documentation](/api/docs) for complete details. |