Router Brocade yang menjalankan NetIron 5.2, dan emulasi Dynamips yang menjalankan iOS 12.4 keduanya gagal menggunakan jalur biaya yang sama dalam konfigurasi yang tampaknya sangat sederhana. Saya mengatakan "andal" karena saya mengamati dengan sangat singkat perilaku yang diharapkan dari Brocade, tetapi itu terjadi setelah periode tidak aktif yang lama dan menghilang begitu saya mengganggu sistem.
Dalam hal ini relevan, saya menyiapkan tujuan siaran mana pun untuk layanan jaringan tanpa negara. Ini akan menjadi konfigurasi khusus-situs, dengan sedikit atau tanpa keragaman panjang jalur jaringan, sehingga tujuan kemampuan siaran mana pun terutama untuk redundansi kegagalan-alih dan sebagian untuk berbagi beban. Pertanyaan saya menyangkut fungsi berbagi beban.
Jaringan prototipe saya terlihat seperti ini.
R1 <--N1--> Rcore <--N2--> R2
R1
dan R2
beriklan tujuan anycast melalui OSPF. Jika Rcore
memiliki biaya yang identik pada antarmuka N1
dan nya N2
, dan tujuan anycast memiliki biaya yang identik di masing-masing router lain, saya akan berharap untuk menemukan dua jalur biaya yang sama di Rcore
tabel routing. Saya tidak, setidaknya tidak selalu, dan bahkan tidak bisa ditebak. Kenapa tidak?
Di antara yang lainnya, detail yang berpotensi relevan adalah sebagai berikut.
Rcore
adalah penghubung ABRN1
danN2
, yang berada di area NSSA yang terpisah, ke tulang punggung (tidak diperlihatkan).- Pemeriksaan
Rcore
LSDB mengonfirmasi bahwa LSA yang diharapkan dariR1
danR2
dipasang dengan benar, dan berisi tujuan siaran mana pun dengan metrik yang benar.
Saya telah mempertimbangkan tiga kemungkinan penjelasan.
- Saya tidak mengerti cara mengkonfigurasi dan mengoperasikan ECMP pada platform ini. Ini mungkin, dan saya berharap dapat menemukan pencerahan di sini yang tidak dapat saya temukan di dokumen vendor.
- Saya tidak mengerti interaksi antara Area OSPF, ECMP, siaran apa pun, dll. Saya tidak berpikir ini sangat mungkin, tetapi saya tetap siap untuk belajar sesuatu.
- Implementasi dua vendor ini menderita bug yang sama, atau salah fitur, atau sesuatu. Saya kira itu bisa terjadi.
Edit konfigurasi contoh yang ditambahkan dan output untuk implementasi Dynamips / Dynagen.
Konfigurasi
Router R1
!
version 12.4
!
hostname R1
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip ospf cost 1
!
interface FastEthernet0/0
ip address 10.1.0.2 255.255.255.252
ip ospf cost 2
!
router ospf 1
router-id 10.1.0.2
log-adjacency-changes
area 0.0.0.1 nssa no-summary
passive-interface Loopback0
network 1.1.1.1 0.0.0.0 area 0.0.0.1
network 10.1.0.0 0.0.0.3 area 0.0.0.1
!
line console 0
exec-timeout 0 0
!
end
Router R2
!
version 12.4
!
hostname R2
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip ospf cost 1
!
interface FastEthernet0/0
ip address 10.2.0.2 255.255.255.252
ip ospf cost 2
!
router ospf 1
router-id 10.2.0.2
log-adjacency-changes
area 0.0.0.2 nssa no-summary
passive-interface Loopback0
network 1.1.1.1 0.0.0.0 area 0.0.0.2
network 10.2.0.0 0.0.0.3 area 0.0.0.2
!
line console 0
exec-timeout 0 0
!
end
Router Rcore
!
version 12.4
!
hostname Rcore
!
interface Loopback0
ip address 10.0.0.1 255.255.255.255
ip ospf cost 4
!
interface FastEthernet0/0
ip address 10.1.0.1 255.255.255.252
ip ospf cost 2
!
interface FastEthernet0/1
ip address 10.2.0.1 255.255.255.252
ip ospf cost 2
!
router ospf 1
log-adjacency-changes
area 0.0.0.1 nssa no-summary
area 0.0.0.2 nssa no-summary
passive-interface Loopback0
network 10.0.0.1 0.0.0.0 area 0.0.0.0
network 10.1.0.0 0.0.0.3 area 0.0.0.1
network 10.2.0.0 0.0.0.3 area 0.0.0.2
!
line console 0
exec-timeout 0 0
!
end
Keluaran
Router Rcore
Router LSA dari R1
Rcore#sh ip ospf database router 10.1.0.2
OSPF Router with ID (10.0.0.1) (Process ID 1)
Router Link States (Area 0.0.0.1)
LS age: 1618
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 10.1.0.2
Advertising Router: 10.1.0.2
LS Seq Number: 80000002
Checksum: 0x726F
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number: 1.1.1.1
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.1.0.2
(Link Data) Router Interface address: 10.1.0.2
Number of TOS metrics: 0
TOS 0 Metrics: 2
Router LSA dari R2
Rcore#sh ip ospf database router 10.2.0.2
OSPF Router with ID (10.0.0.1) (Process ID 1)
Router Link States (Area 0.0.0.2)
LS age: 1766
Options: (No TOS-capability, DC)
LS Type: Router Links
Link State ID: 10.2.0.2
Advertising Router: 10.2.0.2
LS Seq Number: 80000002
Checksum: 0x8A53
Length: 48
Number of Links: 2
Link connected to: a Stub Network
(Link ID) Network/subnet number: 1.1.1.1
(Link Data) Network Mask: 255.255.255.255
Number of TOS metrics: 0
TOS 0 Metrics: 1
Link connected to: a Transit Network
(Link ID) Designated Router address: 10.2.0.2
(Link Data) Router Interface address: 10.2.0.2
Number of TOS metrics: 0
TOS 0 Metrics: 2
Kutipan tabel routing
Rcore#sh ip route 1.1.1.1
Routing entry for 1.1.1.1/32
Known via "ospf 1", distance 110, metric 3, type intra area
Last update from 10.1.0.2 on FastEthernet0/0, 00:30:54 ago
Routing Descriptor Blocks:
* 10.1.0.2, from 10.1.0.2, 00:30:54 ago, via FastEthernet0/0
Route metric is 3, traffic share count is 1
Jawaban:
Pikiran pertama saya adalah bahwa OSPF berpikir itu adalah LSA yang sama dan bukan hanya awalan yang sama. Saya tidak tahu banyak tentang brokat, tetapi dengan keluaran LSA dari kotak Cisco saya mungkin bisa memberi tahu Anda lebih banyak.
Secara umum, untuk Cisco, jika rute sama dalam protokol, keduanya akan disajikan ke tabel routing. Tabel routing, akan, secara default, menginstal kedua jalur dan melakukan ECMP. Jika metrik atau protokol berbeda, mereka tidak akan ECMP. Ini juga berlaku untuk berbagai LSA untuk awalan yang sama.
sumber
Saya sedang mempertimbangkan apakah ECMP masuk akal untuk siaran apa pun. Routing harus mengarahkan siaran mana pun ke tujuan terdekat yang logis di mana satu host akan lebih disukai dari yang lain. Bahkan dalam kasus di mana host-host anycast berjarak sama, saya masih berharap ini tetap benar. Adapun pembagian beban ECMP, saya akan berpikir per-tujuan tidak mungkin dengan / 32. Mungkin ada algoritma pembagian beban yang mempertimbangkan sumbernya. Per paket tampaknya berisiko, bahkan untuk DNS. Saya percaya sebagian besar solusi outcast out-of-the-box menjalankan ospf pada host.
Butuh sedikit pencarian, tetapi kutipan berikut dari rfc2178 mengkonfirmasi penyebabnya.
16.8. Multipath dengan biaya yang sama
Protokol OSPF memelihara beberapa rute dengan biaya yang sama untuk semua tujuan. Ini dapat dilihat pada langkah-langkah yang digunakan di atas untuk menghitung tabel routing, dan dalam definisi struktur tabel routing.
Masing-masing dari beberapa rute akan memiliki tipe yang sama (intra-area, antar-area, tipe 1 eksternal atau tipe 2 eksternal), biaya, dan akan memiliki area terkait yang sama . Namun, setiap rute menentukan hop berikutnya yang terpisah dan router Iklan.
sumber
Saya tidak dapat mereproduksi ini di lab saya, menggunakan 12,4 (24). Topologi yang sama, RCore area 0 loopback, R1 dengan lo0 dan antarmuka di area 1, R2 dengan lo0 dan antarmuka di area 2 (keduanya NSSA), rute yang didistribusikan kembali diambil untuk ECMP pada Rcore:
Kemungkinan yang dapat saya pikirkan: Tergantung pada bagaimana rute membuatnya menjadi OSPF, dan apa tipe rute OSPF yang digunakan, biaya untuk router ASBR mungkin / mungkin tidak diperhitungkan dalam proses pemilihan rute (agar ECMP berfungsi, kedua biaya rute , dan biaya untuk ASBR harus sesuai). Melihat metrik pada LSA yang sebenarnya untuk keduanya dapat membantu.
Saya dapat mereproduksi ini di iOS dengan meniru konfigurasi Anda - menempatkan anycast pada antarmuka, dan menempatkan antarmuka ke suatu area. Jika Anda benar-benar membutuhkan ECMP, pertimbangkan untuk mendistribusikan kembali rute ke OSPF, karena sepertinya itu berfungsi.
sumber
Bergantung pada perangkat keras Brocade apa yang Anda gunakan (MLX? CER? XMR?), Anda mungkin ingin memperbarui perangkat lunak. Ada beberapa bug yang diperbaiki melalui pohon perangkat lunak 5.3 (dan 5.4 tergantung pada perangkat keras Anda) yang gejalanya terkait dengan biaya rute OSPF tidak diperbarui dengan benar. Saya tidak tahu semua kriteria untuk melihat bug, tetapi beberapa di antaranya adalah: Jika biaya diubah pada port 1gig atau antarmuka loopback pada router yang menjalankan OSPF, perubahan tidak diproses dan biaya tidak diperbarui .
Saya menyadari Anda melihat ini pada platform dua pabrikan, jadi ini lebih cenderung menjadi masalah konfigurasi. Saya juga menyadari bahwa alat dukungan teknologi lama "perbarui perangkat lunak Anda" sering kali bernilai tidak lebih dari sekadar eye-roll. Yang mengatakan, itu mungkin sesuatu yang perlu diingat.
sumber