Rute statis Junos VRF yang setara, multi-next-hop, tidak menyeimbangkan

8

Saya memuat lalu lintas penyeimbangan pada tautan ganda, ukuran yang sama, menggabungkan ke VRF yang sama pada router PE (Juniper MX5 JunOS 11.4). Lalu lintas dari CE (Cisco) menyeimbangkan dengan baik tetapi saya harus melakukan yang sebaliknya.

Saya bukan NATing di dalam jaringan multi-situs, satu-satunya NATing yang terjadi pada firewall tepi ke Internet.

Saya telah mengkonfigurasi VRF sebagai berikut pada router Juniper PE:

# show routing-instances {client}
instance-type vrf;
.
.
vrf-export {client}-load-balance;
.
.
routing-options {
    static {
        .
        .
        route 10.0.0.0/24 next-hop [ 196.33.144.11 196.33.144.3 ];
        .
        .
    }
}
forwarding-options {
    load-balance {
        indexed-next-hop;
        per-flow {
            hash-seed;
        }
    }
}

dan dalam konfigurasi utama ini:

# show policy-options policy-statement {client}-load-balance
then {
     load-balance per-packet;
}

dan

# show forwarding-options hash-key
family inet {
    layer-3;
    layer-4;
}

Router masih memilih hanya 196.33.144.3 hop untuk merutekan traffic subnet (10.0.0.0/24) ke dan tidak menyeimbangkan kedua link.

Berikut ini beberapa cek:

# run show route forwarding-table table {client}
Routing table: {client}.inet
Internet:
Destination        Type RtRef Next hop           Type Index NhRef Netif
default            user     0 8:5b:e:84:4c:b0    ucst   561     3 ge-1/1/2.3017
default            perm     0                    rjct   961     1
0.0.0.0/32         perm     0                    dscd   959     1
10.0.0.0/24        user     0 196.33.144.3       ucst   589     5 ge-1/1/5.2100
10.0.0.55/32       user     0                    ucst   645     6 gr-1/1/10.1
10.0.0.210/32      user     0                    ucst   645     6 gr-1/1/10.1
10.0.6.0/24        user     0                    ucst   921     3 gr-1/1/10.16
.
.

dan

# run show route 10.0.0.0 table {client}.inet.0

{client}.inet.0: 19 destinations, 20 routes (19 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.0.0.0/24        *[Static/5] 3d 07:43:36
                    > to 196.33.144.3 via ge-1/1/5.2100
                      to 196.33.144.11 via gr-1/1/10.1

dan

# run show route table {client}.inet.0 detail

{client}.inet.0: 19 destinations, 20 routes (19 active, 0 holddown, 0 hidden)
.
.
10.0.0.0/24 (1 entry, 1 announced)
        *Static Preference: 5
                Next hop type: Router, Next hop index: 1048574
                Address: 0xb6b407c
                Next-hop reference count: 3
                Next hop: 196.33.144.3 via ge-1/1/5.2100, selected
                Next hop: 196.33.144.11 via gr-1/1/10.1
                State: <Active Int Ext>
                Age: 3d 7:46:23
                Task: RT
                Announcement bits (2): 0-RT 2-KRT
                AS path: I
                AS path: Recorded

10.0.0.55/32 (1 entry, 1 announced)
        *Static Preference: 5
.
.

Ada panduan yang menjelaskan hal ini menggunakan instance inet.0 default dari router tetapi saya tidak dapat menemukan contoh ini dilakukan di dalam VRF.

Saya mencoba perintah vrf-ekspor sebagai alternatif untuk "forwading-table export load-balance-policy-name" karena VRF tidak memiliki opsi forwarding-table.

Adakah ide yang bisa saya coba?

Shawn Gradwell
sumber
Apakah kedua hop berikutnya dapat dijangkau dari MX?
Jordan Head
Iya. Saya dapat melakukan ping ke dua IP dengan sukses menggunakan: # run ping routing-instance-instance {client}
Shawn Gradwell
Oke, biarkan saya praktikkan ini - saya punya firasat.
Jordan Head
2
"Saya mencoba perintah vrf-export sebagai alternatif untuk forwading-table export load-balance-policy-name" Aneh, tanpa memodifikasi tabel penerusan Anda, ECMP tidak akan berfungsi. Saya tidak bermaksud menyinggung Anda, tetapi apakah Anda yakin Anda mencoba memasukkannya ke dalam editlevel yang benar ? Seharusnya begitu set routing-options forwarding-table export {client}-load-balance.
Ryan Foley
Oh, aku salah membaca sebagian. Ryan benar sekali, Anda harus menerapkan kebijakan load balancing ke hierarki yang disebutkannya. Ekspor-VRF bukan untuk penyeimbangan beban, ini untuk hal-hal seperti target rute / pembeda.
Jordan Head

Jawaban:

5

Tampaknya Anda menerapkan kebijakan load balancing ke routing-instance. Ini perlu diterapkan forwarding-tablepada agar dapat melakukan ECMP pada bidang penerusan.

routing-options {
     forwarding-table {
          export load-balancing-policy;
     }
}

Untuk mengonfirmasi itu berfungsi, Anda harus melihat sesuatu yang mirip dengan ini. Perhatikan entri tambahan pada tabel penerusan untuk entri 10.0.0.0/24.

# run show route forwarding-table table {client}
Routing table: {client}.inet
Internet:
Destination        Type RtRef Next hop           Type Index NhRef Netif
default            user     0 8:5b:e:84:4c:b0    ucst   561     3 ge-1/1/2.3017
default            perm     0                    rjct   961     1
0.0.0.0/32         perm     0                    dscd   959     1
10.0.0.0/24        user     0 196.33.144.3       ucst   589     5 ge-1/1/5.2100 *
10.0.0.0/24        user     0 196.33.144.11      ucst   645     6 gr-1/1/10.1   *
10.0.0.55/32       user     0                    ucst   645     6 gr-1/1/10.1
10.0.0.210/32      user     0                    ucst   645     6 gr-1/1/10.1
10.0.6.0/24        user     0                    ucst   921     3 gr-1/1/10.16
.
.
Ryan Foley
sumber
1
Ini berhasil! Saya juga menambahkan dua IP next-hop ke kebijakan khusus ini untuk menguncinya hanya ke rute itu. Terima kasih banyak!
Shawn Gradwell