2015-04-23 01:32 PM 2019-03-22 07:06 AM 更新
PfR は様々なモニタリング、ポリシー条件からベストパス / OOP を導き出しますが、実際の経路制御はあくまで既存のルーティング(ベースルーティング)の動作に依存します。
本ドキュメントでは PfR により選択されたパスが、ベースルーティングとどのように連動するか、いくつかのサンプルを用いて解説します。
<PfRの動作概要と確認方法の解説> で使用した構成例では、一つの BR に複数の external 回線が存在する構成において、PfR が選択したベストパスに対する static route を自動で生成することで ルーティングを操作していました。この動作は一番シンプルなルーティングですが、
のような状況では、より複雑な経路制御を必要とします。
以下4つの項目について、実際の動作を解説します。
1. Dynamic PBR によるアプリケーショントラフィック制御
2. 複数 BR 構成での Best BR 選択動作
通信の宛先だけではなくアプリケーションレベルで、より細かく通信をコントロールしたい場合はあて先経路ベースの Static route の自動生成では実現することができません。
このため、PfRではアプリケーションレベルでのより細かい通信経路を制御するため、PBRが用いられます。
BR がアプリケーションレベルで通信を振り分ける場合、各アプリケーショントラフィックに応じた PBR(Policy Base Routing) が自動的に生成されます。
※ EF: DSCP 46, BE: DSCP default
pfr master
policy-rules MYMAP
!
learn
list seq 10 refname LEARN_VOICE_VIDEO
traffic-class access-list VOICE_VIDEO filter Site_B
throughput
list seq 30 refname LEARN_BEST_EFFORT
traffic-class access-list BEST_EFFORT filter Site_B
throughput
!
pfr-map MYMAP 10
match pfr learn list LEARN_VOICE_VIDEO
pfr-map MYMAP 30
match pfr learn list LEARN_BEST_EFFORT
ip prefix-list Site_B seq 10 permit 10.0.30.0/24
!
ip access-list extended VOICE_VIDEO
permit ip any any dscp ef
!
ip access-list extended BEST_EFFORT
permit ip any any dscp default
!
PfR を動作させた場合、下記のように DSCP EF と default のそれぞれのトラフィックが学習され、ポリシーが適用されます。
以下では DSCP default の I/F は Et0/0 となっており、 EF の I/F は Et0/1となっています。
また、 Protocol が PBR となっていることに注目してください。
Site-A_MC_BR#show pfr master traffic-class
DstPrefix Appl_ID Dscp Prot SrcPort DstPort SrcPrefix
Flags State Time CurrBR CurrI/F Protocol
PasSDly PasLDly PasSUn PasLUn PasSLos PasLLos EBw IBw
ActSDly ActLDly ActSUn ActLUn ActSJit ActPMOS ActSLos ActLLos
--------------------------------------------------------------------------------
10.0.30.0/24 N defa 256 N N 0.0.0.0/0
INPOLICY 0 192.168.99.1 Et0/0 PBR
1 69 0 0 0 0 25 22
U 1 0 0 N N N N
10.0.30.0/24 N ef 256 N N 0.0.0.0/0
INPOLICY 0 192.168.99.1 Et0/1 PBR
U U 0 0 0 0 2 0
U 2 0 500000 N N N N
上記のように同一の宛先に対し、複数出口を識別する場合は、 Protocol として PBR が選択されます。 実際の PBR のルーティング条件は下記のように確認できます。
Site-A_MC_BR#show route-map dynamic
route-map OER_INTERNAL_RMAP, permit, sequence 0, identifier 1191182337
Match clauses:
ip address (access-lists): oer#1
Set clauses:
ip next-hop 172.168.20.3
interface Ethernet0/1
Policy routing matches: 18800 packets, 1128000 bytes
route-map OER_INTERNAL_RMAP, permit, sequence 1, identifier 788529154
Match clauses:
ip address (access-lists): oer#2
Set clauses:
ip next-hop 172.168.10.2
interface Ethernet0/0
Policy routing matches: 224429 packets, 12298614 bytes
Current active dynamic routemaps = 1
Site-A_MC_BR#show ip access-lists dynamic
Extended IP access list oer#1
1073741823 permit ip any 10.0.30.0 0.0.0.255 dscp ef (18800 matches)
2147483647 deny ip any any (463231 matches)
Extended IP access list oer#2
1073741823 permit ip any 10.0.30.0 0.0.0.255 dscp default (224429 matches)
2147483647 deny ip any any (238802 matches)
Internal I/F に自動的に適用される route-map と、そのトラフィックを識別する access-list が 自動的に生成されたことがわかります。
一方、この場合 Traffic-class に対する static route は生成されません。
Site-A_MC_BR#show ip route
S 10.0.0.0/16 [1/0] via 172.168.20.3, Ethernet0/1
[1/0] via 172.168.10.2, Ethernet0/0
これで、通信は同一の宛先ですがアプリケーション毎に下記図のようにルーティングされます。
Site-B_BR_1#
key chain pfr
key 0
key-string cisco
!
pfr border
logging
local Loopback0
master 10.0.99.5 key-chain pfr
!
interface Loopback0
ip address 10.0.99.2 255.255.255.255
!
interface Ethernet0/0
ip address 172.16.10.2 255.255.255.0
!
interface Ethernet0/2
ip address 10.0.10.2 255.255.255.0
!
router ospf 1
redistribute static subnets route-map Static_To_OSPF
network 10.0.20.0 0.0.0.255 area 0
network 172.16.10.0 0.0.0.255 area 0
!
ip prefix-list Site_A seq 5 permit 192.168.0.0/16
!
route-map Static_To_OSPF permit 10
match ip address prefix-list Site_A
!
route-map Static_To_OSPF permit 20
match tag 5000
!
ip route 192.168.0.0 255.255.0.0 Ethernet0/0 172.16.10.1
Site-B_BR_2#
key chain pfr
key 0
key-string cisco
!
pfr border
logging
local Loopback0
master 10.0.99.5 key-chain pfr
!
interface Loopback0
ip address 10.0.99.3 255.255.255.255
!
interface Ethernet0/1
ip address 172.16.20.3 255.255.255.0
!
interface Ethernet0/3
ip address 10.0.20.3 255.255.255.0
!
router ospf 1
redistribute static subnets route-map Static_To_OSPF
network 10.0.30.0 0.0.0.255 area 0
network 172.16.20.0 0.0.0.255 area 0
!
ip prefix-list Site_A seq 5 permit 192.168.0.0/16
!
route-map Static_To_OSPF permit 10
match ip address prefix-list Site_A
!
route-map Static_To_OSPF permit 20
match tag 5000
!
ip route 192.168.0.0 255.255.0.0 Ethernet0/1 172.16.20.1
Site-B_MC#
key chain pfr
key 0
key-string cisco
!
pfr master
logging
!
border 10.0.99.3 key-chain pfr
interface Ethernet0/3 internal
interface Ethernet0/1 external
!
border 10.0.99.2 key-chain pfr
interface Ethernet0/2 internal
interface Ethernet0/0 external
!
!
interface Loopback0
ip address 10.0.99.5 255.255.255.255
R4#
interface Ethernet0/2
ip address 10.0.10.4 255.255.255.0
!
interface Ethernet0/3
ip address 10.0.20.4 255.255.255.0
!
interface Ethernet1/1
ip address 10.0.30.254 255.255.255.0
!
router ospf 1
network 10.0.0.0 0.0.255.255 area 0
!
R4 は Site-A への通信経路を、BR より OSPF にて学習しています。
R4# show ip route
O E2 192.168.0.0/16 [110/20] via 10.0.20.3, 00:01:17, Ethernet0/3
[110/20] via 10.0.10.2, 00:01:27, Ethernet0/2
Site-B から Site-A への通信は PfR にて下記のように学習され、ポリシーが適用されます。
Site-B_MC#show pfr master traffic
DstPrefix Appl_ID Dscp Prot SrcPort DstPort SrcPrefix
Flags State Time CurrBR CurrI/F Protocol
PasSDly PasLDly PasSUn PasLUn PasSLos PasLLos EBw IBw
ActSDly ActLDly ActSUn ActLUn ActSJit ActPMOS ActSLos ActLLos
--------------------------------------------------------------------------------
192.168.1.0/24 N N N N N N
INPOLICY 0 10.0.99.3 Et0/1 STATIC
1 1 0 0 0 0 48 74
1 1 0 0 N N N N
上記を確認すると、 10.0.99.3 のルータの Et0/1 というパスが PfR により選択されていることがわかります。
このような構成では、例え MC が Site-B_BR_2 を選択し、BRが自身の回線をベストだと認識したとしても、 実際に通信が分岐している R4 はPfRにて制御されません。
R4 にて、 PfR で選択された BR へ通信を誘導するために、選択された BR(Site-B_BR_2) はその Traffic Class に対し、 Tag 5000 付きの static route を生成します。
Site-B_BR_2#show pfr border route static
Flags Network Parent Tag
CE 192.168.1.0/24 192.168.0.0/16 5000
各 BR ではあらかじめこの tag 5000 付き static route を OSPF へ再配布する設定がされているため、 R4 は BR より配布された OSPF 経路を元にルーティングします。
トラフィックは下記のように流れます。
R4#show ip route
O E2 192.168.0.0/16 [110/20] via 10.0.20.3, 00:01:40, Ethernet0/3
[110/20] via 10.0.10.2, 00:01:50, Ethernet0/2
O E2 192.168.1.0/24 [110/20] via 10.0.20.3, 00:00:12, Ethernet0/3
ここでは下記図のように SiteA - SiteB 間を eBGP で接続、 SiteB 内を iBGP で接続しています。
R4# show ip bgp
* i 192.168.0.0/16 10.0.99.3 0 100 0 65001 ?
*>i 10.0.99.2 0 100 0 65001 ?
関連する設定は下記の通りです。
※ PfR に関する設定については前項の設定から変更する必要はありません。
Site-B_BR_1#
router bgp 65002
neighbor 10.0.99.4 remote-as 65002
neighbor 10.0.99.4 update-source Loopback0
neighbor 10.0.99.4 next-hop-self
neighbor 172.16.10.1 remote-as 65001
!
Site-B_BR_2#
router bgp 65002
neighbor 10.0.99.4 remote-as 65002
neighbor 10.0.99.4 update-source Loopback0
neighbor 10.0.99.4 next-hop-self
neighbor 172.16.20.1 remote-as 65001
!
R4#
router bgp 65002
redistribute ospf 1
neighbor 10.0.99.2 remote-as 65002
neighbor 10.0.99.2 update-source Loopback0
neighbor 10.0.99.3 remote-as 65002
neighbor 10.0.99.3 update-source Loopback0
!
この状態では通信は下記のように学習され、ポリシーが適用されます。
Site-B_MC#show pfr master traffic-class
DstPrefix Appl_ID Dscp Prot SrcPort DstPort SrcPrefix
Flags State Time CurrBR CurrI/F Protocol
PasSDly PasLDly PasSUn PasLUn PasSLos PasLLos EBw IBw
ActSDly ActLDly ActSUn ActLUn ActSJit ActPMOS ActSLos ActLLos
--------------------------------------------------------------------------------
192.168.1.0/24 N N N N N N
INPOLICY 0 10.0.99.2 Et0/0 BGP
2 1 0 0 0 0 35 48
U 1 0 0 N N N N
前項同様、通信は R4 にて選択される必要がありますが、上記 Protocol が BGP となっている点に注目してください。
Protocol BGP としてMCより選択された BRは下記のように Traffic Class に対する LocalPreference 5000 とした BGP network が生成されます。
Site-B_BR_1#show pfr border route bgp
Network Next Hop OER LocPrf Weight Path
*> 192.168.1.0 172.16.10.1 CEI 5000 0 65001 ?
この経路はが iBGP を経由し、R4 へ伝播することで、R4 は PfR で選択された BR へルーティングされます。
Site-B_MC#show ip bgp
* i 192.168.0.0/16 10.0.99.3 0 100 0 65001 ?
*>i 10.0.99.2 0 100 0 65001 ?
*>i 192.168.1.0 10.0.99.2 0 5000 0 65001 ?
R4# show ip bgp
B 192.168.0.0/16 [200/0] via 10.0.99.2, 01:53:37
B 192.168.1.0/24 [200/0] via 10.0.99.2, 00:30:18
PfR では BR での受信トラフィックをモニタリングし、Outbound と同様、Inbound 通信も制御することができます。
ただし、PfR により選択された 入口 I/F へトラフィックを誘導するために、BGPを用いる必要があります。 ここでは 前項と同様の構成での Inbound 通信制御を確認します。
設定内容としては前項より、MC に対して下記設定を投入するだけです。
pfr master
learn
inside bgp
max range receive percent 5
!
!
Inbound の PfR 制御は Outbound と異なり、設定されたポリシーに対し OOP になった場合のみ Enforce が行われます。
まず、ここでは Site-B_BR_2 (10.0.99.3) の E0/1 の回線の負荷を上昇させ、下記のように OOP にします。
*Apr 20 12:02:37.259: %PFR_MC-6-OOP_PASSIVE_MODE: Relative short term delay measurement is out of policy.Prefix 10.0.30.0/24 (inside prefix), delay 2, relative change 100
*Apr 20 12:04:05.801: %PFR_MC-5-OOP_LINK: Ingress load balance is out of policy.BR 10.0.99.3 i/f Et0/1 currrently at %8 bandwidth utilization, BR 10.0.99.2 i/f Et0/0 currently at %0 bandwidth utilization
MC にて Inbound の Traffic Class を確認します。ここでは Site-B_BR_1 (10.0.99.2) の E0/0 が選択されています。
Site-B_MC#show pfr master traffic inside
DstPrefix (inside) Appl_ID Dscp Prot SrcPort DstPort SrcPrefix
Flags State Time CurrBR CurrI/F Protocol
PasSDly PasLDly PasSUn PasLUn PasSLos PasLLos EBw IBw
ActSDly ActLDly ActSUn ActLUn ActSJit ActPMOS ActSLos ActLLos
--------------------------------------------------------------------------------
10.0.30.0/24 N N N N N N
INPOLICY 0 10.0.99.2 Et0/0 BGP
U U 0 0 0 0 1533 1468
U U 0 0 N N N N
Inbound Traffic を Site-B 側にて制御するため、OOP と判断された Site-B_BR_2 は AS_PATH prepend された Traffic Class 経路を eBGP によって Site-A に通知します。
Site-A_Router では 下記の通り Site-B_BR_2 向けの経路が AS_PATH Prepend されたため、 Site-B_BR_1 をベストパスとして選択していることが確認できます。
Site-A_Router#show ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 10.0.0.0/16 172.16.10.2 0 32768 ?
* 10.0.30.0/24 172.16.20.3 0 65002 65002 ?
*> 172.16.10.2 0 65002 ?
Inbound トラフィックは下記のように流れます。
Site-A_Router#show ip route
B 10.0.30.0/24 [20/0] via 172.16.10.2, 00:01:21
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます