BGP - фильтрация входящих префиксов

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:f840398e1c1c7dade14150e1279a0f7b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\">На днях обратился знакомый с просьбой о помощи. Часть ресурсов его сети стала недоступна.</p>\n<p class=\"rtejustify\">После диагностики обнаружил, что проблема заключается в отсутсвии &quot;защиты от дурака&quot; в настройках&nbsp;<strong>BGP</strong>. В сети знакомого используются сети из блока&nbsp;<strong>192.168.0.0/16</strong>&nbsp;с маской<strong>&nbsp;/24</strong>, а провайдер по&nbsp;<strong>BGP</strong>&nbsp;начал анонсировать эти же сети с маской&nbsp;<strong>/26</strong>. Соответственно, таблица маршрутизации перестроилась и трафик, вместо того, чтобы &quot;бежать&quot; к ресурсам локальной сети, направлялся к провайдеру. Как говорится, &quot;офигел молча&quot;, но нужно что-то решать.</p>\n<p class=\"rtejustify\">Возмущаться и разбираться с сапортом провайдера - дело долгое. Поэтому решаем вопрос на стороне сети знакомого.</p>\n<p class=\"rtejustify\">Создадим&nbsp;<strong>prefix-list</strong>, в котором запретим все зарезервированные сети, которые не должны маршрутизироваться в сети <strong>Internet</strong> (в табличке колонка <strong>Global</strong> из статьи о&nbsp;<a href=\"http://muff.kiev.ua/content/reserved-ipv4-addresses-zarezervirovannye-ipv4-adresa\">зарезервированных IPv4 адресах</a>):</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<pre>\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 5 deny 0.0.0.0/8 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 10 deny 10.0.0.0/8 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 15 deny 100.64.0.0/10 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 20 deny 127.0.0.0/8 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 25 deny 169.254.0.0/16 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 30 deny 172.16.0.0/12 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 35 deny 192.0.0.0/24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 40 deny 192.0.2.0/24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 45 deny 192.168.0.0/16 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 50 deny 198.18.0.0/15 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 55 deny 198.51.100.0/24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 60 deny 203.0.113.0/24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 65 deny 240.0.0.0/4 le 24\nbgp(config)# ip prefix-list Deny_Reserved_Net seq 100 permit 0.0.0.0/0 le 24</pre></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Также последним правилом &quot;отрезаем&quot; все сети с маской длиннее&nbsp;<strong>/24</strong>, поскольку они не должны маршрутизироваться в сети&nbsp;<strong>Internet</strong>. Теперь можно просто &quot;наложить&quot; этот <strong>prefix-list</strong> на <strong>neighbor</strong>-а&nbsp;провайдера, однако я обычно использую&nbsp;<strong>route-map</strong>, что добавляет гибкости при настройке. Создадим&nbsp;<strong>route-map</strong>, включим в него созданный&nbsp;<strong>prefix-list</strong>&nbsp;и &quot;наложим&quot; на&nbsp;<strong>neighbor</strong>-а провайдера.&nbsp;</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<pre>\nbgp(config)# route-map UPLINK-in permit 10\nbgp(config-route-map)# match ip address prefix-list Deny_Reserved_Net\nbgp(config-route-map)# exit\nbgp(config)# router bgp 65001\nbgp(config-router)# neighbor x.x.x.x route-map UPLINK-in in\n</pre></td>\n</tr>\n</tbody>\n</table>\n<p>Последний штрих - очистка входящих маршрутов и сохранение конфигурации.</p>\n<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\">\n<tbody>\n<tr>\n<td>\n<pre>\nbgp# clear ip bgp x.x.x.x soft in\nbgp# copy running-config startup-config</pre></td>\n</tr>\n</tbody>\n</table>\n<p>&nbsp;</p>\n', created = 1767453673, expire = 1767540073, headers = '', serialized = 0 WHERE cid = '2:f840398e1c1c7dade14150e1279a0f7b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767453673, expire = 1767540073, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767453673, expire = 1767540073, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другуPDF version

На днях обратился знакомый с просьбой о помощи. Часть ресурсов его сети стала недоступна.

После диагностики обнаружил, что проблема заключается в отсутсвии "защиты от дурака" в настройках BGP. В сети знакомого используются сети из блока 192.168.0.0/16 с маской /24, а провайдер по BGP начал анонсировать эти же сети с маской /26. Соответственно, таблица маршрутизации перестроилась и трафик, вместо того, чтобы "бежать" к ресурсам локальной сети, направлялся к провайдеру. Как говорится, "офигел молча", но нужно что-то решать.

Возмущаться и разбираться с сапортом провайдера - дело долгое. Поэтому решаем вопрос на стороне сети знакомого.

Создадим prefix-list, в котором запретим все зарезервированные сети, которые не должны маршрутизироваться в сети Internet (в табличке колонка Global из статьи о зарезервированных IPv4 адресах):

bgp(config)# ip prefix-list Deny_Reserved_Net seq 5 deny 0.0.0.0/8 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 10 deny 10.0.0.0/8 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 15 deny 100.64.0.0/10 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 20 deny 127.0.0.0/8 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 25 deny 169.254.0.0/16 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 30 deny 172.16.0.0/12 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 35 deny 192.0.0.0/24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 40 deny 192.0.2.0/24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 45 deny 192.168.0.0/16 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 50 deny 198.18.0.0/15 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 55 deny 198.51.100.0/24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 60 deny 203.0.113.0/24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 65 deny 240.0.0.0/4 le 24
bgp(config)# ip prefix-list Deny_Reserved_Net seq 100 permit 0.0.0.0/0 le 24

Также последним правилом "отрезаем" все сети с маской длиннее /24, поскольку они не должны маршрутизироваться в сети Internet. Теперь можно просто "наложить" этот prefix-list на neighbor-а провайдера, однако я обычно использую route-map, что добавляет гибкости при настройке. Создадим route-map, включим в него созданный prefix-list и "наложим" на neighbor-а провайдера. 

bgp(config)# route-map UPLINK-in permit 10
bgp(config-route-map)# match ip address prefix-list Deny_Reserved_Net
bgp(config-route-map)# exit
bgp(config)# router bgp 65001
bgp(config-router)# neighbor x.x.x.x route-map UPLINK-in in

Последний штрих - очистка входящих маршрутов и сохранение конфигурации.

bgp# clear ip bgp x.x.x.x soft in
bgp# copy running-config startup-config

 

Ваша оценка: Нет Средняя: 4 (4 голоса)

Вставай, Україно!

Литература

Существует рoвнo oдин интуитивнo пoнятный интерфейс - сoска. Остальные oсваиваются путем oбучения.