Inter-AS mVPN Option B Pattern-2 : 各AS内でStaticRPを設定して、RPFの解決にはBGPを使用

#まず最初に
この検証内容は、2011年に MPLS VPN についてラボで確認した時の結果をローカルのwikiサーバーに保存していました。その後、誰かの参考になったのかどうかは分からないのですが、もうwikiサーバーも動いていませんので、誰もこの内容を見ることもないと思います。でも、最近になって自分でも見直すことがありましたので、少しでも参考になればと思い、こちらにアップすることにしました。

#Topology
##Figure-1
![figure-1.jpg](https://qiita-image-store.s3.amazonaws.com/0/228223/76f3c34c-9644-0154-d6ba-e41a78d55c12.jpeg)

##Figure-2
- 各AS内のルーティング（IGP）は、AS間で交換しない。そのため、RPFチェックができない
- RPFはBGP multicastで解決する。配布するアドレスはPEのloopbackのみ
- MSDPはRP間でpeerにする必要があるため、RPに用いるLoopback0のみをBGPを経由して配布する
- VPNv4はPEとASBRのみで交換する。途中のPはnaighborを設定する必要なし

![figure-2.jpg](https://qiita-image-store.s3.amazonaws.com/0/228223/b02e1acb-94fb-d9da-136f-c1409d519dcf.jpeg)

#config

##R1
```text:config
hostname PE3A
!
ip multicast-routing 
!
mpls label range 1000 1999
mpls label protocol ldp
!
interface Loopback0
 ip address 10.1.1.3 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 192.168.143.3 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Ethernet1/0
 ip address 172.20.34.3 255.255.255.0
 ip pim sparse-mode
 mpls bgp forwarding
!
router isis
 net 49.0000.0000.3333.00
!
router bgp 1
 no bgp default ipv4-unicast
 no bgp default route-target filter
 bgp log-neighbor-changes
 neighbor 10.1.1.1 remote-as 1
 neighbor 10.1.1.1 update-source Loopback0
 neighbor 10.1.1.2 remote-as 1
 neighbor 10.1.1.2 update-source Loopback0
 neighbor 10.1.1.4 remote-as 1
 neighbor 10.1.1.4 update-source Loopback0
 neighbor 172.20.34.4 remote-as 2
 !
 address-family ipv4
  no synchronization
  network 10.1.1.3 mask 255.255.255.255
  neighbor 172.20.34.4 activate
  no auto-summary
 exit-address-family
 !
 address-family ipv4 multicast
  network 10.1.1.1 mask 255.255.255.255
  network 10.1.1.2 mask 255.255.255.255
  neighbor 10.1.1.1 activate
  neighbor 10.1.1.1 route-reflector-client
  neighbor 10.1.1.1 next-hop-self
  neighbor 10.1.1.2 activate
  neighbor 10.1.1.2 route-reflector-client
  neighbor 10.1.1.2 next-hop-self
  neighbor 10.1.1.4 activate
  neighbor 10.1.1.4 route-reflector-client
  neighbor 10.1.1.4 next-hop-self
  neighbor 172.20.34.4 activate
  no auto-summary
 exit-address-family
 !
 address-family vpnv4
  neighbor 10.1.1.1 activate
  neighbor 10.1.1.1 send-community extended
  neighbor 10.1.1.1 route-reflector-client
  neighbor 10.1.1.1 next-hop-self
  neighbor 10.1.1.2 activate
  neighbor 10.1.1.2 send-community extended
  neighbor 10.1.1.2 route-reflector-client
  neighbor 10.1.1.2 next-hop-self
  neighbor 172.20.34.4 activate
  neighbor 172.20.34.4 send-community extended
 exit-address-family
!
ip pim rp-address 10.1.1.3
ip msdp peer 10.2.2.3 connect-source Loopback0
!
```

##R2
```text:config
hostname PE3B
!
ip multicast-routing 
!
mpls label range 2000 2999
mpls label protocol ldp
!
interface Loopback0
 ip address 10.2.2.3 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 172.16.43.3 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Ethernet1/0
 ip address 172.20.34.4 255.255.255.0
 ip pim sparse-mode
 mpls bgp forwarding
!
router isis
 net 49.0000.0000.3333.00
!
router bgp 2
 no bgp default ipv4-unicast
 no bgp default route-target filter
 bgp log-neighbor-changes
 neighbor 10.2.2.1 remote-as 2
 neighbor 10.2.2.1 update-source Loopback0
 neighbor 10.2.2.2 remote-as 2
 neighbor 10.2.2.2 update-source Loopback0
 neighbor 10.2.2.4 remote-as 2
 neighbor 10.2.2.4 update-source Loopback0
 neighbor 172.20.34.3 remote-as 1
 !
 address-family ipv4
  no synchronization
  network 10.2.2.3 mask 255.255.255.255
  neighbor 172.20.34.3 activate
  no auto-summary
 exit-address-family
 !
 address-family ipv4 multicast
  network 10.2.2.1 mask 255.255.255.255
  network 10.2.2.2 mask 255.255.255.255
  neighbor 10.2.2.1 activate
  neighbor 10.2.2.1 route-reflector-client
  neighbor 10.2.2.1 next-hop-self
  neighbor 10.2.2.2 activate
  neighbor 10.2.2.2 route-reflector-client
  neighbor 10.2.2.2 next-hop-self
  neighbor 10.2.2.4 activate
  neighbor 10.2.2.4 route-reflector-client
  neighbor 10.2.2.4 next-hop-self
  neighbor 172.20.34.3 activate
  no auto-summary
 exit-address-family
 !
 address-family vpnv4
  neighbor 10.2.2.1 activate
  neighbor 10.2.2.1 send-community extended
  neighbor 10.2.2.1 route-reflector-client
  neighbor 10.2.2.1 next-hop-self
  neighbor 10.2.2.2 activate
  neighbor 10.2.2.2 send-community extended
  neighbor 10.2.2.2 route-reflector-client
  neighbor 10.2.2.2 next-hop-self
  neighbor 172.20.34.3 activate
  neighbor 172.20.34.3 send-community extended
 exit-address-family
!
ip pim rp-address 10.2.2.3
ip msdp peer 10.1.1.3 connect-source Loopback0
!
```

##R3
```text:config
hostname P1A
!
ip multicast-routing 
!
mpls label range 3000 3999
mpls label protocol ldp
!
interface Loopback0
 ip address 10.1.1.4 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 192.168.143.5 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Ethernet1/0
 ip address 172.19.142.5 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Ethernet2/0
 ip address 172.30.41.5 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
router isis
 net 49.0000.0000.4444.00
!
router bgp 1
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 10.1.1.3 remote-as 1
 neighbor 10.1.1.3 update-source Loopback0
 !
 address-family ipv4
  no synchronization
  no auto-summary
 exit-address-family
 !
 address-family ipv4 multicast
  neighbor 10.1.1.3 activate
  no auto-summary
 exit-address-family
!
ip pim rp-address 10.1.1.3
!
```

##R4
```text:config
hostname P1B
!
ip multicast-routing 
!
mpls label range 4000 4999
mpls label protocol ldp
!
interface Loopback0
 ip address 10.2.2.4 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 172.16.43.5 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Ethernet1/0
 ip address 172.19.42.5 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Ethernet2/0
 ip address 172.30.141.5 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
router isis
 net 49.0000.0000.4444.00
!
router bgp 2
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 10.2.2.3 remote-as 2
 neighbor 10.2.2.3 update-source Loopback0
 !
 address-family ipv4
  no synchronization
  no auto-summary
 exit-address-family
 !
 address-family ipv4 multicast
  neighbor 10.2.2.3 activate
  no auto-summary
 exit-address-family
!
ip pim rp-address 10.2.2.3
!
```

##R5
```text:config
hostname PE2A
!
ip vrf blue
 rd 55:1111
 route-target export 55:1111
 route-target import 55:1111
 mdt default 232.1.1.1
!
ip multicast-routing 
ip multicast-routing vrf blue 
!
mpls label range 5000 5999
mpls label protocol ldp
!
interface Loopback0
 ip address 10.1.1.2 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 172.19.142.2 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Serial1/0
 ip vrf forwarding blue
 ip address 172.17.12.2 255.255.255.0
 ip pim sparse-mode
 no fair-queue
 serial restart-delay 0
!
router isis
 net 49.0000.0000.2222.00
!
router rip
 !
 address-family ipv4 vrf blue
  redistribute bgp 1 metric 1
  network 172.17.0.0
  no auto-summary
  version 2
 exit-address-family
!
router bgp 1
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 10.1.1.3 remote-as 1
 neighbor 10.1.1.3 update-source Loopback0
 !
 address-family ipv4
  no synchronization
  no auto-summary
 exit-address-family
 !
 address-family ipv4 multicast
  neighbor 10.1.1.3 activate
  no auto-summary
 exit-address-family
 !
 address-family vpnv4
  neighbor 10.1.1.3 activate
  neighbor 10.1.1.3 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf blue
  no synchronization
  redistribute rip metric 1
 exit-address-family
!
ip pim rp-address 10.1.1.3
ip pim vrf blue bsr-candidate Serial1/0 0
ip pim vrf blue rp-candidate Serial1/0 group-list 1
!
access-list 1 permit 239.1.1.1
!
```

##R6
```text:config
hostname PE2B
!
ip vrf blue
 rd 55:1111
 route-target export 55:1111
 route-target import 55:1111
 mdt default 232.1.1.1
!
ip multicast-routing 
ip multicast-routing vrf blue 
!
mpls label range 6000 6999
mpls label protocol ldp
!
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 172.19.42.2 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Serial1/0
 ip vrf forwarding blue
 ip address 172.18.22.2 255.255.255.0
 ip pim sparse-mode
 no fair-queue
 serial restart-delay 0
!
router isis
 net 49.0000.0000.2222.00
!
router rip
 !
 address-family ipv4 vrf blue
  redistribute bgp 2 metric 1
  network 172.18.0.0
  no auto-summary
  version 2
 exit-address-family
!
router bgp 2
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 10.2.2.3 remote-as 2
 neighbor 10.2.2.3 update-source Loopback0
 !
 address-family ipv4
  no synchronization
  no auto-summary
 exit-address-family
 !
 address-family ipv4 multicast
  neighbor 10.2.2.3 activate
  no auto-summary
 exit-address-family
 !
 address-family vpnv4
  neighbor 10.2.2.3 activate
  neighbor 10.2.2.3 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf blue
  no synchronization
  redistribute rip metric 1
 exit-address-family
!
ip pim rp-address 10.2.2.3
ip pim vrf blue bsr-candidate Serial1/0 0
ip pim vrf blue rp-candidate Serial1/0 group-list 1
!
access-list 1 permit 239.2.2.2
!
```

##R7
```text:config
hostname PE1A
!
ip vrf green
 rd 55:2222
 route-target export 55:2222
 route-target import 55:2222
 mdt default 232.2.2.2
!
ip multicast-routing 
ip multicast-routing vrf green 
!
mpls label range 7000 7999
mpls label protocol ldp
!
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 172.30.41.1 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Serial1/0
 ip vrf forwarding green
 ip address 172.25.11.1 255.255.255.0
 ip pim dense-mode
 no fair-queue
 serial restart-delay 0
!
router isis
 net 49.0000.0000.1111.00
!
router rip
 !
 address-family ipv4 vrf green
  redistribute bgp 1 metric 1
  network 172.25.0.0
  no auto-summary
  version 2
 exit-address-family
!
router bgp 1
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 10.1.1.3 remote-as 1
 neighbor 10.1.1.3 update-source Loopback0
 !
 address-family ipv4
  no synchronization
  no auto-summary
 exit-address-family
 !
 address-family ipv4 multicast
  neighbor 10.1.1.3 activate
  no auto-summary
 exit-address-family
 !
 address-family vpnv4
  neighbor 10.1.1.3 activate
  neighbor 10.1.1.3 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf green
  no synchronization
  redistribute rip
 exit-address-family
!
ip pim rp-address 10.1.1.3
!
```

##R8
```text:config
hostname PE1B
!
ip vrf green
 rd 55:2222
 route-target export 55:2222
 route-target import 55:2222
 mdt default 232.2.2.2
!
ip multicast-routing 
ip multicast-routing vrf green 
!
mpls label range 8000 8999
mpls label protocol ldp
!
interface Loopback0
 ip address 10.2.2.1 255.255.255.255
 ip pim sparse-mode
 ip router isis 
!
interface Ethernet0/0
 ip address 172.30.141.1 255.255.255.0
 ip pim sparse-mode
 ip router isis 
 mpls ip
!
interface Serial1/0
 ip vrf forwarding green
 ip address 172.25.111.1 255.255.255.0
 ip pim dense-mode
 no fair-queue
 serial restart-delay 0
!
router isis
 net 49.0000.0000.1111.00
!
router rip
 !
 address-family ipv4 vrf green
  redistribute bgp 2 metric 1
  network 172.25.0.0
  no auto-summary
  version 2
 exit-address-family
!
router bgp 2
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 10.2.2.3 remote-as 2
 neighbor 10.2.2.3 update-source Loopback0
 !
 address-family ipv4
  no synchronization
  no auto-summary
 exit-address-family
 !
 address-family ipv4 multicast
  neighbor 10.2.2.3 activate
  no auto-summary
 exit-address-family
 !
 address-family vpnv4
  neighbor 10.2.2.3 activate
  neighbor 10.2.2.3 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf green
  no synchronization
  redistribute rip
 exit-address-family
!
ip pim rp-address 10.2.2.3
!
```

##R9
```text:config
hostname CE2A
!
ip multicast-routing 
!
interface Serial0/0
 ip address 172.17.12.10 255.255.255.0
 ip pim sparse-mode
 ip igmp join-group 239.1.1.1
 serial restart-delay 0
!
router rip
 version 2
 network 172.17.0.0
 no auto-summary
!
```

##R10
```text:config
hostname CE2B
!
ip multicast-routing 
!
interface Serial0/0
 ip address 172.18.22.10 255.255.255.0
 ip pim sparse-mode
 ip igmp join-group 239.2.2.2
 serial restart-delay 0
!
router rip
 version 2
 network 172.18.0.0
 no auto-summary
!
```

##R11
```text:config
hostname CE1A
!
ip multicast-routing 
!
interface Serial0/0
 ip address 172.25.11.10 255.255.255.0
 ip pim dense-mode
 ip igmp join-group 239.1.1.1
 serial restart-delay 0
!
router rip
 version 2
 network 172.25.0.0
 no auto-summary
!
```

##R12
```text:config
hostname CE1B
!
ip multicast-routing 
!
interface Serial0/0
 ip address 172.25.111.10 255.255.255.0
 ip pim dense-mode
 ip igmp join-group 239.2.2.2
 serial restart-delay 0
!
router rip
 version 2
 network 172.25.0.0
 no auto-summary
!
```