Định tuyến trong BGP như đã nói ở trên dựa vào các thuộc tính. Dựa vào độ ưu tiên giữa các thuộc tính mà BGP đưa ra quyết định để định tuyến. Giải thuật định tuyến được thể hiện qua sơ đồ dưới đây :
Quá trình chọn tuyến được mô tả theo thứ tự ưu tiên giữa các thuộc tính như sau : Khi các tuyến được nhận bởi các BGP router việc đầu tiên nó làm là kiểm tra thuộc tính NEXT_HOP. Nếu NEXT_HOP không thể đạt được (không nằm trong bảng IP routing ) tuyến đó sẽ bị từ chối. Với các tuyến được nhận từ các IBGP hàng xóm, ngoài việc kiểm tra thuộc tính NEXT_HOP router sẽ kiểm tra luật đồng bộ trên router. Nếu luật đồng bộ được cho phép hoạt động trên router thì các tuyến không đồng bộ sẽ bị từ chối cập nhật vào bảng định tuyến. Sau khi đã kiểm tra và tất cả các điều kiện trên đều thỏa mãn quá trình chọn tuyến trong BGP sẽ được thực hiện dựa trên mức độ ưu tiên giữa các thuộc tính và theo thứ tự lần lượt dưới đây :
- Ưu tiên tuyến có thuộc tính WEIGHT cao nhất (Chỉ có tác dụng trên router) - Ưu tiên tuyến có thuộc tính LOCAL_PREF cao nhất (Thuộct tính này có tác dụng trong một AS). Những tuyến không có thuộc tính LOCAL_PREF sẽ có giá trị mặc định là 100.
- Ưu tiên các tuyến gốc (có NEXT_HOP là 0.0.0.0) - Ưu tiên tuyến có thuộc tính AS_PATH thấp nhất
- Ưu tiên các tuyến có nguồn gốc thấp nhất theo thứ tự ưu tiên IGP, EGP và INCOMPLETE
- Ưu tiên tuyến có thuộc tính MED (metric) thấp nhất (thuộc tính này có giá trị giữa các AS khác nhau ).
- Ưu tiên các tuyến EBGP hơn so với IBGP
- Ưu tiên những đường đi có IGP metric thấp nhất đến BGP NEXT_HOP - Ưu tiên những đường đi đến từ BGP router có routerID nhỏ nhất