The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Настройка Cisco для выхода в сеть через двух провайдеров (cisco link route nat policy route-map)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cisco, link, route, nat, policy, route-map,  (найти похожие документы)
From: ВОЛКА <BOJIKA@mailru.com.> Newsgroups: http://cisco.far.ru Date: Mon, 20 Apr 2005 18:21:07 +0000 (UTC) Subject: Настройка Cisco для выхода в сеть через двух провайдеров Оригинал: http://cisco.far.ru/2isp.html Два провайдера. Часто бывает так, что локальная сеть имеет два выхода в Internet, то есть двух провайдеров. Пусть это будут ISP1 и ISP2. эти два канала можно использовать следующим образом: * одновременно использовать два канала для load-balancing * один канал основной, второй backup'ный второй канал можно использовать также двумя способами * использовать его при падении основного * при загрузке основного канала на Х% подключать backup'ный Если рассматривать вырожденный случай, когда провайдер один и два канала, то тут всё просто. Надо прописать два маршрута по умолчанию одинаковыми метриками ip route 0.0.0.0 0.0.0.0 195.0.1.2 ip route 0.0.0.0 0.0.0.0 195.0.1.6 И соответственно если мы хотим сделать per-packet load-balancing, то на всех интерфейсах, которые соединяют нас с провайдером, ставим no ip route-cache, если же нужно per-destination, то на всех - ip route-cache. Заметьте, что если хотя бы на одном выходном интерфейсе используется NAT, то нельзя использовать per-packet, так как это приведёт к пропаданию пакетов. Также применение policy routing выключает fast switching. Если ваша циска поддерживает cef (cisco express forwarding), то тогда для per-packet ip route-cache cef ip cef per-packet для per-destination ip route-cache cef ip cef per-destination можно также договорится с провайдером, и объединить два канала в один логический, используя ppp multilink. Если провайдеров - два, то они оба а общем случае, предоставляют вам по блоку адресов. Как их использовать? Разместить их за NAT'ом и скрыть топологию сети или использовать реальные адреса? Первое более просто реализовать и к томуже не будет потерян fast switching. Если рассматривать второе, то устройства, имеющие ip адреса первого провайдера, должны ходить через ISP1, а второго - через ISP2. Если упал канал второго провайдера, то устройства с ip адресами из блока второго провайдера не смогут выйти в Internet. Хорошо бы использовать первый канал, но ip адреса - не те. Надо использовать NAT. Если же выйдет из строя первый, то аналогично занатим и пустим через второго. Так как имеем в сети два блока адресов, то надо применять source-routing. Так как нам нужно определить source ip-адрес пакета, и в зависимости от этого, отправить его либо ISP1 либо ISP два. Если циска старая ли ios ip only, то есть не поддерживает VLAN'ы на интерфейсе будет что-то типа ! interface Ethernet0 ip address 195.0.1.1 255.255.255.0 ip address 195.0.2.1 255.255.255.0 secondary ip nat inside ip policy route-map ISP ! если поддерживает ip plus и выше ! interface Ethernet0/0.1 encapsulation dot1Q 1 ip address 195.0.1.1 255.255.255.0 ip nat inside ip policy route-map ISP1 ! interface Ethernet0/0.2 encapsulation dot1Q 2 ip address 195.0.2.1 255.255.255.0 ip nat inside ip policy route-map ISP ! теперь разберёмся с route-map'ами если вы решили разместить их за NAT'ом и скрыть топологию сети, то эту часть можно пропустить. Надо только обязательно включить fast switching, иначе работать не будет. В случае же когда используются реальные адреса, то если внутренний интерфейс не поддерживает VLAN, пишем следующее ! если это пакет локальный пакет, то пусть циска сама роутит... route-map ISP deny Local match ip address 100 ! если пакет с адресом из первого провайдера и канал up ! то отправляем его первому провайдеру route-map ISP permit 20 match ip address ISP1 set ip next-hop 194.16.0.5 ! если пакет с адресом из второго провайдера и канал up ! то отправляем его второму провайдеру route-map ISP permit 30 match ip address ISP2 set ip next-hop 194.16.0.9 ! если внутренний интерфейс поддерживает VLAN или внутренних интерфейсов два, то ! [skip] ! route-map ISP1 permit 20 match ip address ISP1 set ip next-hop 194.16.0.5 ! [skip] ! route-map ISP2 permit 20 match ip address ISP2 set ip next-hop 194.16.0.9 ! Local - это ACL, который ловит пакеты, source и destination адреса которых из блоков, предоставленных первым или вторым провайдером. ISP1 - это ACL, который ловит пакеты с source-адресами из блока, предоставленного ISP1 ISP2 - это ACL, который ловит пакеты с source-адресами из блока, предоставленного ISP2 ISP - это ACL, который ловит пакеты с source-адресами из блоков, предоставленных ISP1 и ISP2 и так разобрались. Пакеты будут посланы на нужные интерфейсы. Теперь разбираемся с NAT'ом. Для NAT'а также нужно написать route-map. ! route-map ISP2-NAT permit 10 match ip address ISP1 match interface Serial0/1 ! route-map ISP1-NAT permit 10 match ip address ISP2 match interface Serial0/0 ! ! ISP1-pool - это пул ip-адресов, которые будут ! использованы при падении второго канала ip nat inside source route-map ISP1-NAT pool ISP1-pool overload ! ! ISP2-pool - это пул ip-адресов, которые будут ! использованы при падении первого канала ip nat inside source route-map ISP2-NAT pool ISP2-pool overload ! вроде всё Рабочий конфиг смотрите в разделе "конфиги" (http://cisco.far.ru/config.shtml)
Оригинал: http://cisco.far.ru/2ispcfg.shtml Задача состояла в следующем: Есть 3640. Двумя серийниками s2/0 и s2/1 подключена к разным провайдерам. Каждый провайдер предоставил по блоку адресов, первый 10.0.0.0/24 - второй 10.0.1.0/24. Каждый зи них роутит только свою сетку. Нужно обеспечить доступ локальной сети в internet как, чтобы хоcты с адресами из блока первого провайдера ходили через ISP1, а с адресами из блока второго провайдера - через ISP2. При падении одного из каналов хосты должны ходить через работающий канал. Предложено решение: использовать Policy Routing + NAT ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname RouterC ! enable secret 5 ***** ! ip subnet-zero no ip domain-lookup ! cns event-service server ! voice-port 1/0/0 ! voice-port 1/0/1 ! voice-port 1/1/0 ! voice-port 1/1/1 ! interface Loopback0 ip address 10.0.3.1 255.255.255.0 no ip directed-broadcast ! interface Ethernet0/0 ip address 10.0.0.1 255.255.255.0 ip address 10.0.1.1 255.255.255.0 secondary no ip directed-broadcast ip nat inside ip policy route-map ISP ! interface Serial0/0 no ip address no ip directed-broadcast no ip mroute-cache shutdown ! interface Serial0/1 no ip address no ip directed-broadcast shutdown ! interface Serial2/0 ip address 192.168.0.6 255.255.255.252 no ip directed-broadcast ip nat outside ! interface Serial2/1 ip address 192.168.0.10 255.255.255.252 no ip directed-broadcast ip nat outside ! interface Serial2/2 no ip address no ip directed-broadcast shutdown ! interface Serial2/3 no ip address no ip directed-broadcast shutdown ! ip nat pool ISP1-pool 10.0.0.16 10.0.0.31 prefix-length 28 ip nat pool ISP2-pool 10.0.1.16 10.0.1.31 prefix-length 28 ip nat inside source route-map ISP1-NAT pool ISP1-pool overload ip nat inside source route-map ISP2-NAT pool ISP2-pool overload ip classless ip route 0.0.0.0 0.0.0.0 192.168.0.5 ip route 0.0.0.0 0.0.0.0 192.168.0.9 no ip http server ! access-list 1 permit 10.0.0.0 0.0.0.255 access-list 2 permit 10.0.1.0 0.0.0.255 access-list 100 permit ip 10.0.1.0 0.0.0.255 10.0.0.0 0.0.0.255 access-list 100 permit ip 10.0.0.0 0.0.0.255 10.0.1.0 0.0.0.255 route-map ISP1-NAT permit 10 match ip address 2 match interface Serial2/0 ! route-map ISP2-NAT permit 10 match ip address 1 match interface Serial2/1 ! route-map ISP deny 10 match ip address 100 ! route-map ISP permit 20 match ip address 1 set ip next-hop 192.168.0.5 ! route-map ISP permit 30 match ip address 2 set ip next-hop 192.168.0.9 ! snmp-server engineID local 000000090200003094A41BC1 ! line con 0 transport input none line aux 0 no exec transport input all line vty 0 4 exec-timeout 0 0 password ***** login ! end
http://cisco.far.ru/2ispdef.shtml
Задача состояла в следующем: От двух провайдеров по BGP получаем default-route. Анонсим двум провайдерам свою provider independent (PI) сетку 135.10.56.0/24. Каналы не равноценные. Один - 1Mb, второй - 2Mb. Хотелось бы сделать load-balancing 1:2. Данное решение не гарантирует, что будет достигнуто именно это отношение, но оно должно быть близко к 1:2. Балансировка будет per-destination. 10.0.0.1-3 левые адреса и нужны лишь для того, чтобы сделать балансировку 1:2. CEF не обязателен, но желателен. ip cef ! ! interface FastEthernet0/0 ip address 135.10.56.5 255.255.255.0 duplex auto speed auto ! interface Serial0/0 no ip address encapsulation frame-relay ! interface Serial0/0.1 point-to-point ip address 135.10.15.2 255.255.255.252 frame-relay interface-dlci 504 ! interface Serial0/0.2 point-to-point ip address 135.10.25.2 255.255.255.252 frame-relay interface-dlci 506 ! interface BRI0/0 no ip address encapsulation hdlc shutdown ! interface FastEthernet0/1 no ip address shutdown duplex auto speed auto ! interface Serial0/1 no ip address shutdown ! router bgp 5 bgp log-neighbor-changes network 135.10.56.0 mask 255.255.255.0 neighbor 135.10.15.1 remote-as 1 neighbor 135.10.15.1 prefix-list eBGP-OUT out neighbor 135.10.25.1 remote-as 2 neighbor 135.10.25.1 prefix-list eBGP-OUT out ! ip classless ip route 0.0.0.0 0.0.0.0 10.0.0.1 ip route 0.0.0.0 0.0.0.0 10.0.0.2 ip route 0.0.0.0 0.0.0.0 10.0.0.3 ip route 10.0.0.1 255.255.255.255 135.10.15.1 ip route 10.0.0.2 255.255.255.255 135.10.15.1 ip route 10.0.0.3 255.255.255.255 135.10.25.1 ip http server ! ! ip prefix-list eBGP-OUT seq 5 permit 135.10.56.0/24 ! Router#sh ip cef Prefix Next Hop Interface 0.0.0.0/0 135.10.25.1 Serial0/0.2 135.10.15.1 Serial0/0.1 135.10.15.1 Serial0/0.1 Rack05R6#trace 135.10.100.1 Type escape sequence to abort. Tracing the route to 135.10.100.1 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.25.1 16 msec 16 msec 16 msec 3 Rack05R6#trace 135.10.100.2 Type escape sequence to abort. Tracing the route to 135.10.100.2 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.3 Type escape sequence to abort. Tracing the route to 135.10.100.3 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.4 Type escape sequence to abort. Tracing the route to 135.10.100.4 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.5 Type escape sequence to abort. Tracing the route to 135.10.100.5 1 135.10.56.5 4 msec 0 msec 0 msec 2 135.10.25.1 16 msec 16 msec 16 msec 3 Rack05R6#trace 135.10.100.6 Type escape sequence to abort. Tracing the route to 135.10.100.6 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.7 Type escape sequence to abort. Tracing the route to 135.10.100.7 1 135.10.56.5 0 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 17 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.8 Type escape sequence to abort. Tracing the route to 135.10.100.8 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.15.1 16 msec 12 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.9 Type escape sequence to abort. Tracing the route to 135.10.100.9 1 135.10.56.5 0 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H * !H Rack05R6#trace 135.10.100.10 Type escape sequence to abort. Tracing the route to 135.10.100.10 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.11 Type escape sequence to abort. Tracing the route to 135.10.100.11 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.25.1 16 msec 16 msec 16 msec 3 * Rack05R6#trace 135.10.100.12 Type escape sequence to abort. Tracing the route to 135.10.100.12 1 135.10.56.5 4 msec 0 msec 0 msec 2 135.10.25.1 17 msec 16 msec 16 msec 3 * Rack05R6#trace 135.10.100.13 Type escape sequence to abort. Tracing the route to 135.10.100.13 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.14 Type escape sequence to abort. Tracing the route to 135.10.100.14 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.15 Type escape sequence to abort. Tracing the route to 135.10.100.15 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 12 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.16 Type escape sequence to abort. Tracing the route to 135.10.100.16 1 135.10.56.5 4 msec 0 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.17 Type escape sequence to abort. Tracing the route to 135.10.100.17 1 135.10.56.5 0 msec 0 msec 4 msec 2 135.10.25.1 16 msec 16 msec 16 msec 3 Rack05R6#trace 135.10.100.18 Type escape sequence to abort. Tracing the route to 135.10.100.18 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.19 Type escape sequence to abort. Tracing the route to 135.10.100.19 1 135.10.56.5 4 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.100.20 Type escape sequence to abort. Tracing the route to 135.10.100.20 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6# с выключенным cef Rack05R6#trace 135.10.101.1 Type escape sequence to abort. Tracing the route to 135.10.101.1 1 135.10.56.5 0 msec 4 msec 4 msec 2 135.10.25.1 16 msec 16 msec 16 msec 3 Rack05R6#trace 135.10.101.2 Type escape sequence to abort. Tracing the route to 135.10.101.2 1 135.10.56.5 0 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.3 Type escape sequence to abort. Tracing the route to 135.10.101.3 1 135.10.56.5 4 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.4 Type escape sequence to abort. Tracing the route to 135.10.101.4 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.15.1 20 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.5 Type escape sequence to abort. Tracing the route to 135.10.101.5 1 135.10.56.5 0 msec 4 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.6 Type escape sequence to abort. Tracing the route to 135.10.101.6 1 135.10.56.5 4 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.7 Type escape sequence to abort. Tracing the route to 135.10.101.7 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.8 Type escape sequence to abort. Tracing the route to 135.10.101.8 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.25.1 16 msec 13 msec 12 msec 3 Rack05R6#trace 135.10.101.9 Type escape sequence to abort. Tracing the route to 135.10.101.9 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.25.1 16 msec 16 msec 17 msec 3 Rack05R6#trace 135.10.101.10 Type escape sequence to abort. Tracing the route to 135.10.101.10 1 135.10.56.5 0 msec 4 msec 4 msec 2 135.10.25.1 16 msec 16 msec 16 msec 3 Rack05R6#trace 135.10.101.11 Type escape sequence to abort. Tracing the route to 135.10.101.11 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.25.1 12 msec 12 msec 16 msec 3 Rack05R6#trace 135.10.101.12 Type escape sequence to abort. Tracing the route to 135.10.101.12 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.15.1 20 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.13 Type escape sequence to abort. Tracing the route to 135.10.101.13 1 135.10.56.5 0 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.14 Type escape sequence to abort. Tracing the route to 135.10.101.14 1 135.10.56.5 0 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.15 Type escape sequence to abort. Tracing the route to 135.10.101.15 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 12 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.16 Type escape sequence to abort. Tracing the route to 135.10.101.16 1 135.10.56.5 0 msec 4 msec 0 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.17 Type escape sequence to abort. Tracing the route to 135.10.101.17 1 135.10.56.5 0 msec 0 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#trace 135.10.101.18 Type escape sequence to abort. Tracing the route to 135.10.101.18 1 135.10.56.5 4 msec 4 msec 0 msec 2 135.10.25.1 16 msec 12 msec 12 msec 3 Rack05R6#trace 135.10.101.19 Type escape sequence to abort. Tracing the route to 135.10.101.19 1 135.10.56.5 0 msec 4 msec 4 msec 2 135.10.25.1 16 msec 16 msec 16 msec 3 Rack05R6#trace 135.10.101.20 Type escape sequence to abort. Tracing the route to 135.10.101.20 1 135.10.56.5 0 msec 4 msec 4 msec 2 135.10.15.1 16 msec 16 msec 16 msec 3 135.10.15.1 !H Rack05R6#

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, vaden (?), 19:13, 22/08/2013 [ответить]  
  • +/
    насколько я понимаю будет балансировка исходящего трафика, а входящий польется через того прова через которого удаленная АС видит Вашу
     
  • 2, Алексей (??), 11:56, 16/01/2015 [ответить]  
  • +/
    В контексте Вашей статьи не могли бы Вы помочь В данный момент понадобилось нем... текст свёрнут, показать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    MIRhosting
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру