Привет! У меня проблема с алгоритмом выбора лучшего пути BGP. Я не понимаю, почему в моём случае первым выбирается именно этот маршрут как «лучший». Мы используем bgp-local-pref=200 для маршрутов IXP-Peering. Чтобы отдавать предпочтение конкретному IXP, мы помечаем эти маршруты разными MED, чтобы при этом сохранять предпочтение для кратчайшего AS-path. Мы хотели бы отдавать приоритет Гамбургскому IXP перед Амстердамом, Мюнхеном или Дюссельдорфом. Вот несколько маршрутов к Google. Но хотя маршрут из Мюнхена имеет более высокий MED, чем все остальные, именно он устанавливается как «лучший». Почему?
[admin@XXX] > /ip route print detail where dst-address=23.227.34.0/24
Flags: X - отключён, A - активен, D - динамический, C - подключён, S - статический, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - недоступен, P - запрещён
0 ADb dst-address=23.227.34.0/24 gateway=80.81.202.170 gateway-status=80.81.202.170 reachable via vlan-de-cix-muc distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=230 bgp-origin=egp
bgp-communities=64800:40001,64800:41004,64800:42004,64800:49999,65101:3096,65102:3000,65103:276,65104:150 received-from=de-cix.muc.rs1
1 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999,65101:4081,65102:4000,65103:276,65104:150 received-from=de-cix.ham.rs1
2 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999,65101:4081,65102:4000,65103:276,65104:150 received-from=de-cix.ham.rs2
3 Db dst-address=23.227.34.0/24 gateway=80.249.208.247 gateway-status=80.249.208.247 reachable via vlan-ams-ix distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=220 bgp-origin=egp
bgp-communities=64800:40002,64800:41005,64800:42005,64800:49999
received-from=ams-ix.rs1
4 Db dst-address=23.227.34.0/24 gateway=80.249.208.247 gateway-status=80.249.208.247 reachable via vlan-ams-ix distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=220 bgp-origin=egp
bgp-communities=64800:40002,64800:41005,64800:42005,64800:49999
received-from=ams-ix.rs2
5 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999
received-from=de-cix.ham.google
6 Db dst-address=23.227.34.0/24 gateway=62.115.144.140 gateway-status=62.115.144.140 reachable via vlan-telia-iptransit distance=20 scope=40 target-scope=10
bgp-as-path="1299,15169,396982" bgp-local-pref=100 bgp-origin=egp
bgp-communities=1299:20000 received-from=telia
Если я отключаю BGP-сессию с роутер сервером Мюнхена, то один из гамбургских маршрутов становится лучшим, как и ожидалось.
[admin@XXX] /ipv6 firewall address-list> /ip route print detail where dst-address=23.227.34.0/24
Flags: X - отключён, A - активен, D - динамический, C - подключён, S - статический, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - недоступен, P - запрещён
0 ADb dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999,65101:4081,65102:4000,65103:276,65104:150 received-from=de-cix.ham.rs1
1 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999,65101:4081,65102:4000,65103:276,65104:150 received-from=de-cix.ham.rs2
2 Db dst-address=23.227.34.0/24 gateway=80.249.208.247 gateway-status=80.249.208.247 reachable via vlan-ams-ix distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=220 bgp-origin=egp
bgp-communities=64800:40002,64800:41005,64800:42005,64800:49999
received-from=ams-ix.rs1
3 Db dst-address=23.227.34.0/24 gateway=80.249.208.247 gateway-status=80.249.208.247 reachable via vlan-ams-ix distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=220 bgp-origin=egp
bgp-communities=64800:40002,64800:41005,64800:42005,64800:49999
received-from=ams-ix.rs2
4 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999
received-from=de-cix.ham.google
5 Db dst-address=23.227.34.0/24 gateway=62.115.144.140 gateway-status=62.115.144.140 reachable via vlan-telia-iptransit distance=20 scope=40 target-scope=10
bgp-as-path="1299,15169,396982" bgp-local-pref=100 bgp-origin=egp
bgp-communities=1299:20000 received-from=telia
Это реальные данные, но информации здесь нет такой, которой нельзя было бы найти в PeeringDB.
[admin@XXX] > /ip route print detail where dst-address=23.227.34.0/24
Flags: X - отключён, A - активен, D - динамический, C - подключён, S - статический, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - недоступен, P - запрещён
0 ADb dst-address=23.227.34.0/24 gateway=80.81.202.170 gateway-status=80.81.202.170 reachable via vlan-de-cix-muc distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=230 bgp-origin=egp
bgp-communities=64800:40001,64800:41004,64800:42004,64800:49999,65101:3096,65102:3000,65103:276,65104:150 received-from=de-cix.muc.rs1
1 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999,65101:4081,65102:4000,65103:276,65104:150 received-from=de-cix.ham.rs1
2 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999,65101:4081,65102:4000,65103:276,65104:150 received-from=de-cix.ham.rs2
3 Db dst-address=23.227.34.0/24 gateway=80.249.208.247 gateway-status=80.249.208.247 reachable via vlan-ams-ix distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=220 bgp-origin=egp
bgp-communities=64800:40002,64800:41005,64800:42005,64800:49999
received-from=ams-ix.rs1
4 Db dst-address=23.227.34.0/24 gateway=80.249.208.247 gateway-status=80.249.208.247 reachable via vlan-ams-ix distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=220 bgp-origin=egp
bgp-communities=64800:40002,64800:41005,64800:42005,64800:49999
received-from=ams-ix.rs2
5 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999
received-from=de-cix.ham.google
6 Db dst-address=23.227.34.0/24 gateway=62.115.144.140 gateway-status=62.115.144.140 reachable via vlan-telia-iptransit distance=20 scope=40 target-scope=10
bgp-as-path="1299,15169,396982" bgp-local-pref=100 bgp-origin=egp
bgp-communities=1299:20000 received-from=telia
Если я отключаю BGP-сессию с роутер сервером Мюнхена, то один из гамбургских маршрутов становится лучшим, как и ожидалось.
[admin@XXX] /ipv6 firewall address-list> /ip route print detail where dst-address=23.227.34.0/24
Flags: X - отключён, A - активен, D - динамический, C - подключён, S - статический, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - недоступен, P - запрещён
0 ADb dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999,65101:4081,65102:4000,65103:276,65104:150 received-from=de-cix.ham.rs1
1 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999,65101:4081,65102:4000,65103:276,65104:150 received-from=de-cix.ham.rs2
2 Db dst-address=23.227.34.0/24 gateway=80.249.208.247 gateway-status=80.249.208.247 reachable via vlan-ams-ix distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=220 bgp-origin=egp
bgp-communities=64800:40002,64800:41005,64800:42005,64800:49999
received-from=ams-ix.rs1
3 Db dst-address=23.227.34.0/24 gateway=80.249.208.247 gateway-status=80.249.208.247 reachable via vlan-ams-ix distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=220 bgp-origin=egp
bgp-communities=64800:40002,64800:41005,64800:42005,64800:49999
received-from=ams-ix.rs2
4 Db dst-address=23.227.34.0/24 gateway=80.81.203.34 gateway-status=80.81.203.34 reachable via vlan-de-cix-ham distance=20 scope=40 target-scope=10
bgp-as-path="15169,396982" bgp-local-pref=200 bgp-med=100 bgp-origin=egp
bgp-communities=64800:40001,64800:41001,64800:42002,64800:49999
received-from=de-cix.ham.google
5 Db dst-address=23.227.34.0/24 gateway=62.115.144.140 gateway-status=62.115.144.140 reachable via vlan-telia-iptransit distance=20 scope=40 target-scope=10
bgp-as-path="1299,15169,396982" bgp-local-pref=100 bgp-origin=egp
bgp-communities=1299:20000 received-from=telia
Это реальные данные, но информации здесь нет такой, которой нельзя было бы найти в PeeringDB.

