Добрый день, уважаемые коллеги.Задача следующая:
Имеются удаленные площадки, на каждой из которых по 2 интернет-канала от разных провайдеров. Выделены статические белые ip-адреса.
Необходимо обеспечить связь этих твух площадок между собой (VPN). Естественно так что б при падении даже по провайдеру с каждой стороны связь сохранялась.Для реализации задачи мной была выбрана схема с 4мя GRE туннелями и eigrp маршрутизацией на них.
Оборудование Cisco 2901 ISRg2, IOS 15.1.1T с каждой стороны.
В шасси дополнительно установлены модули HWIC-4ESW.Получается, однако, странная вещь, после выдергивания провода на одной площадке, маршруты перестраиваются и все хорошо. А вот поле втыкания его обратно, маршрут снова перестраивается , в таблице он есть, а связь пропадает! Появляется она либо после выдергивания другого канала (маршрут остается) либо после выдачи команды clear eigrp adress-family ipv4 topology!
Фрагмент конфига:
на второй площадке он практически идентичен.version 15.1
service timestamps debug datetime msec localtime show-timezone
service timestamps log datetime msec localtime show-timezone
service password-encryption
!
hostname gw-Site1
!
boot-start-marker
boot system flash c2900-universalk9-mz.SPA.151-1.T.bin
boot-end-marker
!
logging buffered 51200aaa new-model
!
!
!
no ipv6 cef
ip source-route
ip cef
!
!
ip dhcp smart-relay
!
!
no ip domain lookup
ip domain name kpd
ip name-server 192.168.10.1
ip name-server 192.168.10.2
ip dhcp-server 192.168.10.1
ip address-pool local
multilink bundle-name authenticated
!
!
interface Tunnel1
description Prov1-Prov3
ip address 192.168.101.13 255.255.255.252
tunnel source Prov1_ip
tunnel destination Prov3_ip
!
interface Tunnel2
description Prov2-Prov3
ip address 192.168.101.17 255.255.255.252
tunnel source Prov2_ip
tunnel destination Prov3_ip
!
interface Tunnel3
description Prov1-Prov4
ip address 192.168.101.21 255.255.255.252
tunnel source Prov1_ip
tunnel destination Prov4_ip
!
interface Tunnel4
description Prov2-Prov4
bandwidth inherit
ip address 192.168.101.25 255.255.255.252
tunnel source Prov2_ip
tunnel destination Prov4_ip
!
interface GigabitEthernet0/0
ip address 192.168.10.119 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto
!
interface GigabitEthernet0/1
no ip address
duplex auto
speed auto
!
interface FastEthernet0/0/0
switchport access vlan 110
!
interface FastEthernet0/0/1
switchport access vlan 111
duplex half
speed 100
!
interface FastEthernet0/0/2
switchport access vlan 111
shutdown
duplex half
speed 100
!
interface FastEthernet0/0/3
!interface Vlan1
no ip address
!
interface Vlan11
no ip address
!
interface Vlan110
bandwidth inherit
ip address Prov1_ip 255.255.255.248
ip nat outside
ip virtual-reassembly
!
interface Vlan111
ip address Prov2_ip 255.255.255.0
ip nat outside
ip virtual-reassembly
!
interface Vlan119
no ip address
!
!
router eigrp 1
distribute-list e-net in
maximum-paths 1
network 192.168.101.0
redistribute connected
auto-summary
!
ip local policy route-map GRE_force_route
ip forward-protocol nd
!
no ip http server
ip http access-class 23
ip http authentication local
ip http secure-server
ip http timeout-policy idle 60 life 86400 requests 10000
!ip nat inside source route-map toProv1 interface Vlan110 overload
ip nat inside source route-map toProv2 interface Vlan111 overload
ip route 0.0.0.0 0.0.0.0 Prov1_GW_ip
ip route 0.0.0.0 0.0.0.0 Prov2_GW_ip
ip route 4.2.2.1 255.255.255.255 Prov1_GW_ip permanent
ip route 4.2.2.2 255.255.255.255 Prov2_GW_ip permanentip access-list standard e-net
permit 192.168.0.0 0.0.0.255ip access-list standard ipProv1
permit Prov1_ip
ip access-list standard ipProv2
permit Prov2_ip
!ip access-list extended NAT_ALLOWED
permit ip 192.168.10.0 0.0.0.255 any
ip access-list extended NO_BALANCE
permit tcp 192.168.10.0 0.0.0.255 any eq 443ip access-list extended forProv1
permit ip host 192.168.10.12 10.0.0.0 0.127.255.255
permit ip host 192.168.10.213 10.0.0.0 0.127.255.255
permit ip 192.168.10.0 0.0.0.255 any
ip access-list extended forProv2
permit ip host 192.168.10.12 10.128.0.0 0.127.255.255
permit ip host 192.168.10.213 10.0.0.0 0.127.255.255ip access-list extended greProv1
permit gre host Prov1_ip any
ip access-list extended greProv2
permit gre host Prov2_ip anyip access-list extended to4221
permit icmp any host 4.2.2.1
ip access-list extended to4222
permit icmp any host 4.2.2.2
!
route-map toProv2 permit 10
match ip address forProv2 NAT_ALLOWED
match interface Vlan111
!
route-map toProv1 permit 10
match ip address forProv1
match interface Vlan110
!
route-map GRE_force_route permit 10
match ip address to4221 greProv1 ipProv1
set ip next-hop 195.68.168.73
set interface Vlan110
!
route-map GRE_force_route permit 20
match ip address to4222 greProv2 ipProv2
set ip next-hop 79.164.12.1
set interface Vlan111
!
!
endБуду рад любой помощи, может быть я вообще неверный путь выбрал?..
>[оверквотинг удален]
> ip nat outside
> ip virtual-reassembly
>!
>interface Vlan119
> no ip address
>!
>!
>router eigrp 1
> distribute-list e-net in
> maximum-paths 1^^^^^^^^^^^^^ без этого как будет работать?
>[оверквотинг удален]
>route-map GRE_force_route permit 20
> match ip address to4222 greProv2 ipProv2
> set ip next-hop 79.164.12.1
> set interface Vlan111
>!
>!
>end
>
>[оверквотинг удален]
>>route-map GRE_force_route permit 20
>> match ip address to4222 greProv2 ipProv2
>> set ip next-hop 79.164.12.1
>> set interface Vlan111
>>!
>>!
>>end
>>
>>
>>Буду рад любой помощи, может быть я вообще неверный путь выбрал?..без maximum-paths 1 работает так же.
>[оверквотинг удален]
>>> set ip next-hop 79.164.12.1
>>> set interface Vlan111
>>>!
>>>!
>>>end
>>>
>>>
>>>Буду рад любой помощи, может быть я вообще неверный путь выбрал?..
>
>без maximum-paths 1 работает так же.Без этого у вас должны быть 4 равноправных маршрута - странно что ничего не меняется.
Играйтесь bandwich-ем на туннелях или поднимите ещё один eigrp с обоих сторон, чтобы как-то
разнести маршруты.
>[оверквотинг удален]
>>>>
>>>>Буду рад любой помощи, может быть я вообще неверный путь выбрал?..
>>
>>без maximum-paths 1 работает так же.
>
>Без этого у вас должны быть 4 равноправных маршрута - странно что
>ничего не меняется.
>Играйтесь bandwich-ем на туннелях или поднимите ещё один eigrp с обоих сторон,
>чтобы как-то
>разнести маршруты.Еще один eigrp? а смысл?..
с bandwithem играл, фишка в чем по sh ip rou маршруты есть и они те какие надо, но пакеты по ним не ходят!
>[оверквотинг удален]
>>>>
>>>>Буду рад любой помощи, может быть я вообще неверный путь выбрал?..
>>
>>без maximum-paths 1 работает так же.
>
>Без этого у вас должны быть 4 равноправных маршрута - странно что
>ничего не меняется.
>Играйтесь bandwich-ем на туннелях или поднимите ещё один eigrp с обоих сторон,
>чтобы как-то
>разнести маршруты.Я может быть неправильно выразился, равноправные маршруты появляются но траффик все равно не ходит.
>[оверквотинг удален]
>>>без maximum-paths 1 работает так же.
>>
>>Без этого у вас должны быть 4 равноправных маршрута - странно что
>>ничего не меняется.
>>Играйтесь bandwich-ем на туннелях или поднимите ещё один eigrp с обоих сторон,
>>чтобы как-то
>>разнести маршруты.
>
>Я может быть неправильно выразился, равноправные маршруты появляются но траффик все равно
>не ходит.как узнали что трафик не ходит?
Блинский папа....
Ну не будет ЭТО работать...
Патамушто - БАГ!!!Разубедите... Пиво с меня.... ;)
Будет работать в варианте:
local_primary_ISP-remote_рrimary_ISP
local_secondary_ISP-remote_secondary_ISPC перекрестным статиком "secondary" via "secondary"
Либо с дополнительными(secondary) адресами, и, опять же, статическим роутингом.
http://www.opennet.me/openforum/vsluhforumID6/18199.html
Был еще мой же пост по поводу подобного решения на DMVPM, где автор эмулирует сеть на Динамипсе и у него все получается.. А вот - фик...
>Блинский папа....
>Ну не будет ЭТО работать...
>Патамушто - БАГ!!!
>
>Разубедите... Пиво с меня.... ;)
>Вот! Я ж помню что что-то такое проплывало в моем мозгу когда-то.
Именно о том что GRE не rout-map'ится.Спасибо, я свою задачу решил хоть и некрасиво но по крайней мере работает и ПОСТАВЛЕННУЮ задачу выполняет.
А именно, убрал нафиг роутмап ГРЕ, и прописал статические дефолты через обоих провов.
причем эти статики трекают ip sla в некое место глубоко в тырнете. если не трекается - маршрут убирается.
Человече!!! Спасибище!
Твой пост навел на решение :)http://www.cisco.com/en/US/docs/ios/12_4t/12_4t11/ht_trsel.h...
tunnel route-viaTo specify the outgoing interface of the tunnel transport, use the tunnel route-via command in interface configuration mode. To disable the source address selection, use the no form of this command.
tunnel route-via interface-type interface-number {mandatory | preferred}
no tunnel route-via
Syntax Descriptioninterface-type
Indicates the type of interface.
interface-number
Indicates the interface number of the interface configured as the tunnel transport.
mandatory
Drops the traffic if the route is not available.
preferred
If the route is not available, forwards the traffic using any available route.
Command Default
This command is disabled by default. The tunnel transport cannot be routed using a subset of the routing table.
Command ModesInterface configuration
Command History
Release
Modification12.4(11)T
This command was introduced.
Usage Guidelines
If the tunnel route-via interface-type interface-number mandatory command is configured, and there is no route to the tunnel destination using that interface, a point-to-point tunnel interface will go into a down state.
ExamplesThe following example shows the options that are available to configure the interfaces of the tunnel transport and route the tunnel transport using a subset of the routing table:
Router> enable
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface tunnel 0
Router(config-if)# tunnel route-via ethernet0 mandatory
у себя я сделал так:
interface Tunnel0
ip address 172.16.10.2 255.255.255.252
tunnel source prov1_ip1
tunnel destination prov3_ip1
!
!
interface Tunnel1
ip address 172.16.11.2 255.255.255.252
tunnel source prov1_ip2
tunnel destination prov4_ip1
!
!
interface Tunnel2
ip address 172.16.12.2 255.255.255.252
tunnel source prov2_ip1
tunnel destination prov3_ip2
!
!
interface Tunnel3
ip address 172.16.13.2 255.255.255.252
tunnel source prov2_ip2
tunnel destination prov4_ip2
!
!....
!
interface GigabitEthernet0/0.1
encapsulation dot1Q 1
ip address prov1_ip1 255.255.255.240 secondary
ip address prov1_ip2 255.255.255.240
!
interface GigabitEthernet0/0.1
encapsulation dot1Q 1
ip address prov2_ip1 255.255.255.248 secondary
ip address prov2_ip2 255.255.255.248...
ip route prov3_ip1 255.255.255.255 default_prov1
ip route prov4_ip1 255.255.255.255 default_prov1
ip route prov3_ip2 255.255.255.255 default_prov2
ip route prov4_ip2 255.255.255.255 default_prov2НА удаленной площадке все зеркально.
Ко всему этому EIGRP, и все красиво работает. при вытыканиях все поднимается/переключается.
И вот хочется допилить два ньюанса:
1. время переключения примерно 15-20 секунд, хочется быстрее. Знаю про IP SLA и ICMP Jitter со статическими роутами. и тоже все должно работать как надо, НО! есть второй ньюанс...
2. получется на удаленную площадку есть 4 маршрута, в сети интернет всегда есть потери трафика, вот и задача, как с помощью SLA вибирать лучший маршрут и его использовать?