vm.gowatana.jp

NEOにほんごVMware(仮)

VCF 5.2.1 で NSX Edge Cluster をデプロイしてみる。(BGP あり)Part-01:FRR BGP Router の準備

VMware Cloud Foundation(VCF)5.2.1 で、SDDC Manager から BGP を利用する NSX Edge クラスタを展開してみます。今回は、準備として、FRR による BGP ルータを構築します。

今回の内容です。

 

今回の環境

VCF 5.2.1 の Management Workload Domain を、下記のような手順で構築してあります。ただし、今回は標準アーキテクチャです。

 

今回の BGP ルータでは、FRRouting(FRR)を利用します。ちなみに、FRR は NSX の BGP 実装でも利用されています。FRR の BGP 設定についてのドキュメントは、下記のあたりです。

 

一連の投稿で、下記の赤枠の部分を構築します。図中の「Ex GW」に FRR をインストールして、BGP スピーカーとして設定します。

 

1. ルータ用 Linux の準備

VCF 環境と外部を接続するルータとして、Linux(CentOS Stream 8)を利用しています。

[root@vcf-gw-01 ~]# cat /etc/centos-release
CentOS Stream release 8

 

NSX Edge とピアリングする予定のインターフェースには、下記のように IP アドレスを設定してあります。VLAN は、この Linux を接続するスイッチで終端してあります。

 

192.168.76.1/24 のインターフェイスです。

[root@vcf-gw-01 ~]# ip addr show dev ens162
9: ens162: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:50:56:91:9c:9f brd ff:ff:ff:ff:ff:ff
    altname enp5s0
    inet 192.168.76.1/24 brd 192.168.76.255 scope global noprefixroute ens162
       valid_lft forever preferred_lft forever

 

192.168.77.1/24 のインターフェイスです。

[root@vcf-gw-01 ~]# ip addr show dev ens194
10: ens194: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:50:56:91:f2:a9 brd ff:ff:ff:ff:ff:ff
    altname enp13s0
    inet 192.168.77.1/24 brd 192.168.77.255 scope global noprefixroute ens194
       valid_lft forever preferred_lft forever

 

Linux マシンをルータとして利用するため、IP 転送を有効化してあります。

[root@vcf-gw-01 ~]# cat /etc/sysctl.d/ip_forward.conf
net.ipv4.ip_forward=1
[root@vcf-gw-01 ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

 

firewall-cmd で、デフォルトでインターフェイスが所属する public ゾーンの通信をすべて許可します。

[root@vcf-gw-01 ~]# firewall-cmd --permanent --zone=public --set-target=ACCEPT
success
[root@vcf-gw-01 ~]# firewall-cmd --reload
success

 

このあとの手順で、このマシンに FRR をインストールして、BGP スピーカーにします。また、一般的な VCF 環境では BGP ルータは2台以上設置すると思いますが、今回はラボ環境なので1台のみです。

 

2. 外部(インターネット)接続用 SNAT の設定

BGP の設定とは直接関係ありませんが、このルータでは、インターネット接続のために SNAT を設定してあります。

インターネットへの SNAT 通信には、ens192 インターフェイスを使用します。

ens192 のみ、snat-zone というゾーンに変更します。

[root@vcf-gw-01 ~]# firewall-cmd --new-zone=snat-zone --permanent
success
[root@vcf-gw-01 ~]# firewall-cmd --zone=snat-zone --change-interface=ens192 --permanent
The interface is under control of NetworkManager, setting zone to 'snat-zone'.
success

 

firewall-cmd で設定をリロードします。

[root@vcf-gw-01 ~]# firewall-cmd --reload
success

 

下記のように、ens192 のみ snat-zone になります。

[root@vcf-gw-01 ~]# firewall-cmd --get-active-zone
public
  interfaces: ens226.81 ens226.80 ens226.79 ens226.78 ens257 ens256 ens225 ens224 ens194 ens193 ens162 ens161
snat-zone
  interfaces: ens192

 

SNAT(masquerade)は、デフォルトでは無効です。

[root@vcf-gw-01 ~]# firewall-cmd --zone=snat-zone --add-masquerade --permanent
success
[root@vcf-gw-01 ~]# firewall-cmd --reload
success

 

これで、SNAT が有効になりました。

[root@vcf-gw-01 ~]# firewall-cmd --zone=public --query-masquerade
yes

 

3. BGP ルータの構築

Linux マシンに FRR をインストールして、BGP スピーカーとして設定します。dnf で、FRR(frr)の RPM をインストールします。

[root@vcf-gw-01 ~]# dnf install -y frr

 

今回の frr パッケージのバージョンです。

[root@vcf-gw-01 ~]# rpm -q frr
frr-7.5.1-22.el8.x86_64

 

frr で BGP を有効化するため、/etc/frr/daemons ファイルを設定変更します。変更箇所は、bgpd=yes の1行のみです。この設定により、frr サービスから bgpd が起動されます。

[root@vcf-gw-01 ~]# cp /etc/frr/daemons ./daemons.backup
[root@vcf-gw-01 ~]# vi /etc/frr/daemons
[root@vcf-gw-01 ~]# diff ./daemons.backup /etc/frr/daemons
17c17
< bgpd=no
---
> bgpd=yes

 

BGP の設定のため、/etc/frr/frr.conf ファイルを作成します。

[root@vcf-gw-01 ~]# vi /etc/frr/frr.conf

 

今回は、下記のようにファイルを作成してみました。

gist.github.com

 

frr のサービスを有効化して、起動します。

[root@vcf-gw-01 ~]# systemctl start frr
[root@vcf-gw-01 ~]# systemctl enable frr
Created symlink /etc/systemd/system/multi-user.target.wants/frr.service → /usr/lib/systemd/system/frr.service.

 

軌道に成功すると、下記のように BGP のサマリが表示されます。この時点では NSX Edge が存在しないので、ピアリングはされていません。うまく FRR / bgpd が起動できない場合は、frr.conf を修正して frr を再起動(systemctl restart frr)し、「systemctl status frr」コマンドなどでサービスの状態を確認します。

[root@vcf-gw-01 ~]# vtysh -c "show ip bgp summary"

IPv4 Unicast Summary:
BGP router identifier 192.168.76.1, local AS number 65001 vrf-id 0
BGP table version 2
RIB entries 3, using 576 bytes of memory
Peers 4, using 85 KiB of memory

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt
192.168.76.16   4      65002         0         0        0    0    0    never       Active        0
192.168.76.17   4      65002         0         0        0    0    0    never       Active        0
192.168.77.16   4      65002         0         0        0    0    0    never       Active        0
192.168.77.17   4      65002         0         0        0    0    0    never       Active        0

Total number of neighbors 4

 

つづく。