Cisco IOS IPサービス – IP SLAの設定

スポンサーリンク

IP SLAはサービスレベルを満たしているかどうか確認する機能です。一般的にはObject trackingと組み合わせて自動経路切替を行いますが、ここではIP SLAのみを解説します。

コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type echo protocol ipIcmpEcho <dst_addr>
Router(config-sla-monitor-echo)# request-data-size <byte>
Router(config-sla-monitor-echo)# timeout <msec>
Router(config-sla-monitor-echo)# threshold <msec>
Router(config-sla-monitor-echo)# frequency <sec>

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type tcpConnect dest-ipaddr <dst_addr> dest-port <port> [ control disable ]
Router(config-sla-monitor-tcp)# request-data-size <byte>
Router(config-sla-monitor-tcp)# timeout <msec>
Router(config-sla-monitor-tcp)# threshold <msec>
Router(config-sla-monitor-tcp)# frequency <sec>

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type tcpConnect dest-ipaddr <dst_addr> dest-port <port> control disable

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type udpEcho dest-ipaddr <dst_addr> dest-port <port> [ control disable ]
Router(config-sla-monitor-udp)# request-data-size <byte>
Router(config-sla-monitor-udp)# timeout <msec>
Router(config-sla-monitor-udp)# threshold <msec>
Router(config-sla-monitor-udp)# frequency <sec>

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type pathJitter dest-ipaddr
Router(config-sla-monitor-pathJitter)# request-data-size <byte>
Router(config-sla-monitor-pathJitter)# timeout <msec>
Router(config-sla-monitor-pathJitter)# threshold <msec>
Router(config-sla-monitor-pathJitter)# frequency <sec>

Router(config)# ip sla monitor schedule <num> start-time { now | <hh:mm> } life { forever | <sec> }

Router(config)# ip sla monitor responder

Router(config)# ip sla monitor reaction-configuration <num> react { timeout | connectionLoss | verifyError } action-type trapOnly

Router(config)# snmp-server host <addr> <community>
Router(config)# snmp-server enable traps

構成図

以下の環境で動作確認を行います。R1, R2間の接続についてclock rateを低めに設定し、threshold超過が発生しやすいようにします。

         s0/0    s0/0
 +--------+.1    .2+--------+
 |   R1   +--------+   R2   |
 +--------+        +--------+
        192.168.12.0/24

 R1 Loopback0     R2 Loopback0
 10.1.1.1/32      10.2.2.2/32
 [R1]
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Serial0/0
 ip address 192.168.12.1 255.255.255.0
 encapsulation frame-relay
 clock rate 246
 frame-relay map ip 192.168.12.1 100
 frame-relay map ip 192.168.12.2 100 broadcast
 frame-relay intf-type dce

 [R2]
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Serial0/0
 ip address 192.168.12.2 255.255.255.0
 encapsulation frame-relay
 frame-relay map ip 192.168.12.1 100 broadcast
 frame-relay map ip 192.168.12.2 100

設定全文は下記ファイルです。詳細設定は下記を参照ください。

R1
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Serial0/0
 ip address 192.168.12.1 255.255.255.0
 encapsulation frame-relay
 serial restart-delay 0
 clock rate 246
 frame-relay map ip 192.168.12.1 100
 frame-relay map ip 192.168.12.2 100 broadcast
 frame-relay intf-type dce
!
interface Serial0/1
 no ip address
 shutdown
 serial restart-delay 0
!
interface Serial0/2
 no ip address
 shutdown
 serial restart-delay 0
!
interface Serial0/3
 no ip address
 shutdown
 serial restart-delay 0
!
!
router eigrp 10
 network 10.1.1.1 0.0.0.0
 network 192.168.12.1 0.0.0.0
 no auto-summary
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end
R2
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Serial0/0
 ip address 192.168.12.2 255.255.255.0
 encapsulation frame-relay
 serial restart-delay 0
 frame-relay map ip 192.168.12.1 100 broadcast
 frame-relay map ip 192.168.12.2 100
!
interface Serial0/1
 no ip address
 shutdown
 serial restart-delay 0
!
interface Serial0/2
 no ip address
 shutdown
 serial restart-delay 0
!
interface Serial0/3
 no ip address
 shutdown
 serial restart-delay 0
!
!
router eigrp 10
 network 10.2.2.2 0.0.0.0
 network 192.168.12.2 0.0.0.0
 no auto-summary
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end

仕様説明

icmp echo

icmpによる監視を行う場合は、以下のようなコマンドを使用します。”type echo”と入力した後は、ヘルプストリングに従って設定を投入して下さい。

一定時間以内にレスポンスが返るかどうかで挙動を変えたい場合は、timeoutに加えthresholdを設定します。timeoutを超過するとreturn codeが”NG”になり、thresholdを超過するとreturn codeが”Over threshold”となります。”NG”, “Over threshold”の使い分けについては、Object Trackingのページを参照してください。

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type echo protocol ipIcmpEcho <dst_addr>
Router(config-sla-monitor-echo)# request-data-size <byte>
Router(config-sla-monitor-echo)# timeout <msec>
Router(config-sla-monitor-echo)# threshold <msec>
Router(config-sla-monitor-echo)# frequency <sec>
Router(config)# ip sla monitor schedule <num> start-time { now | <hh:mm> } life { forever | <sec> }

tcp connectoin

tcpによる監視を行う場合は、以下のようなコマンドを使用します。”type tcpConnect”と入力した後は、ヘルプストリングに従って設定を投入して下さい。

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type tcpConnect dest-ipaddr <dst_addr> dest-port <port> [ control disable ]
Router(config-sla-monitor-tcp)# request-data-size <byte>
Router(config-sla-monitor-tcp)# timeout <msec>
Router(config-sla-monitor-tcp)# threshold <msec>
Router(config-sla-monitor-tcp)# frequency <sec>
Router(config)# ip sla monitor schedule <num> start-time { now | <hh:mm> } life { forever | <sec> }

tcp connectionを使用する場合は、対向機が応答をIP SLA control protocolに基づく応答を返す必要があります。対向機が応答を返すように以下のコマンドで”ip sla monitor responder”を設定します。

Router(config)# ip sla monitor responder

なお、対向機で”ip sla monitor responder”が設定できない場合や対向機がcisco機ではない場合は、以下のようにcontrol disableとして下さい。この設定によりIP SLAs control protocolに基づく応答でなくてもIP SLAによる監視ができるようになります。

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type tcpConnect dest-ipaddr <dst_addr> dest-port <port> control disable
Router(config)# ip sla monitor schedule <num> start-time { now | <hh:mm> } life { forever | <sec> }

udp echo monitor

udpによる監視を行う場合は、以下のようなコマンドを使用します。”type udpEcho”と入力した後は、ヘルプストリングに従って設定を投入して下さい。

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type udpEcho dest-ipaddr <dst_addr> dest-port <port> [ control disable ]
Router(config-sla-monitor-pathJitter)# request-data-size <byte>
Router(config-sla-monitor-pathJitter)# timeout <msec>
Router(config-sla-monitor-pathJitter)# threshold <msec>
Router(config-sla-monitor-pathJitter)# frequency <sec>
Router(config)# ip sla monitor schedule <num> start-time { now | <hh:mm> } life { forever | <sec> }

udp jitter monitor

udp jitterを計測したい場合は以下のようなコマンドを入力します。jitterとはパケットのゆらぎを示す指標で、音声品質の良さを表します。QoSが想定通りに機能しているかどうかをmonitorする時に使用します。

Router(config)# ip sla monitor <num>
Router(config-sla-monitor)# type pathJitter dest-ipaddr
Router(config-sla-monitor-echo)# request-data-size <byte>
Router(config-sla-monitor-echo)# timeout <msec>
Router(config-sla-monitor-echo)# threshold <msec>
Router(config-sla-monitor-echo)# frequency <sec>
Router(config)# ip sla monitor schedule <num> start-time { now | <hh:mm> } life { forever | <sec> }

jitter(ゆらぎ)を計測するためにはudpに対する応答を返す必要があります。監視される側のホストに以下コマンドを投入すると、”ip sla monitor responder”が有効になりjitter(ゆらぎ)が計測できるようになります。

Router(config)# ip sla monitor responder

SNMP trap

以下のコマンドで、IP SLAによる監視が失敗した際にSNMP trapを送信する事ができます。

Router(config)# ip sla monitor reaction-configuration <num> react { timeout | connectionLoss | verifyError } action-type trapOnly

snmptrapdサーバの指定やsnmp有効化の指定も必要です。snmp有効化については諸説あります。cisco360公式トレーニングの教材によれば、”snmp-server enable traps snmp”が必要と書いてありますが、configuration guideには、”rtr”または”syslog”が必要と書いてあります。私が行ったエミュレータによる動作確認の結果は、全てのsnmpを有効化しなければtrapは送信されませんでした。

Router(config)# snmp-server host <addr> <community>
Router(config)# snmp-server enable traps

icmp echo

設定投入

R1からR2へのicmp echoによる監視を実装します。

 [R1]
ip sla monitor 1
 type echo protocol ipIcmpEcho 10.2.2.2 source-interface Loopback0
 request-data-size 1250
 timeout 500
 threshold 50
 frequency 10
ip sla monitor schedule 1 life forever start-time now

設定投入

以下のshowコマンドにより、IP SLAの結果を確認します。この設定例の場合thresholdが小さめに設定されていますので、監視結果がOver thresholdとなっている事が読み取れます。

 [R1]
R1#show ip sla monitor statistics
Round trip time (RTT)   Index 1
        Latest RTT: 100 ms
Latest operation start time: *00:06:21.839 UTC Fri Mar 1 2002
Latest operation return code: Over threshold
Number of successes: 9
Number of failures: 0
Operation time to live: Forever


R1#

tcp monitor

設定投入

R1からR2へのtcpによる監視を実装します。この設定例の場合、R2側で”ip sla monitor responder”を設定していないので、R1側に”control disable”が必要になります。

 [R1]
ip sla monitor 2
 type tcpConnect dest-ipaddr 10.2.2.2 dest-port 23 control disable
 timeout 1000
 frequency 15
ip sla monitor schedule 2 life 60 start-time now

動作確認

以下のshowコマンドにより、IP SLAの結果を確認します。

 [R1]
R1#show ip sla monitor statistics 2
Round trip time (RTT)   Index 2
        Latest RTT: 116 ms
Latest operation start time: *00:09:54.787 UTC Fri Mar 1 2002
Latest operation return code: OK
Number of successes: 4
Number of failures: 0
Operation time to live: 0


R1#

udp monitor

設定投入

R1からR2へのudp echoによる監視を実装します。動作確認のため、R2に”service udp-small-servers”コマンドを入力します。このコマンドによりR2がecho server(udp 7)として機能します。

 [R1]
ip sla monitor 3
 type udpEcho dest-ipaddr 10.2.2.2 dest-port 7 control disable
 timeout 1000
 frequency 10
ip sla monitor schedule 3 life forever start-time now
 
 [R2]
service udp-small-servers

動作確認

以下のshowコマンドにより、IP SLAの結果を確認します。

 [R1]
R1#show ip sla monitor statistics 3
Round trip time (RTT)   Index 3
        Latest RTT: 160 ms
Latest operation start time: *00:16:09.827 UTC Fri Mar 1 2002
Latest operation return code: OK
Number of successes: 25
Number of failures: 1
Operation time to live: Forever


R1#

udp jitter monitor

設定投入

R1, R2間のudp jitterを計測します。jitter(ゆらぎ)を計測するためにはudpに対する応答を返す必要がありますので、R2側に”ip sla monitor responder”コマンドを入力して下さい。

 [R1]
ip sla monitor 4
 type pathJitter dest-ipaddr 10.2.2.2 source-ipaddr 10.1.1.1 interval 10
 request-data-size 1250
 timeout 1000
 frequency 10
ip sla monitor schedule 4 life forever start-time now
 
 [R2]
ip sla monitor responder

動作確認

以下のshowコマンドにより、IP SLAの結果を確認します。

 [R1]
R1#show ip sla monitor statistics 4
Round trip time (RTT)   Index 4
        Latest RTT: 78 ms
Latest operation start time: *00:04:11.403 UTC Fri Mar 1 2002
Latest operation return code: OK

---- Path Jitter Statistics ----

Hop IP 192.168.12.2:
Round Trip Time milliseconds:
        Latest RTT: 78 ms
        Number of RTT: 10
        RTT Min/Avg/Max: 63/78/99 ms
Jitter time milliseconds:
        Number of jitter: 8
        Jitter Min/Avg/Max: 3/9/16 ms
Packet Values:
        Packet Loss (Timeouts): 0
        Out of Sequence: 0
        Discarded Samples: 0
Operation time to live: Forever


R1#

SNMP trap

設定投入

udp echo 失敗時にトラップを送信するようにします。R1に以下設定を投入して下さい。

 [R1]
ip sla monitor reaction-configuration 3 react timeout action-type trapOnly
snmp-server enable traps
snmp-server host 192.168.12.2 CISCOTRAP

動作確認

udp timeoutを発生させるため、R2のudp-small-serversを無効化します。

 [R2]
no service udp-small-servers

デバッグメッセージより、snmp trapが送信された事を確認します。

 [R1]
R1#debug snmp packets
SNMP packet debugging is on
R1#
R1#
*Mar  1 00:24:26.919: SNMP: Queuing packet to 192.168.12.2
*Mar  1 00:24:26.919: SNMP: V1 Trap, ent ciscoConfigManMIB.2, addr 192.168.12.1, gentrap 6, spectrap 1
 ccmHistoryEventEntry.3.15 = 1
 ccmHistoryEventEntry.4.15 = 3
 ccmHistoryEventEntry.5.15 = 2
*Mar  1 00:24:27.171: SNMP: Packet sent via UDP to 192.168.12.2
R1#
タイトルとURLをコピーしました