Cisco route-map

В свое время столкнулся с задачей, довольно редкой, на мой взгляд, - наличие более одного выхода в Интернет и другие внешние сети у организации. А главное - необходимость разрулить трафик не по назначению, а по источнику, и при этом организовать достаточно надежное соединение.

Вот как это стало выглядеть в последствии:
Схема

Но изначально все было более чем печально. Часть "хвостов" от провайдеров висели в воздухе, что-то было подключено вообще напрямую в сеть, а что-то было воткнуто в сервера. Ни NAT, ни какой либо иной защиты просто напросто не было. При том, что серверов хватало, на которых можно было бы настроить прокси, и циски были, они просто пылились в углу, а часть лежала еще дальше и в коробках. Люди просто не знали, что с этим добром делать!

В первую очередь пришлось построить защиту на базе 2811 и MS ISA сервере, а в последствии развернуть ядро на базе 3750. Много времени ушло на построение и перестроение локальной сети, но потом пришлось заняться внешними каналами. Как выяснилось, использовался не самый производительный канал, да и нагрузка на сеть постоянно росла.

Задачи стояли следующие:
  1. Выпустить в Интернет пользователей через один канал, самый толстый ISP2, причем с использованием MS ISA;
  2. Организовать с внешнем миром связь по VPN определенного оборудования, используя  ISP1 и циску поставщика оборудования;
  3. Обеспечить заход избранных пользователей по VPN в локальную сеть, используя  ISP3 и авторизуя пользователей вторым сервером MS ISA;
  4. Выпустить несколько пользователей в Интернет через второй прокси и соответствующий канал;
  5. Перенаправить служебный трафик серверов, используя  ISP1;
  6. Иметь возможность быстро переключить пользователей на запасной канал, не влезая в перенастройку всего оборудования, но и не настраивая автоматику, дабы защититься от случайных срабатываний;
  7. Организовать связь с дружественной организацией минуя Интернет;
  8. Выпускать часть пользователей локальной сети минуя прокси сервера.
Сие действа можно было организовать с помощью цисок и волшебного route-map (карты маршрутов).

После долгого курения манов я сходил к знающим людям и поспрашал их немного, т.к. у меня не "клеились" настройки. Спрашивал я тут - http://www.certification.ru/cgi-bin/forum.cgi?action=thread&id=36807, а получив совет - все доделал и поблагодарил добрых людей.



Итак, немного из того самого обсуждения и пошаговая стратегия (на примере 3750 Router из схемы выше):
  1. Т.к. было организованно физическое соединение одним кабелем между 3750 Router и 3750 Core (прошивка IP Services), то физический интерфейс настраиваем в Trunk, а VLAN интерфейсы на дальнейшую настройку под route-map:
    • interface GigabitEthernet1/0/1
    •  switchport trunk encapsulation dot1q
    •  switchport mode trunk

    • interface Vlan1
    •  description LAN
    •  ip address 192.168.250.2 255.255.0.0

    • interface Vlan550
    •  description Main Routing
    •  ip address 172.30.8.2 255.255.252.0
  2. На коммутаторе с возможностью маршрутизации, на котором нужно реализовать route-map, в первую очередь нужно выполнить sdm prefer routing, чтобы циска однозначно использовала маршрутизацию, а не коммутацию. (на маршрутизаторах этот шаг как правило не нужен, там изначально все настроено на маршрутизацию)
  3. Создаем статические маршруты:
    • ip classless
    • ip route 0.0.0.0 0.0.0.0 172.30.8.10
    • ip route 172.16.0.0 255.255.0.0 172.30.8.1 name LAN   ( 172.30.8.1 - адрес 3750 Core )
  4. Создаем ACL листы (моя статья по этому поводу), на основании которых будем рулить (ремарки в листах - для удобства работы с ними в дальнейшем):
    • access-list 101 remark .
    • access-list 101 remark Route through PROXY 172.30.8.10
    • access-list 101 permit ip 172.16.0.0 0.0.255.255 any
    • access-list 101 permit ip 192.168.0.0 0.0.255.255 any

    • access-list 125 remark .
    • access-list 125 remark Route through PROXY 192.168.0.9
    • access-list 125 remark . TO Biblio Sites
    • access-list 125 permit ip any host 160.109.109.143
    • access-list 125 permit ip any host 198.81.200.2
    • access-list 125 remark . FROM Other
    • access-list 125 permit ip host 172.16.32.128 any
    • access-list 125 permit ip host 172.16.251.11 any
    • access-list 125 remark . FROM Servers
    • access-list 125 permit ip host 192.168.0.5 any

    • access-list 135 remark .
    • access-list 135 remark Route through PIX 172.30.8.5
    • access-list 135 remark . sites
    • access-list 135 permit ip any 10.36.173.0 0.0.0.255
    • access-list 135 remark . transplant COD
    • access-list 135 permit ip any host 87.245.138.172
    • access-list 135 remark . 1C reg
    • access-list 135 permit ip any host 194.190.207.41
    • access-list 135 remark . servers
    • access-list 135 permit ip host 192.168.0.251 any
    • access-list 135 permit ip host 172.16.254.3 any
    • access-list 135 remark . admins
    • access-list 135 permit ip host 172.16.32.2 any
    • access-list 135 permit ip host 172.16.32.5 any
    • access-list 135 remark . users other
    • access-list 135 permit ip host 172.16.52.99 any

    • access-list 145 remark .
    • access-list 145 remark Siemens route through 192.168.0.21
    • access-list 145 permit ip host 172.16.115.2 any
    • access-list 145 permit ip host 172.16.115.3 any
  5. Теперь создаем непосредственно саму карту маршрутов (главное помнить, что обработка идет последовательно, а как видно из ACL № 101 - трафик будет обрабатываться почти весь, соответственно его нужно пихать в конец карты):
    • route-map MAIN permit 10
    •  description Siemens
    •  match ip address 145
    •  set ip next-hop 192.168.0.21

    • route-map MAIN permit 20
    •  description ISA_2
    •  match ip address 125
    •  set ip next-hop 192.168.0.9

    • route-map MAIN permit 30
    •  description 2801
    •  match ip address 135
    •  set ip next-hop 172.30.8.5

    • route-map MAIN permit 40
    •  description ISA_1
    •  match ip address 101
    •  set ip next-hop 172.30.8.10
  6. Теперь, когда карта прописана и у нас есть ACL, можно прикручивать карту к интерфейсу:
    • interface Vlan550
    •  ip policy route-map MAIN
Главное в этой истории то, что в случае если Вы измените хотя бы на символ саму карту - придется откручивать и прикручивать заново ее к интерфейсу, иначе все перестанет работать.

А вот при любом изменении ACL ничего страшного не происходит и, соответственно, если нужно что-то куда-то перенаправить, просто вносите изменения в них и все, процесс будет работать.



Disclaimer

Как говорили добрые люди - PBR - это зло, тем более для каталиста. Во всех мануалах его рекомендуют использовать в самых крайних случаях. Так что если вдруг загрузка CPU подскочит до 100 % - не удивляйтесь.
Именно по этой причине данный сервис был поднят мною не на сетевом ядре, а в стороне от него.
Comments