Kata pengantar
Kebetulan ketika menganalisis alasan penurunan layanan jaringan, Anda ingin memiliki mesin waktu. Yah, atau setidaknya sesuatu yang akan mencatat sejarah pengukuran rute ... Jika Anda pernah menemukan diri Anda dalam situasi seperti itu, maka mungkin itu akan menarik.
Jaringan modern berdasarkan routing paket IP, atau lebih tepatnya layanan yang mereka sediakan, sebenarnya dikendalikan oleh BGP. Protokol ini dirancang pada akhir 1980-an pada tiga serbet. Ya, sejak itu, banyak fitur telah ditambahkan ke protokol ini, termasuk pertukaran informasi perutean VPN, aturan penyaringan lalu lintas, dan hal-hal bermanfaat lainnya, tetapi dasarnya tetap sama, dijelaskan pada tiga serbet. Dan ini memiliki kelebihan, karena protokol ini sangat sederhana pada intinya.
Tetapi saya ingin berbicara bukan tentang kesederhanaannya, tetapi tentang "mengacungkan tinju setelah berkelahi", yang sering dihadapi oleh layanan operasi jaringan apa pun, atau NOC - pusat operasi jaringan (dan mungkin pusat).
" ", " -, 5 ". 5 . ? . , "" 5 , ? , - , , . - . ( ) . - , . , bgplay. . , , , .
. ( , ). , - ? , .
. , , BGP - exabgp. . , , - python. , . , . python (, GIL), , . ( ) , . BGP (, golang!). ? , , bgp- . . .
Rust — . BGP . exabgp BGP FSM , Rust API, std , . zettabgp, — bgpexplorer.
. Bgpexplorer bgp-, ( route reflector) bgp-, . RIB (Routing Information Database) , . -. - , .
- . , () .
, git rust.
$ git clone https://github.com/wladwm/bgpexplorer
...
$ cd bgpexplorer
$ cargo build
...
. .
Cisco, :
! 65535 ,
router bgp 65535
! , IBGP
neighbor 10.1.1.1 remote-as 65535
!
neighbor 10.1.1.1 update-source Loopback0
!
neighbor 10.1.1.1 transport connection-mode passive
address-family ipv4
!
neighbor 10.1.1.1 activate
!
neighbor 10.1.1.1 route-reflector-client
! ipv4 labeled-unicast
neighbor 10.1.1.1 send-label
address-family vpnv4
! VPNv4
neighbor 10.1.1.1 activate
neighbor 10.1.1.1 send-community extended
$ cat > bgpexplorer.ini <<EOF
[main]
httplisten=0.0.0.0:8080
httproot=contrib
session=s0
whoisjsonconfig=whois.json
[s0]
mode=bmpactive
bgppeer=10.0.0.1
peeras=65535
EOF
main :
httplisten — http
httproot — . index.html .
Whoisjsonconfig whois
Session – , bgp, s0
(s0 ) :
bgppeer — BGP
Peeras —
protolisten — :, BGP BMP
Mode —
mode :
bgppassive —
bgpactive —
bmpactive — BMP
bmppassive — BMP
ini- bgpexplorer, ,
cargo run
.
RIB - IPv4, IPv6, VPN ..
, - .
. , .
community, aspath, nexthop, route-target, route-distinguisher.
Saat Anda mengarahkan kursor ke ASn, alamat router, kueri ke whois atau DNS akan dilakukan, dan informasi yang diterima akan ditampilkan di popup. Terkadang panjang, tetapi bisa bermanfaat.
Saya akan senang jika alat ini bermanfaat bagi orang lain. Menemukan masalah, keinginan, ide, kritik yang membangun dipersilakan.