Mengapa router ini gagal menggunakan beberapa rute dengan biaya yang sama dari OSPF?

16

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

R1dan R2beriklan tujuan anycast melalui OSPF. Jika Rcorememiliki biaya yang identik pada antarmuka N1dan 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 Rcoretabel routing. Saya tidak, setidaknya tidak selalu, dan bahkan tidak bisa ditebak. Kenapa tidak?

Di antara yang lainnya, detail yang berpotensi relevan adalah sebagai berikut.

  • Rcoreadalah penghubung ABR N1dan N2, yang berada di area NSSA yang terpisah, ke tulang punggung (tidak diperlihatkan).
  • Pemeriksaan RcoreLSDB mengonfirmasi bahwa LSA yang diharapkan dari R1dan R2dipasang dengan benar, dan berisi tujuan siaran mana pun dengan metrik yang benar.

Saya telah mempertimbangkan tiga kemungkinan penjelasan.

  1. 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.
  2. 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.
  3. 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
neirbowj
sumber
Jenis rute apa yang ditayangkan?
nikotin
@nicotine: Alamat anycast adalah alamat sekunder pada antarmuka loopback. Dalam permutasi terbaru dari konfigurasi ini, berakhir sebagai jaringan rintisan di Router LSA. Cuplikan konfigurasi dan terminal untuk diikuti.
neirbowj
Saya mencoba untuk menghapus konfigurasi dan output sebanyak mungkin tetapi tidak terlalu banyak. Saran untuk meningkatkan kepadatan informasi dipersilahkan.
neirbowj
Ini seharusnya bekerja. Dapatkah Anda memposting output dari perintah berikut: perlihatkan protokol ip tunjukkan ip ospf rib debug ip routing Coba perintah ini pada Rcore. Ini harus memberi kita beberapa petunjuk mengapa rute ganda tidak diinstal. Output OSPF DB Anda terlihat bagus bagi saya.
Daniel Dib
Jika Anda memantulkan tautan rute aktif apakah masih lebih memilih rute asli? Sebagai contoh: Dalam output CLI Anda itu menunjukkan rute aktif menunjuk ke 10.1.0.2. Jika Anda menutup antarmuka ke 10.1.0.2 cukup lama untuk memecahkan tetangga OSPF kemudian membawanya kembali online apakah rute asli menuju 10.1.0.2 diinstal ulang?
bigmstone

Jawaban:

7

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.

Pete Lumbis
sumber
Yap - entri database harus memberi tahu kami - apakah mereka memiliki alamat penerusan dan router iklan yang sama?
nikotin
Saya akan bekerja untuk mendapatkan sampel output sore ini.
neirbowj
6

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.

Dennis Olvany
sumber
1
Hmm, saya mengerjakan satu area dan ECMP hadir pada intinya. Meskipun, saya masih akan berpendapat bahwa itu tidak berguna dengan a / 32. Mungkin yang berikut ini relevan: morse.colorado.edu/~tlen5710/12s/OSPF.pdf
Dennis Olvany
Ini mengatakan bahwa area tersebut adalah salah satu kriteria untuk ECMP. Sepertinya area yang berbeda mungkin adalah pelanggar.
Dennis Olvany
OSPF pada tuan rumah - ya, inilah tujuannya. / 32 ditugaskan sebagai alamat sekunder pada loopback. Saya juga mencari konfigurasi pembagian beban, tapi itu tergantung pada ECMP di tempat pertama.
neirbowj
5

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:

Routing entry for 10.20.0.0/16
  Known via "ospf 1", distance 110, metric 20, type NSSA extern 2, forward metric 6477
  Last update from 2.2.2.6 on Serial1/1, 00:02:23 ago
  Routing Descriptor Blocks:
    2.2.2.6, from 2.2.2.21, 00:02:23 ago, via Serial1/1
      Route metric is 20, traffic share count is 1
  * 1.1.2.1, from 1.1.1.1, 00:06:31 ago, via Serial1/0
      Route metric is 20, traffic share count is 1

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.

nikotin
sumber
FWIW, gambar dalam contoh Dynamips saya adalah 12,4 (25d) pada 7200. Hasil Anda menunjukkan "Dikenal melalui ... NSSA extern 2" tetapi tambang saya menunjukkan "intra area". Itu petunjuk yang bagus.
neirbowj
Redistribusi yang terhubung akan menghasilkan itu alih-alih menggunakan perintah jaringan atau ip ospf di bawah antarmuka.
Daniel Dib
@DanielDib Saya sedang dalam proses permutasi yang melelahkan dari normal / stub / nssa, intra-area / eksternal, dan setidaknya Cisco + Dynamips / Brocade. Saya akan mencoba Juniper juga, jika saya punya waktu.
neirbowj
3

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.

GoatAtWork
sumber
Saya akan mengingat hal ini. Namun, R1 / R2 mengatur biaya, Rcore melihat biaya, dan Rcore menunjukkan gejala ECMP.
neirbowj