95 lines
No EOL
4.1 KiB
HTML
95 lines
No EOL
4.1 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}AS215085 - Router tools | History{% endblock %}
|
|
|
|
{% block page_header %}<H3>BGP Route history</H3>{% endblock %}
|
|
|
|
{% block content %}
|
|
<section id="total-routes-graph">
|
|
<h2>Total Route History</h2>
|
|
<div class="d-flex justify-content-end align-items-center mb-3 flex-wrap">
|
|
<div class="btn-group me-2" role="group" aria-label="Time range">
|
|
<button type="button" class="btn btn-outline-primary active" data-range="24h">24H</button>
|
|
<button type="button" class="btn btn-outline-primary" data-range="7d">7D</button>
|
|
<button type="button" class="btn btn-outline-primary" data-range="30d">30D</button>
|
|
<button type="button" class="btn btn-outline-primary" data-range="90d">90D</button>
|
|
</div>
|
|
<div class="d-flex align-items-center">
|
|
<input type="datetime-local" id="startDate" class="form-control me-1" style="width: auto;">
|
|
<span class="me-1">to</span>
|
|
<input type="datetime-local" id="endDate" class="form-control me-1" style="width: auto;">
|
|
<button type="button" id="customRangeBtn" class="btn btn-primary">Go</button>
|
|
</div>
|
|
</div>
|
|
|
|
<h3 class="mt-4">IPv4 Routes</h3>
|
|
<div class="achart-wrapper-chart">
|
|
<canvas id="ipv4RoutesChart"></canvas>
|
|
</div>
|
|
|
|
<hr class="my-4">
|
|
|
|
<h3 class="mt-4">IPv6 Routes</h3>
|
|
<div class="achart-wrapper-chart">
|
|
<canvas id="ipv6RoutesChart"></canvas>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="peer-links">
|
|
<h2>Peer History Links</h2>
|
|
{% if peers %}
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<h5>IPv4 Peers</h5>
|
|
<ul class="list-group list-group-flush">
|
|
{% for peer in peers if peer.ip_version == 'ipv4' %}
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<div>
|
|
<a href="{{ url_for('bgp_peer_graph_page', ip_version='ipv4', neighbor_ip=peer.neighbor_address) }}" target="_blank" rel="noopener noreferrer">
|
|
{{ peer.neighbor_address }}
|
|
</a>
|
|
{% if peer.description %}
|
|
<small class="ms-2 text-muted">{{ peer.description }}</small>
|
|
{% endif %}
|
|
</div>
|
|
{% if peer.asn %}
|
|
<a href="https://bgp.tools/search?q={{ peer.asn }}" target="_blank" rel="noopener noreferrer">
|
|
AS{{ peer.asn }}
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<h5>IPv6 Peers</h5>
|
|
<ul class="list-group list-group-flush">
|
|
{% for peer in peers if peer.ip_version == 'ipv6' %}
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<div>
|
|
<a href="{{ url_for('bgp_peer_graph_page', ip_version='ipv6', neighbor_ip=peer.neighbor_address) }}" target="_blank" rel="noopener noreferrer">
|
|
{{ peer.neighbor_address }}
|
|
</a>
|
|
{% if peer.description %}
|
|
<small class="ms-2 text-muted">{{ peer.description }}</small>
|
|
{% endif %}
|
|
</div>
|
|
{% if peer.asn %}
|
|
<a href="https://bgp.tools/search?q={{ peer.asn }}" target="_blank" rel="noopener noreferrer">
|
|
AS{{ peer.asn }}
|
|
</a>
|
|
{% endif %}
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<p class="text-center">No historical data found for peers yet. Run the collector to collect data.</p>
|
|
{% endif %}
|
|
</section>
|
|
|
|
<script src="{{ url_for('static', filename='js/chart.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/chartjs-adapter-date-fns') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/pages/history.js') }}"></script>
|
|
{% endblock %} |