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
今回は、下記のようにファイルを作成してみました。
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
つづく。