Добрый день. Имеется сеть такого вида (рисунок). Квадраты - свичи уровня 3, окружности - рутеры. Все устройства соединены друг с другом по типу точка-точка, маршрутизация осуществаляется посредсвтом OSPF. Зеленый рутер имеет два пути выхода к ядру, через две подсети, через одну из которых маршрут прямолинейный (оранжевая), а через другую (синяя) имеет множество вариантов, так как соединений друг с другом и выходов на ядро много.
На данном рутере на OSPF прикрепили АСL, который запрещает анонсировать ему сети 10.10.10.0 10.20.20.0 целиком, ведь подсоединенный к нему подсети с маской 30 он итак видит и соседей по OSPF не теряет. Лишние сети пропали из таблицы, все нормально.
Но возник вопрос - а будет ли нормально работать OPSF, ведь рутер выбирает лучший маршрут исходя из метрики, зависящей от исходящих интерфейсов на пути маршрута и в отличие от EIGRP в OSPF каждый узел имеет карту всей сети и сам рассчитвает метрику. Собсвтенно вопроса два - будет ли в рутер правильно выбирать маршрут, рассчитывая метрику, при этому не зная промежуточные сети, и вытекающий из него - АСL не пускает только информацию о маршрутах или заодно с ней всю остальную необходимую для работы OSPF информацию?
Решено! Перейти к решению.
Привет !
с или без "distribute-list", база данных топологии остается прежней (show ip ospf database topology).
Не думаю, что это влияет на работу OSPF.
--> Команда 'distribute-list' используется для фильтрации маршрутов от установки в таблицу маршрутизации или перераспределения в другой протокол маршрутизации, она не фильтрует LSA.
извините за мой плохой русский...
Добрый день,
Не совсем понятно для чего вообще фильтровать какие-либо сети в данной ситуации. Чего Вы пытаетесь этим достичь? Что означают "лишние сети"?
Вообще - фильтрация маршрутов в OSPF - дело рискованное, потому что правильная работа протокола зависит от правильности информации в базе данных LSA. Если очень нужно фильтровать сети, то правильно это делать на границе двух областей.
В сети очень много подсетей, подавляющее большинство из которых такими локальными рутерами, как этот, не используются. Тем не менее его таблица маршрутизации в точности совпадает с таблицей свичей уровня ядра. С точки зрения безопасности, так как подобные этому рутеры расположены не в лучших местах, а также облегчения работы рутера было решено воспользоваться фильтрацией. На пограничном рутере можно фильтровать только сети между двумя регионами, а подсети непосредственно в самом регионе -нет. Все, что указано на рисунке - не более 5-10% одного из регионов, при этом каждый из этих узлов имеет собственные подсети, каждая из которых работает по сути только с ядров, за которым расположены серверы. ПО хорошему в таблице маршрутизации должны быть всего пара десятков сетей, тогда как там их около полтысячи. Подавляющее большинство фильтруемых сетей - это локальные подсети таких же как этот рутеров либо свичей и абсолютно ему не нужных.
Привет !
Чтобы проверить маршрутизацию, я проверил это в лаборатории. Я не использовал столько роутеров и свитчей, сколько вы, просто еще несколько внизу Вот результат с примененным ACL:
R1#sh ip route
8.0.0.0/32 is subnetted, 1 subnets
O 8.8.8.8 [110/3] via 10.10.10.2, 00:00:00, GigabitEthernet0/0
10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.10.10.0/30 is directly connected, GigabitEthernet0/0
L 10.10.10.1/32 is directly connected, GigabitEthernet0/0
C 10.20.20.0/30 is directly connected, GigabitEthernet0/1
L 10.20.20.1/32 is directly connected, GigabitEthernet0/1
А вот вывод с примененным ACL:
R1#sh ip route
8.0.0.0/32 is subnetted, 1 subnets
O 8.8.8.8 [110/3] via 10.10.10.2, 00:00:00, GigabitEthernet0/0
10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
C 10.10.10.0/30 is directly connected, GigabitEthernet0/0
L 10.10.10.1/32 is directly connected, GigabitEthernet0/0
O 10.10.10.4/30 [110/2] via 10.10.10.2, 00:00:00, GigabitEthernet0/0
C 10.20.20.0/30 is directly connected, GigabitEthernet0/1
L 10.20.20.1/32 is directly connected, GigabitEthernet0/1
O 10.20.20.4/30 [110/2] via 10.20.20.2, 00:00:00, GigabitEthernet0/1
O 10.20.20.8/30 [110/3] via 10.20.20.2, 00:00:00, GigabitEthernet0/1
[110/3] via 10.10.10.2, 00:00:00, GigabitEthernet0/0
так что похоже OSPF работает.
Это ACL, который я использовал для 'distribute-list':
access-list 1 deny 10.10.10.0 0.0.0.255
access-list 1 deny 10.20.20.0 0.0.0.255
access-list 1 permit any
А вы его на вход (in) или выход (out) в OSPF повесили? Этот лист я применил так :
router ospf 1
distrubiute list 1 in
Я тоже проверил, до применения ACL таблица содержит все маршруты, после примениения запрещенные пропадают, как и должно. OSPF работает, оба соседа на месте, пользователи за этим рутером спокойно выходят к серверам за ядром и к сетям других рутеров, к которым запрета нет (отдельно написан permit до deny).
Просто я до кучи решил и запретить не только все внутренние сети каждого из узлов, но и p2p сети между ними в лице целой подсети - 10.10.10.0 и 10.20.20.0. Эти сети я запретил, но разрешил сеть серверов и еще некоторых сетей. Больше ни о каких сетях этот рутер не знает. По сути чтобы добраться до сервера он просто отправляет пакет на одного из своих соседей, не зная как он дальше будет идти. В OSPF рутер рассчитывает метрику по исходящим интерфейсам узлов на пути. Вопрос в том, будет ли в этом случае рутер правильно рассчитывать метрику, если не будет получать информацию о этих маршрутах? То есть при запрете общей сети промежуточных сетей между узлами рутер просто не знает об этих сетях или целиком теряет информацию о данном соседе? Если так, OSPF не будет правильно работать и будет работать как EIGRP. Но метрику то OSPF считате по-своему.
Привет !
с или без "distribute-list", база данных топологии остается прежней (show ip ospf database topology).
Не думаю, что это влияет на работу OSPF.
--> Команда 'distribute-list' используется для фильтрации маршрутов от установки в таблицу маршрутизации или перераспределения в другой протокол маршрутизации, она не фильтрует LSA.
извините за мой плохой русский...
Совсем забыл про эту команду) Проверил - так и есть - все эти сети есть в таблице Топологии, хотя в таблице маршрутизации их нет. Значит OSPF будет правильно считать метрику и будет нормально работать. Спасибо!
Если бы вы не написали, я бы и не заметил что это перевод) Так что все понятно)