Referensi atribut kebijakan rute BGP

Halaman ini menunjukkan 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 menyertakan kondisi serta tindakan yang sesuai saat rute cocok dengan istilah tersebut. Kebijakan rute BGP tertentu hanya dapat diterapkan dalam satu arah, baik masuk untuk rute yang dipelajari, maupun keluar untuk rute yang diiklankan, tetapi tidak keduanya secara bersamaan. Namun, kebijakan rute BGP dapat diterapkan ke beberapa peer BGP di Cloud Router.

Mencocokkan atribut

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

Atribut

Deskripsi

communities

Daftar komunitas yang diatribusikan ke 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 true jika komunitas adalah superset dari daftar '65001:1234'.

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

Hanya dibatasi untuk impor.

destination == '192.168.0.0/24'

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

destination != '192.168.0.0/24'

Menampilkan true jika rute BGP tidak cocok dengan 192.168.0.0/24 (kecocokan 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 berupa salah satu nilai yang dijelaskan sebelumnya.

Dapat dinegasikan dengan !.

prefix('192.168.0.0/24')

Menampilkan objek 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-alamat keluarga 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 ditetapkan ke /20, dan akhir ditetapkan ke /30.

prefix().upTo(30)

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

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 operasi || (OR), semua kondisi secara efektif adalah nol atau beberapa operasi pencocokan destination 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

Sama persis dengan 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

Sama persis dengan 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

Mencocokkan rentang dalam 192.168.0.0/25 dengan 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

Mencocokkan rentang dalam 192.168.0.0/24 dengan 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

Mencocokkan rentang dalam 192.168.0.0/25 dengan 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

Mencocokkan rentang dalam 192.168.0.0/24 dengan 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([])

Mencocokkan semua rute untuk kebijakan impor.

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

Mencocokkan semua alamat IPv4 untuk kebijakan impor atau ekspor.

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

Mencocokkan semua alamat IPv6 untuk kebijakan impor atau ekspor.

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

Mencocokkan 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 pembaruan rute BGP

Kebijakan ekspor dan impor

communities

Daftar komunitas rute

Hanya ekspor kebijakan

med

Multipath exit discriminator (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 persyaratan rute BGP, termasuk tindakan apa pun yang dilakukan setelahnya.

Tidak ada

drop()

Memfilter rute BGP, dan menghentikan evaluasi lebih lanjut terhadap kebijakan atau persyaratan BGP, termasuk tindakan apa pun yang dilakukan setelahnya.

Tidak ada

nextPolicy()

Menghentikan eksekusi istilah yang tersisa dalam kebijakan rute BGP ini (termasuk tindakan apa pun setelah istilah ini), dan beralih 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.

Semua nilai komunitas 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 ekspor kebijakan

communities.remove('65001:1234')

Menghapus nilai komunitas dari daftar komunitas.

Nilai komunitas dapat berupa satu komunitas atau daftar.

Semua nilai komunitas 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 ekspor kebijakan

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

Mengganti daftar komunitas dengan nilai komunitas, yang dapat kosong.

Semua nilai komunitas 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 ekspor kebijakan

med.set(12345)

Menetapkan MED ke 12345.

Tidak ada