Referensi atribut kebijakan rute BGP

Halaman ini menampilkan contoh kebijakan rute BGP, menggunakan Common Expression Language (CEL) untuk Cloud Router.

Kebijakan rute BGP ditentukan sebagai daftar istilah yang diurutkan. Setiap istilah dievaluasi dalam urutan yang Anda tentukan, dan mencakup kondisi serta tindakan yang sesuai jika rute cocok dengan istilah tersebut. Kebijakan rute BGP tertentu hanya dapat diterapkan dalam satu arah, baik masuk untuk rute yang dipelajari, atau keluar untuk rute yang diiklankan, tetapi tidak keduanya secara bersamaan. Namun, kebijakan rute BGP dapat diterapkan ke beberapa peer BGP di Cloud Router.

Atribut pencocokan

Tabel berikut menjelaskan atribut pencocokan yang tersedia untuk kebijakan rute BGP:

Atribut

Deskripsi

communities

Daftar komunitas yang dikaitkan dengan rute BGP

destination

Rentang IP untuk rute BGP

Operasi pencocokan

Tabel berikut menjelaskan operasi pencocokan yang tersedia untuk kebijakan rute BGP:

Operasi

Deskripsi

communities.matchesEvery('65001:1234')

Menampilkan nilai benar jika komunitas adalah superset dari daftar '65001:1234'.

A community_value adalah kolom 32-bit yang dibagi menjadi dua bagian 16-bit bagian. Secara konvensional, 16-bit pertama dari nilai tersebut mengenkode nomor sistem otonom (AS) dari jaringan asal komunitas, tetapi Cloud Router tidak menerapkan konvensi ini. 16-bit kedua dari nilai tersebut mengenkode nomor unik yang ditetapkan oleh AS asal.

Dibatasi hanya untuk impor.

destination == '192.168.0.0/24'

Menampilkan true jika rute BGP cocok dengan 192.168.0.0/24 (pencocokan persis).

destination != '192.168.0.0/24'

Menampilkan true jika rute BGP tidak cocok dengan 192.168.0.0/24 (pencocokan persis).

destination.inAnyRange(r)

Menampilkan true jika rute BGP berada dalam rentang r, dengan r adalah salah satu dari berikut ini:

  • String dengan awalan yang dienkode CIDER, seperti 192.168.0.0/24.
  • Jenis abstrak yang ditampilkan oleh prefix(), atau salah satu metode lancar yang dapat Anda panggil di prefix(), seperti longer().
  • Daftar heterogen dengan setiap elemen harus salah satu dari nilai yang dijelaskan sebelumnya.

Dapat dinegasikan dengan !.

prefix('192.168.0.0/24')

Menampilkan objek pencocokan awalan yang mewakili rentang CIDR 192.168.0.0/24, yang digunakan dengan destination.inAnyRange().

prefix('192.168.0.0/24').longer()

Menampilkan objek rentang awalan yang merupakan salinan prefix() dengan akhir rentang yang ditetapkan ke maksimum per keluarga alamat awalan input (/32 atau /128), dan awal rentang yang ditetapkan ke panjang awalan input ditambah satu.

prefix().orLonger()

Menampilkan objek rentang awalan yang merupakan salinan prefix() dengan akhir rentang yang ditetapkan ke maksimum per keluarga alamat awalan input (/32 atau /128).

prefix().lengthRange(20, 30)

Menampilkan objek rentang awalan yang merupakan salinan prefix() dengan awal rentang yang ditetapkan ke /20, dan akhir yang ditetapkan ke /30.

prefix().upTo(30)

Menampilkan objek rentang awalan yang merupakan salinan prefix() dengan akhir rentang yang ditetapkan ke /30 awalan input.

communitySets('regional')

(Pratinjau)

Menampilkan daftar komunitas yang diberi nama dalam set komunitas regional di router.

prefixSets('local')

(Pratinjau)

Menampilkan daftar awalan yang diberi nama dalam set awalan local di router.

x || y

Menampilkan true jika x atau y adalah true.

x dan y harus berupa ekspresi boolean yang menggunakan atribut communities atau destination.

Karena aturan untuk || (OR) operasi, semua kondisi secara efektif adalah nol atau lebih destination operasi pencocokan yang terhubung dengan OR.

(D0 || D1 || ... || Dm)

Tabel berikut adalah contoh penggunaan prefix untuk membuat ekspresi reguler yang kompleks dibandingkan dengan beberapa vendor router:

Cloud Router Cisco Juniper Penjelasan

'192.168.0.1'

192.168.0.1

192.168.0.1

Cocokkan persis awalan 192.168.0.1/32

'192.168.0.0/24'

prefix('192.168.0.0/24')

192.168.0.0/24

192.168.0.0/24 exact

Cocokkan persis awalan 192.168.0.0/24

prefix('192.168.0.0/24').longer()

192.168.0.0/24 ge 25 le 32

192.168.0.0/24 longer

Cocokkan rentang dalam 192.168.0.0/25 hingga 192.168.0.0/32

prefix('192.168.0.0/24').orLonger()

192.168.0.0/24 le 32

192.168.0.0/24 orlonger

Cocokkan rentang dalam 192.168.0.0/24 hingga 192.168.0.0/32

prefix('192.168.0.0/24').lengthRange(25, 30)

192.168.0.0/24 ge 25 le 30

192.168.0.0/24 prefix-length-range /25-/30

Cocokkan rentang dalam 192.168.0.0/25 hingga 192.168.0.0/30

prefix('192.168.0.0/24').upTo(30)

192.168.0.0/24 le 30

192.168.0.0/24 up to /30

Cocokkan rentang dalam 192.168.0.0/24 hingga 192.168.0.0/30

Mencocokkan semua rute

Tabel berikut menjelaskan contoh yang cocok dengan semua rute dalam ekspresi pencocokan kebijakan rute BGP:

Operasi

Deskripsi

communities.matchesEvery([])

Cocokkan semua rute untuk kebijakan impor.

destination.inAnyRange(prefix('0.0.0.0/0').orLonger())

Cocokkan semua alamat IPv4 untuk kebijakan impor atau ekspor kebijakan.

destination.inAnyRange(prefix('::/0').orLonger())

Cocokkan semua alamat IPv6 untuk kebijakan impor atau ekspor kebijakan.

destination.inAnyRange([prefix('0.0.0.0/0').orLonger(), prefix('::/0').orLonger()])

Cocokkan semua rute untuk kebijakan impor atau ekspor.

Atribut tindakan

Tabel berikut menjelaskan atribut tindakan yang tersedia untuk kebijakan rute BGP:

Atribut

Deskripsi

Pembatasan

asPath

Daftar nomor AS yang dilalui update rute BGP

Kebijakan ekspor dan impor

communities

Daftar komunitas rute

Hanya kebijakan ekspor

med

Diskriminator multi-exit (MED) rute

Kebijakan ekspor dan impor

Operasi tindakan

Tabel berikut menjelaskan operasi tindakan yang tersedia untuk kebijakan rute BGP:

Operasi

Deskripsi

Pembatasan

accept()

Menerima rute BGP, dan menghentikan evaluasi lebih lanjut terhadap kebijakan atau istilah rute BGP, termasuk tindakan apa pun yang muncul setelah tindakan ini.

Tidak ada

drop()

Memfilter rute BGP, dan menghentikan evaluasi lebih lanjut terhadap kebijakan atau istilah BGP, termasuk tindakan apa pun yang muncul setelah tindakan ini.

Tidak ada

nextPolicy()

Menghentikan eksekusi istilah yang tersisa dalam kebijakan rute BGP ini (termasuk tindakan apa pun setelah istilah ini), dan melanjutkan ke kebijakan rute BGP berikutnya yang diterapkan (jika ada).

Tidak ada

asPath.prependSequence([1, 2, 3])

Menambahkan daftar nomor AS ke atribut AS-PATH, sebagai urutan.

Argumen harus berupa bilangan bulat dalam rentang 32-bit.

Tidak ada

communities.add('65001:1234')

Menambahkan nilai komunitas ke daftar komunitas.

Nilai komunitas dapat berupa satu komunitas atau daftar.

Nilai komunitas apa pun yang merupakan komunitas pribadi yang dipetakan ke ASN milik Google berikut akan diabaikan oleh Cloud Router:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Hanya kebijakan ekspor

communities.remove('65001:1234')

Menghapus nilai komunitas dari daftar komunitas.

Nilai komunitas dapat berupa satu komunitas atau daftar.

Nilai komunitas apa pun yang merupakan komunitas pribadi yang dipetakan ke ASN milik Google berikut akan diabaikan oleh Cloud Router:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Hanya kebijakan ekspor

communities.replaceAll(['65001:1234'])

Mengganti daftar komunitas dengan nilai komunitas, yang dapat kosong.

Nilai komunitas apa pun yang merupakan komunitas pribadi komunitas yang dipetakan ke ASN milik Google berikut akan diabaikan oleh Cloud Router:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Hanya kebijakan ekspor

med.set(12345)

Menetapkan MED ke 12345.

Nilai MED harus berupa bilangan bulat yang tidak ditandatangani dari 0 hingga 232.

Tidak ada

med.add(12345)

Menambahkan 12345 ke nilai set MED.

Nilai MED harus berupa bilangan bulat yang tidak ditandatangani dari 0 hingga 232. Jika hasil penambahan lebih besar dari 232 - 1, operasi ini akan menetapkan MED ke 232 - 1.

Tidak ada

med.subtract(12345)

Mengurangi 12345 dari nilai set MED.

Nilai MED harus berupa bilangan bulat yang tidak ditandatangani dari 0 hingga 232. Jika hasil pengurangan kurang dari 0, operasi ini akan menetapkan MED ke 0.

Tidak ada