katorea memo

いろいろ

MPLS-TE (RSVP-TE) その1

今回からMPLS-TEに挑戦。
まずはRSVPの理解から。

構成は以下。
f:id:gemunopedy:20170611135855p:plain

MPLS-TEは基本的にこの構成で構築を進めていく予定。
トラフィックの流れを分かりやすくしようと思って、pc1とpc2をr1、r8配下にiperf3を使える形で準備した。
今回は出番ないので停止状態。

後、r2配下にwinがあるけど、これはトラフィック状況を分かりやすくしようと思ってmrtgとか使って確認しようかなと思って準備した。
こちらは、mrtgの構築に躓いて放置。いづれ準備する予定。
ネットワーク系は楽しくトラブルシューティング出来るけど、サーバ系は本当にトラブルシューティングのやる気が全くでない。
ここら辺は何とかしたい。本件と全く関係ないけど。

実は構成も当初r7をxrvで構築して、同時にIOSとXRのMPLS-TEを理解しようと思ってたけど、XRでのMPLS-TEがどうしてもうまくいかなかったので後回し。interface te-0はup/upだが、エンドエンドでの疎通が取れない状態。
ここらへんはIOSで仕組みを理解してから取り組もう。

今回はまず、configの中身を特に理解せず書かれている通りにやって構築できることを確かめる。
なので設定が意味するところの理解は次回。

r2(PE)のconfig

hostname r2
!
vrf definition a
 rd 1:1
 !
 address-family ipv4
  route-target export 1:1
  route-target import 1:1
 exit-address-family
!
ip cef
no ipv6 cef
!
mpls traffic-eng tunnels ※1
!
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ip ospf 1 area 0
!
interface Tunnel0 ※4
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 7.7.7.7
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng priority 3 3
 tunnel mpls traffic-eng bandwidth 3000
 tunnel mpls traffic-eng path-option 1 explicit name explicit
 no routing dynamic
!
interface Ethernet0/0
 vrf forwarding a
 ip address 192.168.12.2 255.255.255.0
!
interface Ethernet0/1
 ip address 192.168.23.2 255.255.255.0
 ip ospf 1 area 0
 mpls traffic-eng tunnels ※1
 ip rsvp bandwidth ※2
!
interface Ethernet0/3
 ip address 192.168.25.2 255.255.255.0
 ip ospf 1 area 0
 ip ospf cost 100
 mpls traffic-eng tunnels 
 ip rsvp bandwidth
!
router ospf 1
 mpls traffic-eng router-id Loopback0 ※3
 mpls traffic-eng area 0 ※3
!
router bgp 2
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 7.7.7.7 remote-as 2
 neighbor 7.7.7.7 update-source Loopback0
 !
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 7.7.7.7 activate
  neighbor 7.7.7.7 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf a
  neighbor 192.168.12.1 remote-as 1
  neighbor 192.168.12.1 activate
 exit-address-family
!
ip explicit-path name explicit enable ※4
 next-address 5.5.5.5
 next-address 6.6.6.6
 next-address 7.7.7.7

MPLS-TE特有のconfigは赤文字。
MPLS網のIGPはOSPFで構築。
対向のr7でも同様の設定を行う。


※1 config
mpls-teを有効するためのconfig。
「mpls traffic-eng tunnels」はグローバルとインターフェスに設定する。
というか、グローバルに設定がないとインターフェースに設定ができない。

※2 config
rsvpで帯域を予約するインターフェスに「ip rsvp」を設定。

※3 config
MPLE-TE情報をIGPで伝達させるための設定。OSPFはType10のLSAを使用して伝達。
f:id:gemunopedy:20170611142608p:plain

※4 config
tunnelインターフェスの設定。
「tunnel mpls traffic-eng autoroute announce」を設定するとIGP routing table上で、
tunnel dstの7.7.7.7宛のnexthopがtunnelインターフェースに変わる。
何故この設定が必要なのかはまだ理解できていない。今度。

pathの設定はdynamicとexplicitの二パターンある。今回はexplicitで設定。

r3(P)のconfig

hostname r3
!
ip cef
no ipv6 cef
!
mpls traffic-eng tunnels
!
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
 ip ospf 1 area 0
!
interface Ethernet0/0
 ip address 192.168.34.3 255.255.255.0
 ip ospf 1 area 0
 mpls traffic-eng tunnels
 ip rsvp bandwidth
!
interface Ethernet0/1
 ip address 192.168.23.3 255.255.255.0
 ip ospf 1 area 0
 mpls traffic-eng tunnels
 ip rsvp bandwidth
!
interface Ethernet0/2
 ip address 192.168.35.3 255.255.255.0
 ip ospf 1 area 0
 mpls traffic-eng tunnels
 ip rsvp bandwidth
!
interface Ethernet0/3
 ip address 192.168.36.3 255.255.255.0
 ip ospf 1 area 0
 mpls traffic-eng tunnels
 ip rsvp bandwidth
!
router ospf 1
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0

r2のe0/3(r5向け)にcost設定をしているのでMPLS自体は、
r2→r3→r4→r7の上ルートを通る設定。

r2#sh ip route

      2.0.0.0/32 is subnetted, 1 subnets
C        2.2.2.2 is directly connected, Loopback0
      3.0.0.0/32 is subnetted, 1 subnets
O        3.3.3.3 [110/11] via 192.168.23.3, 00:13:54, Ethernet0/1
      4.0.0.0/32 is subnetted, 1 subnets
O        4.4.4.4 [110/21] via 192.168.23.3, 00:13:54, Ethernet0/1
      5.0.0.0/32 is subnetted, 1 subnets
O        5.5.5.5 [110/21] via 192.168.23.3, 00:13:54, Ethernet0/1
      6.0.0.0/32 is subnetted, 1 subnets
O        6.6.6.6 [110/21] via 192.168.23.3, 00:13:54, Ethernet0/1
      7.0.0.0/32 is subnetted, 1 subnets
O        7.7.7.7 [110/31] via 7.7.7.7, 00:04:40, Tunnel0

だが、MPLS-TEでは、explicitでr2→r5→r6→r7と設定したので、
以下の通り下のルートで通信が行われる

r1#traceroute 8.8.8.8 so 1.1.1.1
Type escape sequence to abort.
Tracing the route to 8.8.8.8
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.12.2 3 msec 2 msec 0 msec
  2 192.168.25.5 [MPLS: Labels 16/18 Exp 0] 4 msec 4 msec 4 msec
  3 192.168.56.6 [MPLS: Labels 16/18 Exp 0] 4 msec 6 msec 6 msec
  4 192.168.78.7 [MPLS: Label 18 Exp 0] 5 msec 4 msec 9 msec
  5 192.168.78.8 5 msec 6 msec *

ということで書かれている通りに設定すれば最小限の構築は可能だった。あたりまえだけど。
XRは書かれた通りにやったのにうまくいかなかったけど

showコマンドらへんの確認も次回実施予定。