Cisco NAT, Load Balancing, Policy Routing, Failover – част 3

Cisco NAT, Load Balancing, Policy Routing, Failover – част 3

производител: cisco

Тази статия е продължение на:
NAT Cisco router с един или два провайдера на Интернет част 1 и част 2

cisco1811-2

Cisco Load Balancing

Терминът Load Balancing представлява функционалностa на един рутер, който препраща пакети през два или няколко маршрута по подразбиране default gateway в layer 3 мрежов слой.

Cisco IOS софтуера основно поддържа два режима на load balancing: На база дестинация (per-destination), или за всеки пакет (per-packet). Тук ще обсъдим load balancing per-destination като по надеждно и ефективно решение.

CEF Load-Balancing

Cisco Express Forwarding представлява информация за комбинацията между източник и дестинация на пакети. CEF позволява да се оптимизират ресурсите с преноса на данни по множество маршрути.

Per-Destination Load Balancing

Per-destination load balancing позволява на рутера да използва множетсво маршрути споделяйки натоварването между много източници и дестинации. Пакетите от един определен източник към определена дестинация са гарантирани дори ако има други налични маршрути на разположение. Пакетите от един определен източник към две различни дестинации вероятно ще поемат по различни маршрути ако има налични такива.

Per-destination load balancing се активира по подразбиране ако разрешите Cisco Express Forwarding (CEF). За да използвате per-destination load balancing няма нужда да изпълнявате други команди освен ip cef в конфигурационен режим.

Ако използвате per-destination load balancing, ви се гарантира, че пакети към определен хост ще пристигнат винаги подредени и, че всички пакети, предназначени за определен хост ще преминат през един и същ маршрут.

Cisco Express Forwarding (CEF) е съвремена layer 3 IP технология за маршрутизация. CEF оптимизира мрежoвата производителност в мрежи с големи натоварвания и множество връзки. Не е подходяща за тесни канали тъй като не може да гарантира равни порции пакети между интерфейсите, в случай, че се повиши трафика към определена дестинация ще се препълни канала и съответно ще се влоши свързаноста.

Топология на мрежата

cisco load-balancing

Конфигурация

!
ip cef
!
ip dhcp pool pool1
   network 192.168.10.0 255.255.255.0
   default-router 192.168.10.1 
   dns-server 208.67.222.222 208.67.220.220
!
ip name-server 208.67.222.222
ip name-server 208.67.220.220         
!         
track 100 rtr 100 reachability
 delay down 10 up 20
!         
track 200 rtr 200 reachability
 delay down 10 up 20
!         
interface FastEthernet0
 description GCN
 ip address 10.125.3.2 255.255.255.0
 ip nat outside
 ip virtual-reassembly
 ip policy route-map GCN
 duplex auto
 speed auto
!         
interface FastEthernet1
 description MTEL
 ip address 85.118.95.35 255.255.255.224
 no ip proxy-arp
 ip nat outside
 ip virtual-reassembly
 ip policy route-map MTEL
 duplex auto
 speed auto
!         
interface Vlan10
 description LAN
 ip address 192.168.10.1 255.255.255.0
 no ip proxy-arp
 ip nat inside
 ip virtual-reassembly
 ip tcp adjust-mss 1452
!              
ip route 0.0.0.0 0.0.0.0 85.118.95.33 track 100
ip route 0.0.0.0 0.0.0.0 10.125.3.1 track 200
ip route 8.8.4.4 255.255.255.255 85.118.95.33
ip route 8.8.8.8 255.255.255.255 10.125.3.1
!         
ip nat inside source route-map GCN interface FastEthernet0 overload
ip nat inside source route-map MTEL interface FastEthernet1 overload
!         
ip sla 100
 icmp-echo 8.8.4.4 source-interface FastEthernet1
 timeout 500
 frequency 10
ip sla schedule 100 life forever start-time now
ip sla 200
 icmp-echo 8.8.8.8 source-interface FastEthernet0
 timeout 500
 frequency 10
ip sla schedule 200 life forever start-time now
!
access-list 1 permit 192.168.10.0 0.0.0.255    
!         
route-map MTEL permit 10
 match ip address 1
 match interface FastEthernet1
 set ip next-hop 85.118.95.33
!         
route-map GCN permit 10
 match ip address 1
 match interface FastEthernet0
 set ip next-hop 10.125.3.1
!

no ip proxy-arp

Трябва да се обърне специално внимание на no ip proxy-arp в горната конфигурация на interface часта. Задължително е когато правим load balancing или policy local правила да се опише на WAN порта, че не искаме proxy-arp защото в противен случай може да очаквате изненади от доставчика си на Интернет сигнализирайки му неговия Spanning Tree Protocol

Състояние на маршрутите

Важно е да обърнем внимание на реда universal per-destination load sharing algorithm

cisco#show ip cef detail
IP CEF with switching (Table Version 58), flags=0x0
  30 routes, 0 reresolve, 0 unresolved (0 old, 0 new), peak 4
  14 instant recursive resolutions, 0 used background process
  30 leaves, 21 nodes, 26456 bytes, 61 inserts, 31 invalidations
  1 load sharing elements, 376 bytes, 1 references
  universal per-destination load sharing algorithm, id 6593AC3E
  3(0) CEF resets, 5 revisions of existing leaves
  Resolution Timer: Exponential (currently 1s, peak 1s)
  8 in-place/0 aborted modifications
  refcounts:  5724 leaf, 5632 node
 
  Table epoch: 0 (30 entries at this epoch)
 
Adjacency Table has 11 adjacencies
0.0.0.0/0, version 45, epoch 0, per-destination sharing
0 packets, 0 bytes
  via 85.118.95.33, 0 dependencies, recursive
    traffic share 1
    next hop 85.118.95.33, FastEthernet1 via 85.118.95.33/32
    valid adjacency
  via 10.125.3.1, 0 dependencies, recursive
    traffic share 1
    next hop 10.125.3.1, FastEthernet0 via 10.125.3.1/32
    valid adjacency

Състояние на интерфейсите

Тук е събрана информацията само която ни интересува

cisco#show ip interface fastEthernet 0 
FastEthernet0 is up, line protocol is up
  [...]
  Internet address is 10.125.3.2/24
  Broadcast address is 255.255.255.255
  IP CEF switching is enabled
  IP CEF Feature Fast switching turbo vector
  IP route-cache flags are Fast, CEF
  Policy routing is enabled, using route map GCN
  Network address translation is enabled, interface in domain outside
 [...]
cisco#show ip interface fastEthernet 1 
FastEthernet1 is up, line protocol is up
  [...]
  Internet address is 85.118.95.35/27
  Broadcast address is 255.255.255.255
  IP CEF switching is enabled
  IP CEF Feature Fast switching turbo vector
  IP route-cache flags are Fast, CEF
  Policy routing is enabled, using route map MTEL
  Network address translation is enabled, interface in domain outside
  [...]

Тест към различни дестинации

Изпълнявайки traceroute от клиент зад рутера към различни дестинации забелязвам, че пътя до тях винаги е един и същ

cisco

cisco

Графика на натоварването

cisco-cacti

Policy Base Routing с Failover

Load balancing е хубаво нещо но в реални условия понякога се налага той да се изключи за определен потребител или мрежа, тоест да ползва само единия доставчик на Интернет. Причини за това да имаш изходящ трафик винаги от един и същи адрес има много. В същото време този потребител или мрежа безусловно трябва да участва във fajlover-a за да се гарантира тяхната свързаност при отпадане на маршрута по подразбиране. Как може да стане това като запазим цялоста на конфигурацията до тук. Създавам нов route-map PBR, с ip next-hop същите маршрути по подразбиране с опцията verify-availability метрика и track. Съответния route-map го закчвам с ip policy зебележете вече в LAN интерфейса VLAN 10.

!
access-list 110 permit ip host 192.168.10.99 any
access-list 120 permit ip host 192.168.10.98 any
!
route-map PBR permit 10
 match ip address 110
 set ip next-hop verify-availability 85.118.95.33 1 track 100
 set ip next-hop verify-availability 10.125.3.1 2 track 200
!
route-map PBR permit 20
 match ip address 120
 set ip next-hop verify-availability 85.118.95.33 2 track 100
 set ip next-hop verify-availability 10.125.3.1 1 track 200
!
interface Vlan10
 description LAN
 ip address 192.168.10.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly
 ip tcp adjust-mss 1452
 ip policy route-map PBR
!

Естествено трябва да проверим нашите нови маршрутни таблици какво ще ни покажат. Всичко което е в access-lists 110 ще има маршрут по подразбиране 85.118.95.33 а при отпадането му 10.125.3.1. Всичко което е в access-lists 120 ще има маршрут по подразбиране 10.125.3.1 а при отпадането му 85.118.95.33

cisco#show route-map PBR
route-map PBR, permit, sequence 10
  Match clauses:
    ip address (access-lists): 110 
  Set clauses:
    ip next-hop verify-availability 85.118.95.33 1 track 100  [up]
    ip next-hop verify-availability 10.125.3.1 2 track 200  [up]
  Policy routing matches: 951 packets, 141746 bytes
route-map PBR, permit, sequence 20
  Match clauses:
    ip address (access-lists): 120 
  Set clauses:
    ip next-hop verify-availability 10.125.3.1 1 track 200  [up]
    ip next-hop verify-availability 85.118.95.33 2 track 100  [up]
  Policy routing matches: 7163 packets, 1393938 bytes

Отново ако направим тест от потребителя с ип адрес от address-lista-та 110 който е 192.168.10.99 ще забележим, че дестинацията винаги е една и съща.

mtr1

mtr2

mtr3

policy routing from outgoing interface

Тъй като load balancing с ip cef сам избира маршрутите възможно е в някои ситуации един от WAN адресите да не е достъпен от Интернет защото ние сме попаднали на маршрут който е асоцииран към другия WAN. Това е много неприятно когато се изисква отдалечен достъп до самия рутер от глобалната мрежа със snmp, telnet, ssh или дори VPN. Разбира се има решение на този проблем като направим още един route-map само на адреса на избрания WAN.

!
ip access-list extended MTEL-OUT
 permit ip host 85.118.95.35 any
!
ip local policy route-map MTEL-OUT-MAP
!
route-map MTEL-OUT-MAP permit 10
 match ip address MTEL-OUT
 set ip next-hop 85.118.95.33
 set interface FastEthernet1
!

Адреса на рутера 85.118.95.35 винаги ще е достъпен от Интернет без това да пречи на load balancing но нека все пак да проверим като изпълним един traceroute към host 87.121.124.6 от самият рутер

ciscotrace

И от същия host 87.121.124.6 изпълним един traceroute към нашия WAN с адрес 85.118.95.35

mtr2

От теста по горе е видно, че маршрутите са различни и route-map MTEL-OUT-MAP не влияе на маршрутната таблица на рутера като същевременно ние винаги имаме достъп до него.

Cisco NAT, Load Balancing, Policy Routing, Failover – част 3

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.