ヨタ助

携帯用ページ http://www.google.co.jp/gwt/x?u=http%3a%2f%2funipass.blogspot.com&btngo=go&source=wax&ie=utf-8&oe=utf-8

Thursday, April 21, 2011

Multicast configuration pit hall

1) 
RP Address の Typo
RP Address の RIB 上の状態 (/24なのか、/32なのか?)
RP Address の Interface で ip pim mode の設定漏れ

 →上記のどれかが間違っている場合には、 LHR で debug ip mpacket の出力が
    not RPF や RPF check / lookup が fail する

2) 
IGMP Interface での ip pim (sparse/dense) mode の設定漏れ

 →RP や Source までの RPT で Out Interface が Null のままとなる

WB Vol.1 Multicast - Auto Listener - Test


### Configuration ###
%% R1 %%
Loopback0
 ip address 150.1.1.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 155.1.1.1 255.255.255.0
 ip pim sparse-mode
!
interface FastEthernet0/1
 ip address 155.1.12.1 255.255.255.0
 ip pim sparse-mode
!
ip pim autorp listener

%% R2 %%

interface Loopback0
 ip address 150.1.2.2 255.255.255.0
 ip pim sparse-mode
!
interface FastEthernet0/0
 ip address 155.1.12.2 255.255.255.0
 ip pim sparse-mode
!
interface FastEthernet0/1
 ip address 155.1.23.2 255.255.255.0
 ip pim sparse-mode
!
ip pim autorp listener
ip pim send-rp-announce Loopback0 scope 16

%% R3 %%

interface Loopback0
 ip address 150.1.3.3 255.255.255.0
 ip pim sparse-mode
!
interface FastEthernet0/0
 ip address 155.1.23.3 255.255.255.0
 ip pim sparse-mode
!
interface FastEthernet0/1
 ip address 155.1.34.3 255.255.255.0
 ip pim sparse-mode
!
ip pim autorp listener
ip pim send-rp-discovery Loopback0 scope 16

%% R4 %%


interface Loopback0
 ip address 150.1.4.4 255.255.255.0
!
interface FastEthernet0/0
 ip address 155.1.34.4 255.255.255.0
 ip pim sparse-mode
!
interface FastEthernet0/1
 ip address 155.1.4.4 255.255.255.0
 ip pim sparse-mode
 ip igmp join-group 224.10.10.10
!
ip pim autorp listener




### Verification ###
R1#ping 224.10.10.10

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 224.10.10.10, timeout is 2 seconds:

Reply to request 0 from 155.1.34.4, 28 ms
Reply to request 0 from 155.1.34.4, 36 ms


R1#sh ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.10.10.10), 00:04:40/stopped, RP 150.1.2.2, flags: SPF
  Incoming interface: FastEthernet0/1, RPF nbr 155.1.12.2
  Outgoing interface list: Null

(155.1.1.1, 224.10.10.10), 00:00:16/00:03:16, flags: FT
  Incoming interface: FastEthernet0/0, RPF nbr 0.0.0.0, Registering
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:00:16/00:03:13

(155.1.12.1, 224.10.10.10), 00:03:41/00:02:43, flags: PT
  Incoming interface: FastEthernet0/1, RPF nbr 0.0.0.0
  Outgoing interface list: Null

(*, 224.0.1.39), 04:57:11/stopped, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 04:57:11/00:00:00

(150.1.2.2, 224.0.1.39), 00:00:51/00:02:08, flags: PT
  Incoming interface: FastEthernet0/1, RPF nbr 155.1.12.2
  Outgoing interface list: Null

(*, 224.0.1.40), 04:57:26/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 04:57:26/00:00:00
    FastEthernet0/0, Forward/Sparse, 04:57:26/00:00:00

(150.1.3.3, 224.0.1.40), 00:13:02/00:02:03, flags: LT
  Incoming interface: FastEthernet0/1, RPF nbr 155.1.12.2
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:13:02/00:00:00

R1#


R2#sh ip mroute
IP Multicast Routing Table

(*, 224.10.10.10), 04:56:36/00:03:10, RP 150.1.2.2, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 04:56:36/00:03:10

(155.1.1.1, 224.10.10.10), 00:00:37/00:02:22, flags:
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.12.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:00:37/00:03:10

(155.1.12.1, 224.10.10.10), 00:00:37/00:03:00, flags: T
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.12.1
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:00:37/00:03:10

(*, 224.0.1.39), 04:57:32/stopped, RP 0.0.0.0, flags: DC
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 04:57:32/00:00:00
    FastEthernet0/0, Forward/Sparse, 04:57:32/00:00:00

(150.1.2.2, 224.0.1.39), 04:57:12/00:02:47, flags: T
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Prune/Sparse, 00:13:12/00:01:52
    FastEthernet0/1, Forward/Sparse, 04:57:12/00:00:00

(*, 224.0.1.40), 04:57:32/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse, 04:57:32/00:00:00
    FastEthernet0/1, Forward/Sparse, 04:57:32/00:00:00
    FastEthernet0/0, Forward/Sparse, 04:57:32/00:00:00

(150.1.3.3, 224.0.1.40), 00:13:23/00:02:47, flags: LT
  Incoming interface: FastEthernet0/1, RPF nbr 155.1.23.3
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:13:23/00:00:00
    Loopback0, Forward/Sparse, 00:13:23/00:00:00

R2#

R3#
R3#sh ip mroute
IP Multicast Routing Table

(*, 224.10.10.10), 04:57:02/00:02:45, RP 150.1.2.2, flags: S
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.23.2
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 04:57:02/00:02:45

(155.1.1.1, 224.10.10.10), 00:01:03/00:02:26, flags:
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.23.2
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:01:03/00:03:25

(155.1.12.1, 224.10.10.10), 00:01:03/00:02:25, flags:
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.23.2
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:01:03/00:03:24

(*, 224.0.1.39), 04:57:38/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse, 00:13:49/00:00:00
    FastEthernet0/1, Forward/Sparse, 04:57:39/00:00:00
    FastEthernet0/0, Forward/Sparse, 04:57:39/00:00:00

(150.1.2.2, 224.0.1.39), 00:16:38/00:02:27, flags: LT
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.23.2
  Outgoing interface list:
    Loopback0, Forward/Sparse, 00:13:50/00:00:00
    FastEthernet0/1, Forward/Sparse, 00:13:50/00:00:00

(*, 224.0.1.40), 04:57:44/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Loopback0, Forward/Sparse, 00:13:50/00:00:00
    FastEthernet0/1, Forward/Sparse, 04:57:44/00:00:00
    FastEthernet0/0, Forward/Sparse, 04:57:44/00:00:00

(150.1.3.3, 224.0.1.40), 00:13:49/00:02:14, flags: LT
  Incoming interface: Loopback0, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:13:49/00:00:00
    FastEthernet0/1, Forward/Sparse, 00:13:49/00:00:00

R3#

R4#sh ip mroute
IP Multicast Routing Table

(*, 224.10.10.10), 04:57:29/stopped, RP 150.1.2.2, flags: SJCL
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.34.3
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 04:57:29/00:02:03

(155.1.1.1, 224.10.10.10), 00:01:30/00:01:35, flags: LJT
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.34.3
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:01:30/00:02:03

(155.1.12.1, 224.10.10.10), 00:01:30/00:01:35, flags: LJT
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.34.3
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:01:30/00:02:03

(*, 224.0.1.39), 04:54:05/stopped, RP 0.0.0.0, flags: DC
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 04:54:05/00:00:00

(150.1.2.2, 224.0.1.39), 00:02:05/00:00:54, flags: PTX
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.34.3
  Outgoing interface list: Null

(*, 224.0.1.40), 04:58:03/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 04:58:03/00:00:00

(150.1.3.3, 224.0.1.40), 00:14:16/00:02:48, flags: PLTX
  Incoming interface: FastEthernet0/0, RPF nbr 155.1.34.3
  Outgoing interface list: Null

R4#


## Verification -2 ##

R1#sh ip pim rp
Group: 224.10.10.10, RP: 150.1.2.2, v2, uptime 00:15:26, expires 00:02:25
R1#sh ip pim rp map
PIM Group-to-RP Mappings

Group(s) 224.0.0.0/4
  RP 150.1.2.2 (?), v2v1
    Info source: 150.1.3.3 (?), elected via Auto-RP
         Uptime: 00:15:40, expires: 00:02:12
R1#

R2#sh ip pim rp
Group: 224.10.10.10, RP: 150.1.2.2, v2, v1, next RP-reachable in 00:00:54
R2#sh ip pim rp map
PIM Group-to-RP Mappings
This system is an RP (Auto-RP)

Group(s) 224.0.0.0/4
  RP 150.1.2.2 (?), v2v1
    Info source: 150.1.3.3 (?), elected via Auto-RP
         Uptime: 00:15:51, expires: 00:01:58
R2#

R3#sh ip pim rp
Group: 224.10.10.10, RP: 150.1.2.2, v2, v1, uptime 00:16:02, expires 00:02:53
R3#sh ip pim rp map
PIM Group-to-RP Mappings
This system is an RP-mapping agent (Loopback0)

Group(s) 224.0.0.0/4
  RP 150.1.2.2 (?), v2v1
    Info source: 150.1.2.2 (?), elected via Auto-RP
         Uptime: 00:16:03, expires: 00:02:52
R3#

R4#sh ip pim rp
Group: 224.10.10.10, RP: 150.1.2.2, v2, v1, uptime 00:16:11, expires 00:02:36
R4#sh ip pim rp map
PIM Group-to-RP Mappings

Group(s) 224.0.0.0/4
  RP 150.1.2.2 (?), v2v1
    Info source: 150.1.3.3 (?), elected via Auto-RP
         Uptime: 00:16:13, expires: 00:02:34
R4#

WB Vol.1 Multicast - 8.5 PIM Assert

Without any treatment for Assertion

R1

(*, 239.6.6.6), 00:00:35/stopped, RP 0.0.0.0, flags: DC
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0.1, Forward/Sparse-Dense, 00:00:35/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:00:35/00:00:00

(155.7.108.10, 239.6.6.6), 00:00:19/00:02:42, flags: PT
  Incoming interface: Serial0/0.1, RPF nbr 155.7.0.5
  Outgoing interface list:
    FastEthernet0/0, Prune/Sparse-Dense, 00:00:20/00:02:39

R4 (Assertion Winner)

(*, 239.6.6.6), 00:00:29/stopped, RP 0.0.0.0, flags: DC
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1/0, Forward/Sparse-Dense, 00:00:29/00:00:00
    FastEthernet0/1, Forward/Sparse-Dense, 00:00:29/00:00:00

(155.7.108.10, 239.6.6.6), 00:00:13/00:02:48, flags: T
  Incoming interface: Serial0/1/0, RPF nbr 155.7.45.5
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse-Dense, 00:00:13/00:00:00, A

R5

(*, 239.6.6.6), 00:00:05/stopped, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0/0, Forward/Sparse-Dense, 00:00:05/00:00:00
    Serial0/1/0, Forward/Sparse-Dense, 00:00:05/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:00:05/00:00:00

(155.7.108.10, 239.6.6.6), 00:00:05/00:03:29, flags: T
  Incoming interface: FastEthernet0/0, RPF nbr 155.7.58.8
  Outgoing interface list:
    Serial0/1/0, Forward/Sparse-Dense, 00:00:05/00:00:00
    Serial0/0/0, Prune/Sparse-Dense, 00:00:04/00:03:24

With changing distance of OSPF

R1 (Assertion Winner)

router ospf 1
 router-id 150.7.1.1
 log-adjacency-changes
 network 150.7.0.0 0.0.255.255 area 0
 network 155.7.0.0 0.0.255.255 area 0
 distance 80

 (*, 239.6.6.6), 00:49:25/stopped, RP 0.0.0.0, flags: DC
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0.1, Forward/Sparse-Dense, 00:49:25/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:49:25/00:00:00

(155.7.108.10, 239.6.6.6), 00:00:13/00:02:47, flags: T
  Incoming interface: Serial0/0.1, RPF nbr 155.7.0.5
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse-Dense, 00:00:14/00:00:00, A

R4

(*, 239.6.6.6), 00:49:32/stopped, RP 0.0.0.0, flags: DC
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1/0, Forward/Sparse-Dense, 00:49:32/00:00:00
    FastEthernet0/1, Forward/Sparse-Dense, 00:49:32/00:00:00

(155.7.108.10, 239.6.6.6), 00:00:20/00:02:45, flags: PT
  Incoming interface: Serial0/1/0, RPF nbr 155.7.45.5
  Outgoing interface list:
    FastEthernet0/1, Prune/Sparse-Dense, 00:00:19/00:02:40

R5

(*, 239.6.6.6), 00:00:21/stopped, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0/0, Forward/Sparse-Dense, 00:00:21/00:00:00
    Serial0/1/0, Forward/Sparse-Dense, 00:00:21/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:00:21/00:00:00

(155.7.108.10, 239.6.6.6), 00:00:21/00:02:45, flags: T
  Incoming interface: FastEthernet0/0, RPF nbr 155.7.58.8
  Outgoing interface list:
    Serial0/1/0, Prune/Sparse-Dense, 00:00:20/00:02:39
    Serial0/0/0, Forward/Sparse-Dense, 00:00:21/00:00:00

WB Vol.1 Multicast - 8.4 PIM Sparse-Dense Mode

R6 (FHR)

(*, 224.0.1.40), 00:33:08/00:02:26, RP 150.7.5.5, flags: SJPCL
  Incoming interface: FastEthernet0/0.146, RPF nbr 155.7.146.4
  Outgoing interface list: Null

R4

(*, 239.0.0.1), 00:00:48/stopped, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1/0, Forward/Sparse-Dense, 00:00:48/00:00:00
    FastEthernet0/1, Forward/Sparse-Dense, 00:00:48/00:00:00

(155.7.146.6, 239.0.0.1), 00:00:48/00:02:16, flags: T
  Incoming interface: FastEthernet0/1, RPF nbr 155.7.146.6
  Outgoing interface list:
    Serial0/1/0, Forward/Sparse-Dense, 00:00:48/00:00:00

R5 (RP for 224.10.10.10, but no RP for 239.0.0.1. It's dense mode group)

(*, 239.0.0.1), 00:00:51/stopped, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/1/0, Forward/Sparse-Dense, 00:00:51/00:00:00
    FastEthernet0/0, Forward/Sparse-Dense, 00:00:51/00:00:00

(155.7.146.6, 239.0.0.1), 00:00:51/00:02:14, flags: T
  Incoming interface: Serial0/1/0, RPF nbr 155.7.45.4
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse-Dense, 00:00:51/00:00:00

SW2

(*, 239.0.0.1), 00:01:10/stopped, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Port-channel1, Forward/Sparse-Dense, 00:01:10/00:00:00
    Vlan58, Forward/Sparse-Dense, 00:01:10/00:00:00

(155.7.146.6, 239.0.0.1), 00:01:10/00:02:06, flags: T
  Incoming interface: Vlan58, RPF nbr 155.7.58.5
  Outgoing interface list:
    Port-channel1, Forward/Sparse-Dense, 00:01:10/00:00:00

SW4 (LHR)

(*, 239.0.0.1), 00:02:32/stopped, RP 0.0.0.0, flags: DCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Vlan10, Forward/Sparse-Dense, 00:02:32/00:00:00
    Port-channel1, Forward/Sparse-Dense, 00:02:32/00:00:00

(155.7.146.6, 239.0.0.1), 00:01:04/00:01:58, flags: LT
  Incoming interface: Port-channel1, RPF nbr 155.7.108.8
  Outgoing interface list:
    Vlan10, Forward/Sparse-Dense, 00:01:04/00:00:00, H

WB Vol.1 Multicast - 8.3 PIM Sparse Mode

R6 (Multicast Source, FHR)


(*, 224.10.10.10), 00:07:27/stopped, RP 150.7.5.5, flags: SPF
  Incoming interface: FastEthernet0/0.146, RPF nbr 155.7.146.4
  Outgoing interface list: Null
-> it is because no multicast receiver below R4

(155.7.146.6, 224.10.10.10), 00:02:54/00:02:56, flags: PFT
  Incoming interface: FastEthernet0/0.146, RPF nbr 0.0.0.0
  Outgoing interface list: Null
-> FHR does not have OIL interface??

R4

 (*, 224.10.10.10), 00:08:06/stopped, RP 150.7.5.5, flags: SP
  Incoming interface: Serial0/1/0, RPF nbr 155.7.45.5
  Outgoing interface list: Null
-> it is because no multicast receiver below R4

(155.7.146.6, 224.10.10.10), 00:03:32/00:02:49, flags: T
  Incoming interface: FastEthernet0/1, RPF nbr 155.7.146.6
  Outgoing interface list:
    Serial0/1/0, Forward/Sparse, 00:03:32/00:02:54

R5 (RP Router)

(*, 224.10.10.10), 00:08:41/00:02:33, RP 150.7.5.5, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:08:41/00:02:33

(155.7.146.6, 224.10.10.10), 00:01:09/00:02:24, flags: T
  Incoming interface: Serial0/1/0, RPF nbr 155.7.45.4
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:01:09/00:03:21

SW2

(*, 224.10.10.10), 00:07:06/00:03:16, RP 150.7.5.5, flags: S
  Incoming interface: Vlan58, RPF nbr 155.7.58.5
  Outgoing interface list:
    Port-channel1, Forward/Sparse, 00:07:06/00:03:16

(155.7.146.6, 224.10.10.10), 00:00:20/00:03:09, flags:
  Incoming interface: Vlan58, RPF nbr 155.7.58.5
  Outgoing interface list:
    Port-channel1, Forward/Sparse, 00:00:20/00:03:16

SW4 (Multicast Receiver, LHR)

(*, 224.10.10.10), 00:07:52/stopped, RP 150.7.5.5, flags: SJCL
  Incoming interface: Port-channel1, RPF nbr 155.7.108.8
  Outgoing interface list:
    Vlan10, Forward/Sparse, 00:07:52/00:02:20, H

(155.7.146.6, 224.10.10.10), 00:00:08/00:02:59, flags: LJT
  Incoming interface: Port-channel1, RPF nbr 155.7.108.8
  Outgoing interface list:
    Vlan10, Forward/Sparse, 00:00:09/00:02:50, H

Sunday, April 10, 2011

RSVP memo

end-to-end QoS model, mimic of circuit-switched network

RSVP is signaling protocol to request certain QoS capabilities from the networks

PSTN と比べるとコール中にnetworkを予約し、コール後に開放する形。
DiffServ QoS model とは反対の考え方

RSVP の中心となる考え方は Flow (a unidirectional stream of packets)
Host X -> Host Y
Host X sends RSVP request (PATH message) to nearest router
 = asks to establish QoS-aware path downstream to Host Y

Requestを受信したrouterは PATH message 内の parameter と available resourceを比較し、すべてokの場合は requestをさらに Host Y に近い routerに転送する。
最後には Host Yに到達し、HostY は Reservation request (RESV message) を Host Xへ
応答する。

Path 内のそれぞれのrouterは要求された QoS parameterが提供可能かどうか確認する、
そして、Requestを上流へ転送する

Senderが Reserve messageを受信すると、いよいよ senderがデータを QoS-capable pathに沿って送る準備ができることを知る。

各routerでは事前にQoS parameterが設定されている。
Flow は unidirectional であることから、2つの reservationがそれぞれの報告に必要になる、packet交換が双方向である場合は。

integrated Services model の場合は、Best Effort, Guaranteed Rate and Controlled Loadが提供される
Best Effort: Qos treatmentを要求しない
Guaranteed Rate: 帯域と遅延のFlowを提供、最も厳しい要求の type of service
Controlled Load: 軽い負荷のネットワークで使われる。帯域は保証されるが、遅延は無保証。

RSVP Reservation: Flowspec と Filterspec
Flowspec: Rspec と Tspec structure から成る
Rspec (Reservation specification) は Class of Service で、予約要求を定義
Tspec (Traffic specification) は Traffic計測のための Token Bucket parameterを定義。 average rateや Burst sizeを定義
これらの structures は Receiverから上流の Senderへのrequestの一部
SenderからのRSVP path は Tspec structureが入っており、それにより経路上のrouterは自分たちのリソースが new flowの bitrateを収容できるか確認する。

Filterspec Structure は sender filterを定義
基本的に、Receiverが準備した reservationをどのリソースが使うことを許されるか、を指定。
通常は communicationは1:1であるが、複数のReceiverに送りたいとき、そして、
それを1つの Reservationをshareしたいときも考えられる。例えば、
many-to-many の conferenceなど。

3つのタイプのfilterがあり、 Fixed Filter (FF), Shared Explicit (SE) and Wildcard Filter (WF).
FF は1つのはっきりとしたreservationを利用するソースが特定されていて、Tspec structure parameter (rate, burst, etc) は single flow にだけ適用される
複数のsenderが居る場合には、receiverは1つずつ別々のreservationを確立する必要がある。

SEは複数のはっきりとしてソースが同じ reservationを使うように特定される。receiverは送信元の IP Address を reservation message 内で指定する

WF はどの senderも reservation を利用することができる。IP Addressの特定は不要。


RSVPはscalabilityに欠ける。Nの二乗のflowが必要になるからである。
しかし、receiverがmulticastの場合には、 RSVPは "reservation merging"という機能が使える。
これは複数の受信者が同じmulticast groupを共有しており、同じsenderに対して reservationを作成する場合、senderへ向かう tree に沿って、上流へ propagateする。
その他の機能拡張は aggregate reservationsが追加されたことであるが、standard RSVP仕様では実装されない。

RSVP は soft-state protocol である。つまり router は RSVP reservationを保持するが、それは routerが RSVP PATH/RESV messageを受信している間だけ。
default では all routerはmessageをバラバラに、30秒間隔で送信。もしも router が特定の RSVP state を持って居る場合、PATH と RESV messageを送りつづけることになる。
もし、PATH が上流から、RESV が下流側から重心されなくなったら、routerは持っていたstateをtimeoutさせる。

RSVP configurationは単純で、single command で RSVP bandwidth と per-flow bandwidth を定義する。 ip rsvp bandwidth
このコマンドは RSVP を enable にし、さらに利用可能にする bandwidth も指定する。
RSVPを interfaceで有効にしないと、routerはRSVP messageをその interface上では
acceptも originateもしない。


上述のコマンドのparameterをどれかでも省略すると、defaultでは interface bandwidth の75%をRSVPに使用し、同量をper-flowでも使用する。

Sunday, April 03, 2011

IP SLA

IP SLAs with SNMP traps


(1)
<< Settings >>
 ip sla reaction-configuration

<< debug snmp packet & console messages >>

*Mar  1 01:40:49.727: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:40:49.727: SNMP: V1 Trap, ent rttMonNotificationsPrefix, addr 10.10.128.129, gentrap 6, spectrap 1
 rttMonCtrlAdminTag.1 = 
 rttMonHistoryCollectionAddress.1 = 0A 0A  07 07   
 rttMonCtrlOperConnectionLostOccurred.1 = 1
*Mar  1 01:40:49.743: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:40:49.743: SNMP: V1 Trap, ent rttMonNotificationsPrefix, addr 10.10.128.129, gentrap 6, spectrap 5
 rttMonCtrlAdminTag.1 = 
 rttMonHistoryCollectionAddress.1 = 0A 0A  07 07   
 rttMonCtrl.19.1.2.1 = 8
 rttMonCtrl.19.1.10.1 = 1
 rttMonCtrl.19.1.9.1 = 1
 rttMonCtrl.19.1.5.1 = 0
 rttMonCtrl.19.1.6.1 = 0
SW2#
 rttMonEchoAdminEntry.33.1 = 00 00  00 00  
*Mar  1 01:40:49.979: SNMP: Packet sent via UDP to 10.10.128.130
*Mar  1 01:40:50.235: SNMP: Packet sent via UDP to 10.10.128.130

(2)
<< Settings >>
 ip sla reaction-configuration
 snmp-server enable traps ipsla

<< debug snmp packet & console messages >>
*Mar  1 01:37:34.715: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:37:34.719: SNMP: V1 Trap, ent rttMonNotificationsPrefix, addr 10.10.128.129, gentrap 6, spectrap 1
 rttMonCtrlAdminTag.1 = 
 rttMonHistoryCollectionAddress.1 = 0A 0A  07 07   
 rttMonCtrlOperConnectionLostOccurred.1 = 1
*Mar  1 01:37:34.731: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:37:34.731: SNMP: V1 Trap, ent rttMonNotificationsPrefix, addr 10.10.128.129, gentrap 6, spectrap 5
 rttMonCtrlAdminTag.1 = 
 rttMonHistoryCollectionAddress.1 = 0A 0A  07 07   
 rttMonCtrl.19.1.2.1 = 8
 rttMonCtrl.19.1.10.1 = 1
 rttMonCtrl.19.1.9.1 = 1
 rttMonCtrl.19.1.5.1 = 0
 rttMonCtrl.19.1.6.1 = 0
 rttMonEchoAdminEntry.33.1 = 00 00  00 00  
*Mar  1 01:37:34.971: SNMP: Packet sent via UDP to 10.10.128.130
*Mar  1 01:37:35.227: SNMP: Packet sent via UDP to 10.10.128.130

<< Comparison & Result >>
snmp packets are same as condition (1).

(3)
<< Settings >>
 ip sla reaction-configuration
 ip sla logging traps

<< debug snmp packet & console messages >>
*Mar  1 01:45:04.687: %RTT-4-OPER_CLOSS: condition occurred, entry number = 1
*Mar  1 01:45:04.703: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:45:04.703: SNMP: V1 Trap, ent rttMonNotificationsPrefix, addr 10.10.128.129, gentrap 6, spectrap 1
 rttMonCtrlAdminTag.1 = 
 rttMonHistoryCollectionAddress.1 = 0A 0A  07 07   
 rttMonCtrlOperConnectionLostOccurred.1 = 1
*Mar  1 01:45:04.719: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:45:04.719: SNMP: V1 Trap, ent rttMonNotificationsPrefix, addr 10.10.128.129, gentrap 6, spectrap 5
 rttMonCtrlAdminTag.1 = 
 rttMonHistoryCollectionAddress.1 = 0A 0A  07 07   
 rttMonCtrl.19.1.2.1 = 8
 rttMonCtrl.19.1.10.1 = 1
 rttMonCtrl.19.1.9.1 = 1
 rttMonCtrl.19.1.5.1 = 0
 rttMonCtrl.19.1.6.1 = 0
 rttMonEchoAdminEntry.33.1 = 00 00  00 00  
*Mar  1 01:45:04.739: %RTT-3-IPSLATHRESHOLD: IP SLAs(1): Threshold Occurred for connectionLoss
SW2#
*Mar  1 01:45:04.955: SNMP: Packet sent via UDP to 10.10.128.130
*Mar  1 01:45:05.211: SNMP: Packet sent via UDP to 10.10.128.130

<< Comparison & Result >>
new 2 messages appear
*Mar  1 01:45:04.687: %RTT-4-OPER_CLOSS: condition occurred, entry number = 1
*Mar  1 01:45:04.739: %RTT-3-IPSLATHRESHOLD: IP SLAs(1): Threshold Occurred for connectionLoss

when it's recovered
*Mar  1 01:49:04.687: %RTT-4-OPER_CLOSS: condition cleared, entry number = 1   
*Mar  1 01:49:04.735: %RTT-3-IPSLATHRESHOLD: IP SLAs(1): Threshold Cleared for connectionLoss


(4)
<< Settings >>
 ip sla reaction-configuration
 snmp-server enable traps syslog

<< debug snmp packet & console messages >>
same as condition (2)

<< Comparison & Result >>
same as condition (2)

(5)
<< Settings >>
 ip sla reaction-configuration
 ip sla logging traps
 snmp-server enable traps syslog

** All of 3 commands above are required.



<< debug snmp packet & console messages >>
*Mar  1 01:55:04.687: %RTT-4-OPER_CLOSS: condition occurred, entry number = 1
*Mar  1 01:55:04.723: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:55:04.727: SNMP: V1 Trap, ent rttMonNotificationsPrefix, addr 10.10.128.129, gentrap 6, spectrap 1
 rttMonCtrlAdminTag.1 = 
 rttMonHistoryCollectionAddress.1 = 0A 0A  07 07   
 rttMonCtrlOperConnectionLostOccurred.1 = 1
*Mar  1 01:55:04.747: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:55:04.747: SNMP: V1 Trap, ent rttMonNotificationsPrefix, addr 10.10.128.129, gentrap 6, spectrap 5
 rttMonCtrlAdminTag.1 = 
 rttMonHistoryCollectionAddress.1 = 0A 0A  07 07   
 rttMonCtrl.19.1.2.1 = 8
 rttMonCtrl.19.1.10.1 = 1
 rttMonCtrl.19.1.9.1 = 1
 rttMonCtrl.19.1.5.1 = 0
 rttMonCtrl.19.1.6.1 = 0
 rttMonEchoAdminEntry.33.1 = 00 00  00 00  
*Mar  1 01:55:04.767: %RTT-3-IPSLATHRESHOLD: IP SLAs(1): Threshold Occurred for connectionLoss
*Mar  1 01:55:04.775: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:55:04.775: SNMP: V1 Trap, ent ciscoSyslogMIB.2, addr 10.10.128.129, gentrap 6, spectrap 1
 clogHistoryEntry.2.15 = RTT
 clogHistoryEntry.3.15 = 5
 clogHistoryEntry.4.15 = OPER_CLOSS
 clogHistoryEntry.5.15 = condition occurred, entry number = 1
 clogHistoryEntry.6.15 = 690469
*Mar  1 01:55:04.791: SNMP: Queuing packet to 10.10.128.130
*Mar  1 01:55:04.791: SNMP: V1 Trap, ent ciscoSyslogMIB.2, addr 10.10.128.129, gentrap 6, spectrap 1
 clogHistoryEntry.2.16 = RTT
 clogHistoryEntry.3.16 = 4
 clogHistoryEntry.4.16 = IPSLATHRESHOLD
 clogHistoryEntry.5.16 = IP SLAs(1): Threshold Occurred for connectionLoss
 clogHistoryEntry.6.16 = 690476
*Mar  1 01:55:04.979: SNMP: Packet sent via UDP to 10.10.128.130
*Mar  1 01:55:05.235: SNMP: Packet sent via UDP to 10.10.128.130
*Mar  1 01:55:05.491: SNMP: Packet sent via UDP to 10.10.128.130
*Mar  1 01:55:05.747: SNMP: Packet sent via UDP to 10.10.128.130


<< Comparison & Result >>
Configuration below at SW2 is required.

## SW2 (Trap sendor) ##
ip sla logging traps
ip sla 1
 tcp-connect 10.10.7.7 5000 source-ip 10.10.8.8
 tos 96
 timeout 1000
 threshold 3000
 frequency 15
ip sla reaction-configuration 1 react connectionLoss threshold-type consecutive 1 action-type trapOnly
ip sla schedule 1 start-time now
snmp-server enable traps syslog
snmp-server host 10.10.128.130 public

## SW1 (Trap Receiver) ##
ip sla responder
ip sla responder tcp-connect ipaddress 10.10.7.7 port 5000