はじめに
ネットワークスペシャリスト試験(ネスペ)の令和6年(2024年)春試験午後Ⅱ問1で出題されたVXLANの構成を,VyOSとCatalystで作ってみました。
本記事で作ったのは,問題文前半の「現行の検証ネットワーク」の一部です。アンダーレイのL3ネットワークをOSPF+マルチキャスト(BUMトラフィック用)で構成し,オーバレイのL2ネットワークをVXLANで構成する方式です。
問題文の構成図
出典:IPAに掲載された過去問
今回作った構成図
問題文の構成図のうち,最低限のVXLAN動作を確認できる構成に抜粋しました。
材料
- Leaf用L3SW代わりのVyOS1.5(vyos-1.5-rolling-202405070019-amd64.iso)
- Spine用L3SW Catalyst3850(ipserviceライセンス),ヤフオクで入手(\12,100+送料\1,800)
構成の補足
- SpineのL3SW01部分もVyOSを使いたかったのですがCatalystを使いました。changineer.infoさんのサイトでも「VyOS 1.4ではマルチキャストルーティングに不具合がある」との指摘がありました。今回はVyOS1.5ですがやはりうまく動かせず,マルチキャスト構成のSpineにVyOSを使うのは現時点ではよくなさそうです。
- 「今回作った構成図」の要素は全てConfigに反映済みですが,「今回作った構成図」に載ってない設定(問題文に合わせた他のVNIやVLANなど)もあるのでご注意ください。
- VyOSはProxmox上で稼働させましたが,Proxmoxの説明は本記事では省略します。(ちなみに,LinuxBridgeをセグメント毎に作成し,VyOSの仮想NICや物理NICと関連付けしました)
- 問題文ではL3SW01とL3SW02がランデブーポイント(RP)なので,問題文に合わせるとL3SW11とL3SW31にはRPを2箇所設定しないといけないです。しかし,VyOSでは同じマルチキャストサブネットに対し複数のRPを設定できない仕様らしいのでL3SW11だけをRPとして指定しました。
設定
L3SW11(VyOS).conf
# VXLANインタフェースと,物理インタフェース(eth3)のタグVLANの関連付け
set interfaces bridge br110 member interface eth3.110
set interfaces bridge br110 member interface vxlan10010
set interfaces bridge br120 member interface eth3.120
set interfaces bridge br120 member interface vxlan10020
set interfaces bridge br130 member interface eth3.130
set interfaces bridge br130 member interface vxlan10030
# インタフェース毎にIPアドレスを設定
# MTUを1550にしたのは,VXLANパケット送出インタフェースには50Byteの
# VXLANオーバヘッド分を付与するため(設定しないと,VXLANのsource-interface
# 設定で怒られる
set interfaces ethernet eth1 address '10.1.0.2/30'
set interfaces ethernet eth1 mtu '1550'
set interfaces ethernet eth2 address '10.2.0.2/30'
set interfaces ethernet eth2 mtu '1550'
# 物理インタフェースに仮想インタフェース(=VLAN)を設定
set interfaces ethernet eth3 vif 110
set interfaces ethernet eth3 vif 120
set interfaces ethernet eth3 vif 130
# Loopbackアドレス。VyOSの場合dummyインタフェースの方が良いらしいですが
# 今回は敢えてLoopbackで。
set interfaces loopback lo address '10.0.0.11/32'
# VXLAN設定
# see https://docs.vyos.io/en/equuleus/configuration/interfaces/vxlan.html
# VNI10010の設定
# BUMトラフィック用のマルチキャストアドレス
set interfaces vxlan vxlan10010 group '239.0.0.1'
# VXLANパケットの送出元IPアドレス
set interfaces vxlan vxlan10010 source-address '10.0.0.11'
# VXLANパケットの送出元インタフェース
set interfaces vxlan vxlan10010 source-interface 'eth1'
set interfaces vxlan vxlan10010 vni '10010'
# VNI10020の設定
set interfaces vxlan vxlan10020 group '239.0.0.2'
set interfaces vxlan vxlan10020 source-address '10.0.0.11'
set interfaces vxlan vxlan10020 source-interface 'eth1'
set interfaces vxlan vxlan10020 vni '10020'
# VNI10030の設定
set interfaces vxlan vxlan10030 group '239.0.0.3'
set interfaces vxlan vxlan10030 source-address '10.0.0.11'
set interfaces vxlan vxlan10030 source-interface 'eth1'
set interfaces vxlan vxlan10030 vni '10030'
# OSPF設定
set protocols ospf area 0 network '10.1.0.0/30'
set protocols ospf area 0 network '10.0.0.11/32'
set protocols ospf area 0 network '10.2.0.0/30'
set protocols ospf maximum-paths '4'
set protocols ospf parameters router-id '10.0.0.11'
# マルチキャストルーティング(PIM-SMの設定)
set protocols pim interface eth1
set protocols pim interface eth2
set protocols pim interface lo
set protocols pim rp address 10.0.0.1 group '239.0.0.0/24'
set system host-name 'L3SW11'
L3SW31(VyOS).conf
# 設定の意図はL3SW11と同じなので詳細は省略
set interfaces bridge br310 member interface eth3.310
set interfaces bridge br310 member interface vxlan10010
set interfaces bridge br320 member interface eth3.320
set interfaces bridge br320 member interface vxlan10040
set interfaces bridge br330 member interface eth3.330
set interfaces bridge br330 member interface vxlan10030
set interfaces ethernet eth0 address '192.168.0.31/24'
set interfaces ethernet eth1 address '10.1.0.18/30'
set interfaces ethernet eth1 mtu '1550'
set interfaces ethernet eth2 address '10.2.0.18/30'
set interfaces ethernet eth2 mtu '1550'
set interfaces ethernet eth3 vif 310
set interfaces ethernet eth3 vif 320
set interfaces ethernet eth3 vif 330
set interfaces loopback lo address '10.0.0.31/32'
set interfaces vxlan vxlan10010 group '239.0.0.1'
set interfaces vxlan vxlan10010 source-address '10.0.0.31'
set interfaces vxlan vxlan10010 source-interface 'eth1'
set interfaces vxlan vxlan10010 vni '10010'
set interfaces vxlan vxlan10030 group '239.0.0.3'
set interfaces vxlan vxlan10030 source-address '10.0.0.31'
set interfaces vxlan vxlan10030 source-interface 'eth1'
set interfaces vxlan vxlan10030 vni '10030'
set interfaces vxlan vxlan10040 group '239.0.0.4'
set interfaces vxlan vxlan10040 source-address '10.0.0.31'
set interfaces vxlan vxlan10040 source-interface 'eth1'
set interfaces vxlan vxlan10040 vni '10040'
set protocols ospf area 0 network '10.1.0.16/30'
set protocols ospf area 0 network '10.2.0.16/30'
set protocols ospf area 0 network '10.0.0.31/32'
set protocols ospf maximum-paths '4'
set protocols ospf parameters router-id '10.0.0.31'
set protocols pim interface eth1
set protocols pim interface eth2
set protocols pim interface lo
set protocols pim rp address 10.0.0.1 group '239.0.0.0/24'
set system host-name 'L3SW31'
L3SW01(Catalyst3850).conf
!
hostname L3SW01
!
ip routing
!
ip multicast-routing
!
! VyOS側のMTUに合わせて1550に設定。これを設定しておかないと
! OSPFでneighborが張れない
system mtu 1550
!
!
interface Loopback0
ip address 10.0.0.1 255.255.255.255
!
! L3SW11を接続する物理ポート
interface GigabitEthernet1/0/1
switchport access vlan 511
switchport mode access
no cdp enable
spanning-tree portfast
!
interface GigabitEthernet1/0/2
switchport access vlan 512
switchport mode access
no cdp enable
spanning-tree portfast
!
interface GigabitEthernet1/0/3
switchport access vlan 513
switchport mode access
no cdp enable
spanning-tree portfast
!
interface GigabitEthernet1/0/4
switchport access vlan 514
switchport mode access
no cdp enable
spanning-tree portfast
!
! L3SW31を接続する物理ポート
interface GigabitEthernet1/0/5
switchport access vlan 515
switchport mode access
no cdp enable
spanning-tree portfast
!
interface GigabitEthernet1/0/6
switchport access vlan 516
switchport mode access
no cdp enable
spanning-tree portfast
!
! L3SW11を接続するVLAN
interface Vlan511
ip address 10.1.0.1 255.255.255.252
ip pim sparse-mode
!
interface Vlan512
ip address 10.1.0.5 255.255.255.252
ip pim sparse-mode
!
interface Vlan513
ip address 10.1.0.9 255.255.255.252
ip pim sparse-mode
!
interface Vlan514
ip address 10.1.0.13 255.255.255.252
ip pim sparse-mode
!
! L3SW11を接続するVLAN
interface Vlan515
ip address 10.1.0.17 255.255.255.252
ip pim sparse-mode
!
interface Vlan516
ip address 10.1.0.21 255.255.255.252
ip pim sparse-mode
!
router ospf 100
router-id 10.0.0.1
network 10.0.0.1 0.0.0.0 area 0
network 10.1.0.0 0.0.0.3 area 0
network 10.1.0.4 0.0.0.3 area 0
network 10.1.0.8 0.0.0.3 area 0
network 10.1.0.12 0.0.0.3 area 0
network 10.1.0.16 0.0.0.3 area 0
network 10.1.0.20 0.0.0.3 area 0
!
ip pim rp-address 10.0.0.1
結果
(おまけ)VyOSの確認コマンド
show interfaces vxlan vxlan100XX
sudo bridge fdb show dev vxlan10010
show ip pim neighbor
(おまけ)Catalystの確認コマンド
show ip mroute
show ip pim neighbor
最後に
記事にするとあっさりできたように見えますが,丸1.5日かかりました。
特にL3SW01をVyOSで作ろうとして挫折するまでが長かった。
後編では,問題文後半で出題されたEVPNを構築してみます。
参考