🛣️
[個人用]Azure Route Server+NVAの検証環境の準備手順とメモ
Azure Route Serverとは
ARSはBGPを喋れるNVAピアを張ることで、NVAからの経路を受け取ってAzure側のリソースに経路を伝搬したり、逆にNVAにARSに広報されてくる経路を広報することができるサービス。
NVA-ARSの検証環境の立て方
完成する環境のイメージ
S2SVPN環境の用意
- BGPを有効化したS2SVPN環境を1つ用意しておく
- こちらのBicepを展開すれば30minくらいで環境が出来上がり
- ↑の解説
NVA用UbuntuVM作成
- 先述のS2S環境のオンプレ側に1台Ubuntu VMを作成
Azure Route Server作成
-
Azure Route Serverは
RouteServerSubnet
という専用のサブネットが必要なため、オンプレ側VNETにサブネットを追加 -
ここでは
10.200.2.0/24
とする -
VPNGatewayをActive/Activeにしないとエラーになるので、VPNGatewayの構成を変更しておく
-
また、ARSのデプロイが完了したら[ブランチ間]を[有効]としておく
NVAとARSの設定
- こちらの記事を参考にNVAを構成する
- FRRoutingというミドルウェアでNVAを構成。Ciscoライクなコマンドで設定できる。
-
sudo vtysh
でConfigに入り、あとはもろもろ設定する。
AzureAdmin@vm-ubuntu-onp-frr:~$ sudo vtysh
Hello, this is FRRouting (version 8.5.2).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
vm-ubuntu-onp-frr#
- 先述のS2S環境ではこんな感じになるはず。
ip route 10.100.2.0/24 10.100.1.1
!
router bgp 65001
neighbor 10.100.2.4 remote-as 65515
neighbor 10.100.2.4 ebgp-multihop 255
neighbor 10.100.2.5 remote-as 65515
neighbor 10.100.2.5 ebgp-multihop 255
!
address-family ipv4 unicast
neighbor 10.100.2.4 soft-reconfiguration inbound
neighbor 10.100.2.4 route-map rmap-bogon-asns in
neighbor 10.100.2.4 route-map rmap-azure-asns out
neighbor 10.100.2.5 soft-reconfiguration inbound
neighbor 10.100.2.5 route-map rmap-bogon-asns in
neighbor 10.100.2.5 route-map rmap-azure-asns out
exit-address-family
exit
!
bgp as-path access-list azure-asns seq 5 permit _65515_
bgp as-path access-list bogon-asns seq 5 permit _0_
bgp as-path access-list bogon-asns seq 10 permit _23456_
bgp as-path access-list bogon-asns seq 15 permit _1310[0-6][0-9]_|_13107[0-1]_
bgp as-path access-list bogon-asns seq 20 deny _65515_
bgp as-path access-list bogon-asns seq 25 permit ^65
!
route-map rmap-bogon-asns deny 5
match as-path bogon-asns
exit
!
route-map rmap-bogon-asns permit 10
exit
!
route-map rmap-azure-asns deny 5
match as-path azure-asns
exit
!
route-map rmap-azure-asns permit 10
exit
!
ARS側でピアにNVAを追加
- Azure Portalから追加する
BGPの確立を確認
-
show ip bgp nei x.x.x.x
でEstablished
を確認
vm-ubuntu-onp-frr# show ip bgp nei 10.100.2.4
BGP neighbor is 10.100.2.4, remote AS 65515, local AS 65001, external link
Local Role: undefined
Remote Role: undefined
BGP version 4, remote router ID 10.100.2.4, local router ID 10.100.1.5
BGP state = Established, up for 00:03:20
Last read 00:00:50, Last write 00:00:20
Hold time is 180 seconds, keepalive interval is 60 seconds
Configured hold time is 180 seconds, keepalive interval is 60 seconds
Configured conditional advertisements interval is 60 seconds
- サマリーも確認
vm-ubuntu-onp-frr# show ip bgp sum
IPv4 Unicast Summary (VRF default):
BGP router identifier 10.100.1.5, local AS number 65001 vrf-id 0
BGP table version 2
RIB entries 1, using 192 bytes of memory
Peers 2, using 1449 KiB of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
10.100.2.4 4 65515 17 53 0 0 0 00:12:59 1 0 N/A
10.100.2.5 4 65515 18 58 0 0 0 00:12:59 1 0 N/A
Total number of neighbors 2
動作確認
NVA > Cloud VMへのPing
- 通った
AzureAdmin@vm-ubuntu-onp-frr:~$ ping 10.0.1.4
PING 10.0.1.4 (10.0.1.4) 56(84) bytes of data.
64 bytes from 10.0.1.4: icmp_seq=1 ttl=64 time=6.01 ms
64 bytes from 10.0.1.4: icmp_seq=2 ttl=64 time=6.20 ms
64 bytes from 10.0.1.4: icmp_seq=3 ttl=64 time=7.03 ms
^C
--- 10.0.1.4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 6.013/6.415/7.034/0.444 ms
ARSにおけるブランチ間接続の有効/無効の違い
- 前述のNVA > Cloud VMへの疎通確認だけでは、単にVPNGWのBGPによって経路が見えているだけの可能性もある
- よって、ブランチ間接続のオンオフにより挙動を確認する
ブランチ間:無効
- NVA > Cloud VMにPing通らない
- 受け取っている経路を見ると、クラウド側の経路が来ていない
AzureAdmin@vm-ubuntu-onp-frr:~$ sudo vtysh
Hello, this is FRRouting (version 8.5.2).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
vm-ubuntu-onp-frr# show ip bgp nei 10.100.2.4 received-routes
BGP table version is 5, local router ID is 10.100.1.5, vrf id 0
Default local pref 100, local AS 65001
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.100.0.0/16 10.100.2.4 0 65515 i
- ただ、Azure Portal側では受け取っているように見える
ブランチ間:有効
- 受け取っている経路を見ると、確かにクラウド側の経路が来ている
vm-ubuntu-onp-frr# show ip bgp nei 10.100.2.4 received-routes
BGP table version is 7, local router ID is 10.100.1.5, vrf id 0
Default local pref 100, local AS 65001
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.0.0.0/16 10.100.2.4 0 65515 65020 65010 i
*> 10.100.0.0/16 10.100.2.4 0 65515 i
- Pingも通る
vm-ubuntu-onp-frr# ping 10.0.1.4
PING 10.0.1.4 (10.0.1.4) 56(84) bytes of data.
64 bytes from 10.0.1.4: icmp_seq=1 ttl=64 time=7.17 ms
64 bytes from 10.0.1.4: icmp_seq=2 ttl=64 time=7.03 ms
64 bytes from 10.0.1.4: icmp_seq=3 ttl=64 time=6.15 ms
^C
--- 10.0.1.4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 6.145/6.779/7.167/0.452 ms
- Azure上では変わらず見える
NVAとしてみている経路と、Azure側が認識している経路にギャップがあるので注意する必要があるということになる
NVAではないVMの挙動を見る
-
[ブランチ間:無効]の状態で、NVAではない(BGPでARSとピアを張っていない)VM(10.100.1.4)はクラウド側のVM(10.0.1.4)と疎通できるのかということ
-
ARSが存在するだけで周りのルーティングに影響を及ぼすのかを知りたい
- ARSが存在しなければVPNGWで設定したBGPによって経路が見えるはず
-
Azure Portal上での経路としては普通に見えている
-
Ping試す...到達できない
AzureAdmin@ubuntu-onp:~$ ping 10.0.1.4
PING 10.0.1.4 (10.0.1.4) 56(84) bytes of data.
^C
--- 10.0.1.4 ping statistics ---
27 packets transmitted, 0 received, 100% packet loss, time 26628ms
おわり
- FRRoutingとARSの間でBGPを張ったところで、FRRoutingからARSに経路を広報しないとあまり意味はない(検証という意味だと、ARSからどんな経路を受け取っているか確認できるので意義はあるのだが)
- その辺の話はこちらの記事が参考になるはず
Discussion