Cisco PBR überprüft die Verfügbarkeit mit Schnittstelle anstelle des nächsten Hops

7

Wir haben eine Reihe von Cisco 891-Routern, die mit zwei WAN-Verbindungen konfiguriert sind. Auf allen diesen Routern wird Cisco IOS 15.x ausgeführt. In einigen Fällen verwenden wir richtlinienbasiertes Routing, um bestimmten Datenverkehr über eine Verbindung zu erzwingen.

Ich verwende PBR häufig bei Dual-WAN-Setups, da der Kunde im Allgemeinen möchte, dass bestimmter Datenverkehr über eine bestimmte Verbindung geleitet wird. Beispielsweise muss häufig Echtzeitverkehr wie VOIP über eine Verbindung und dann das allgemeine Internet über eine andere Verbindung übertragen werden. In der Regel wird PBR verwendet, um den Verkehr nach Quell- / Ziel-IP, VLAN oder was auch immer zu leiten .

Offensichtlich ist es am besten, immer noch einen beeinträchtigten Dienst anzubieten, wenn die dedizierte Sprachverbindung offline geschaltet werden soll. Ich neige dazu, set next-hop verify-availabilitymit einem IP-SLA-Tracking-Objekt zu arbeiten, damit der Datenverkehr bei Bedarf immer noch auf das andere WAN umgeschaltet werden kann.

Meine Frage ist: Ist es überhaupt möglich, dieselbe Konfiguration (mit einem Tracking-Objekt zur Überprüfung der Verfügbarkeit) durchzuführen, wenn PBR zum Festlegen einer Schnittstelle anstelle eines nächsten Hops verwendet wird?

Dafür gibt es mehrere Gründe:

  • Wir verhandeln IP- und Routing-Einstellungen in allen unseren PPPoE Dialer-Schnittstellen automatisch. Einer unserer ISPs von Drittanbietern hat die Standardroute für alle DSL-Verbindungen geändert. Dies bedeutete, dass es nicht mehr funktionierte, da ich den nächsten Hop in der PBR-Konfiguration fest codiert hatte. Glücklicherweise ist die PBR auf das andere WAN umgestiegen, aber auf jeden Fall habe ich versucht, die Abhängigkeit von der Hardcodierung der IP zu vermeiden, wo immer ich kann, ähnlich wie bei den Standardrouten:ip route 0.0.0.0 0.0.0.0 Dialer0 10 track 1

  • Heute wurde ich gebeten, Dual-WANs auf einem neuen CPE zu konfigurieren, und wollte PBR verwenden, um unseren VOIP-Verkehr über eine dedizierte Leitung zu erzwingen und bei Bedarf auf die Internetverbindung zurückzugreifen. Der Haken ist, dass dieser Kunde zwei DSL-Leitungen vom selben ISP verwendet, sodass der nächste Hop in beiden Fällen der gleiche ist. Als nächstes werde ich natürlich stattdessen die Schnittstelle einstellen, aber dies bedeutet dann, dass ich meine Verifizierungsverfügbarkeit verliere.

Ich hoffe, jemand weiß, welche PBR-Konfiguration ich verwenden kann, um dies beim Einstellen von Schnittstellen zu erreichen.

Als Referenz, hier ist, wie ich es derzeit mache, mit next-hop:

BEARBEITEN: Enthält ein detaillierteres Beispiel.

track 1 ip sla 1
 delay down 20 up 10
!
track 2 ip sla 2
 delay down 20 up 10
!

interface FastEthernet8
 description PPPoE ADSL2+ VOIP
 no ip address
 ip nat outside
 ip virtual-reassembly in
 duplex auto
 speed auto
 pppoe enable group global
 pppoe-client dial-pool-number 1

interface GigabitEthernet0
 description PPPoE ADSL2+ All Internet Traffic
 no ip address
 ip nat outside
 ip virtual-reassembly in
 duplex auto
 speed auto
 pppoe enable group global
 pppoe-client dial-pool-number 2

interface Vlan1
 description $ETH_LAN$
 ip address 192.168.1.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
 ip tcp adjust-mss 1452
 ip policy route-map PBR-LAN

interface Dialer0
 description VOIP ADSL2+ Dialer Interface
 bandwidth 1024
 bandwidth receive 20480
 ip address negotiated
 no ip redirects
 no ip proxy-arp
 ip mtu 1492
 ip nat outside
 ip virtual-reassembly in
 encapsulation ppp
 ip tcp adjust-mss 1452
 dialer pool 1
 dialer-group 1
 ppp authentication chap pap callin
 ppp chap hostname [email protected]
 ppp chap password 0 yyyy
 ppp pap sent-username [email protected] password 0 yyyy
 no cdp enable

interface Dialer1
 description Internet ADSL2+ Dialer Interface
 bandwidth 1024
 bandwidth receive 20480
 ip address negotiated
 no ip redirects
 no ip proxy-arp
 ip mtu 1492
 ip nat outside
 ip virtual-reassembly in
 encapsulation ppp
 ip tcp adjust-mss 1452
 dialer pool 2
 dialer-group 2
 ppp authentication chap pap callin
 ppp chap hostname [email protected]
 ppp chap password 0 aaa
 ppp pap sent-username [email protected] password 0 aaa
 no cdp enable

ip local policy route-map PBR-LOCAL
ip nat inside source route-map DSL2-DATA-NAT interface Dialer1 overload
ip nat inside source route-map DSL2-VOIP-NAT interface Dialer0 overload
ip route 0.0.0.0 0.0.0.0 Dialer0 10 track 1
ip route 0.0.0.0 0.0.0.0 Dialer1 track 2


ip access-list extended NAT-POOL
 remark Be sure to exclude remote LANs in this ACL
 deny   ip 192.168.1.0 0.0.0.255 192.168.7.0 0.0.0.255
 permit ip 192.168.1.0 0.0.0.255 any
ip access-list extended PBR-DSL-DATA
 remark Match local traffic with DSL DATA src IP
 permit ip host 89.123.45.67 any
ip access-list extended PBR-DSL-VOIP
 remark Match local traffic with DSL VOIP src IP
 permit ip host 89.123.45.70 any
ip access-list extended VOIP-PBX
 remark Match traffic to/from our VOIP PBX so it can use dedicated link.
 permit ip host 89.123.45.10 any
 permit ip any host 89.123.45.10

! For the IP SLAs I simply ping the gateway of the circuit
! In this case, we have two DSL links from the same ISP
! So I simply ping the same gateway for both, with different source interfaces.
ip sla 1
 icmp-echo 89.123.45.1 source-interface Dialer0
 threshold 4000
 frequency 5
ip sla schedule 1 life forever start-time now
ip sla 2
 icmp-echo 89.123.45.1 source-interface Dialer1
 threshold 4000
 frequency 5
ip sla schedule 2 life forever start-time now

! These PBR-LOCAL route-maps are used for traffic coming from
! The router itself. (eg. ICMP, IPSec) Allows it to correctly
! Respond on both links, no matter which is the primary/active link.
route-map PBR-LOCAL permit 10
 description Route traffic with src IP VOIP DSL
 match ip address PBR-DSL-VOIP
 set interface Dialer0
!
route-map PBR-LOCAL permit 20
 description Route traffic with src IP DATA DSL
 match ip address PBR-DSL-DATA
 set interface Dialer1
!

route-map PBR-LAN permit 1
 description This route map is to match all VOIP traffic and force it over the correct ADSL line
 match ip address VOIP-PBX
 ! Using next-hop is how I would typically do this sort of thing.
 ! However - in this case since both links are from the same ISP, the next-hop is the same in both cases.
 ! So, although I haven't tried it, I am sure the router would have no way to know exactly which link I mean.
 !
 ! In this example, I've used 89.123.45.1 as the gateway IP for both DSL links.
 !
 !
 ! Try using VOIP Link
 ! set ip next-hop verify-availability 89.123.45.1 1 track 1
 ! If that fails, try the DATA link
 ! set ip next-hop verify-availability 89.123.45.1 2 track 2
 !
 !
 ! Because of this, my work-around has been to simply specify the Dialer interface
 ! of the link I want to use. But this also means no failover to the data link.
 ! Hope this makes sense.
 !
 !
 set interface Dialer0


route-map DSL2-VOIP-NAT permit 10
 description This route match is to match NAT traffic for the VOIP ADSL2+ Connection
 match ip address NAT-POOL
 match interface Dialer0
!
route-map DSL2-DATA-NAT permit 10
 description This route match is to match NAT traffic for the DATA ADSL2+ Connection
 match ip address NAT-POOL
 match interface Dialer1
!
Geekman
quelle
Helfen Sie mir, die genaue Notwendigkeit von PBR zu verstehen ... ist es eine Route basierend auf der Quell-IP auszuwählen oder nur als Werkzeug, um sicherzustellen, dass der ADSL-Anbieter verfügbar ist?
Mike Pennington
@ Mike Ich verwende es zum Weiterleiten des Datenverkehrs (allerdings nicht immer nach Quell-IP). In den meisten Fällen habe ich einen bestimmten Verkehrstyp (z. B. VOIP), den ich hauptsächlich über eine bestimmte Verbindung weiterleiten möchte, aber ein Failover auf die andere Verbindung, wenn die primäre Verbindung offline geschaltet wird. Hoffe das ist klarer.
Geekman
@Mike Der Frage wurden einige Details zur Verwendung von Züchterrechten hinzugefügt.
Geekman
Ich bin neugierig, verwenden Sie zwei ADSL-Links mit Dialer-Schnittstellen? Wenn nicht, was verwenden Sie für den anderen Link? Ist der Dialer immer aktiv oder lösen Sie ihn aus dem Verkehr aus?
Mike Pennington
@ MikePennington Es variiert, aber ja, es gibt normalerweise mindestens eine DSL-Verbindung. Aber selbst für den Fall, dass der Client Fibre / EFM verwendet, kann ich mich nicht genau darauf verlassen, dass die Schnittstelle ausfällt, da die NTU die Schnittstelle möglicherweise in Ordnung lässt, aber wir möglicherweise den Datenverkehr nicht weiterleiten. Ich werde in Kürze eine vollständigere Konfiguration veröffentlichen.
Geekman

Antworten:

3

Wie im Chat erläutert, ist der PBX / SIP-Verkehr in Ihrem Fall für eine IP-Host-Route eindeutig. Daher können Sie PBR entfernen und Tracking-Objekte auf überlappenden statischen Routen verwenden, die unterschiedliche dialerSchnittstellen verwenden, um das Problem zu lösen.

ip route 89.123.45.10 255.255.255.255 Dial0 track 1 1 name PBX_Pri
ip route 89.123.45.10 255.255.255.255 Dial1 track 2 10 name PBX_Bak
ip route 0.0.0.0 0.0.0.0 Dial 1 track 2 1 name Data_Pri
ip route 0.0.0.0 0.0.0.0 Dial 0 track 1 10 name Data_Bak
Mike Pennington
quelle