, , .
.
, cisco (g0/0) (f0/0, f0/1). , Pool(ISP1) Pool(ISP2) ( , ). f0/0 f0/1 . (Gate(ISP1) Gate(ISP2) ).
BGP, . : ? ?
.
. ISP1 , , ISP2. : NAT. , , ISP1 Pool(ISP1), ISP2 Pool(ISP2), , . , ISP2, Pool(ISP1), , , , RFC2827, .
, 2 : () .
.
cisco , SLA. , (ftp-connect, tcp-connect) (icmp-jitter, udp-jitter). . Gate(ISPX). , , .
!
ip sla {#}
icmp-echo {ip} [source-interface {int}]
!
!
ip sla schedule {#} start now life forever
!
! (track),
track {#} ip sla {#} reachability
!
!
ip route 0.0.0.0 0.0.0.0 {next-hop} track {#}
: IOS track sla
track {#} rtr {sla#} reachability
, track UP .
, ( 3*10 ) track
DOWN , track
.
:
ip sla 1
icmp-echo Gate(ISP1)
ip sla schedule 1 start now life forever
track 11 ip sla 1 reachability
ip route 0.0.0.0 0.0.0.0 Gate(ISP1) track 11
ISP2 , , .. ( , , , ). .
.
2 : . , . , route-map ( route-map )
! route-map
route-map ISPX permit {#}
! route-map
match interface { }
: interface
interface Match first hop interface of route
.. , , . , , , ! , ip nat :
ip nat inside
ip nat outside
,
ip nat pool PoolX {start-ip(ISPX)} {end-ip(ISPX)}
NAT
ip nat inside source route-map ISPX poolX overload
overload , PAT (Port Address Translation, )
, ( Srv(ISPX) , Srv(LAN).)
ip nat inside source static Srv(ISPX) Srv(LAN) route-map ISPX
____________
UPD : !
ip nat inside source static Srv(LAN) Srv(ISPX) route-map ISPX
____________
, (Srv(ISP1) Srv(ISP2)) .
, :
!
!
int g0/0
ip address [LAN]
ip nat inside
!
int f0/0
ip address Address(ISP1)
ip nat outside
!
int f0/1
ip address Address(ISP2)
ip nat outside
!
!
ip sla 1
icmp-echo Gate(ISP1)
ip sla schedule 1 start now life forever
track 11 ip sla 1 reachability
ip route 0.0.0.0 0.0.0.0 Gate(ISP1) track 11
ip route 0.0.0.0 0.0.0.0 Gate(ISP2) 50
!
! NAT
ip nat pool POOL1 {start-ip(ISP1)} {end-ip(ISP1)}
ip nat pool POOL2 {start-ip(ISP2)} {end-ip(ISP2)}
!
! route-map NATa
route-map ISP1 permit 10
match interface f0/0
!
route-map ISP2 permit 10
match interface f0/1
!
! NATa
ip nat inside source route-map ISP1 POOL1 overload
ip nat inside source route-map ISP2 POOL2 overload
ip nat inside source static Srv(LAN) Srv(ISP1) route-map ISP1
ip nat inside source static Srv(LAN) Srv(ISP2) route-map ISP2
, .
: , . ISP1 . ,
ip route 0.0.0.0 0.0.0.0 Gate(ISP1) track 11
ip route 0.0.0.0 0.0.0.0 Gate(ISP2) track 22
NAT . route-map . , ? g0/0 route-map.
! . ,
! ?
ip access-list extended ACLISP1
permit { ISP1}
!
ip access-list extended ACLISP2
permit { ISP2}
!
route-map STRELKA 10
match ip address ACLISP1
set ip next-hop {GateISP1}
route-map STRELKA 20
match ip address ACLISP2
set ip next-hop {GateISP2}
!
int g0/0
ip policy route-map STRELKA
, ACLISP1, , , . route-map track
set ip next-hop verify-reachability {GateISPX} {sequence#} track {track#}
sequence# 1 65535. next-hop , .
, route-map, .
: , route-map . , , Srv(ISP1) , . . , .
, , .
f0/0 Srv(ISP1). Srv(LAN) . NAT Srv(LAN) Srv(ISP1). , : ? , Srv(LAN) Srv(ISP1). , . . , , , : . , .. NATa (outside NAT) (Port Address Translation), . , . route-map
ip access-list extended FORISPX
permit ip host Srv(LAN) OUTPOOLX
:
!
ip nat pool OUTPOOL1 {start-ip-1} {end-ip-1}
ip nat pool OUTPOOL2 {start-ip-2} {end-ip-2}
!
! outside NAT
ip access-list extended OUTNAT1
permit ip any host Srv(ISP1)
ip access-list extended OUTNAT2
permit ip any host Srv(ISP2)
!
!
ip nat outside source list OUTNAT1 pool OUTPOOL1
ip nat outside source list OUTNAT2 pool OUTPOOL2
!
! route-map
route-map ISP1 permit 10
match interface f0/0
match ip address FORISP1
!
route-map ISP2 permit 10
match interface f0/1
match ip address FORISP2
, , , ( : , , VPN ). : , , ..
, , NAT.
2 -, . , .
.
: 2 . , . , .. . route-map STRELKA. : , , , .
: VPN . VPN cisco, .