#1. はじめに
IBM CloudのClassic Infrastructureにおいて、ベアメタルサーバーはpublic port x2, private port x 2のネットワークインターフェースを持っており、Teamingされている。このTeamingされたインターフェースはそれぞれPublic VLAN, Private VLANに属している。
NW構成に柔軟性を持たせるために、NIC追加なしで複数のPrivate VLANに同時に所属する構成にしたいという要望は多い。こういう際の解決策の1つが、VLANをトランクさせる方法である。
今回はWindows Server 2019 Standard Editionで動作確認をしてみた。
#2. 手順
##2-1. 物理サーバーが利用しているVLANの確認
物理サーバーのNW詳細で、VLAN番号が2681であることが確認できる。
また、TOK02のBCR01側(1つ目のPod)にこの物理サーバーが存在することがわかる。
##2-2. VLANの購入
今回はすでにVLANは購入済みなので省略。
##2-3. VLANのトランク
TOK02のBCR01には、VLAN1428とVLAN1549があるので、これらのVLANを物理サーバーにトランクすることにする。
ShinobiLayer: Bluemix Infrastructure(旧SoftLayer)におけるVLANトランク設定のAPIにあるように、Caseで起票してもいいが、いちいちCaseで起票するのは面倒だし実際にTrunkされているかどうかはユーザーからはCaseを起票しない限りはAPIで確認する必要があるので、今回はAPIで変更した。
# python getVLANinfoByHWID.py 1940784
HWID : 1940784
fullyQualifiedDomainName : syasudawin.ibm.cloud
-------------------------------------------
NW Component ID : 14016208
name+port : mgmt0
speed : 100
maxSpeed : 100
status : ACTIVE
primaryIpAddress : None
macAddress : None
ipmiIpAddress : 10.129.177.61
ipmiMacAddress : ae:1f:6b:f5:52:90
SwitchFQDN : bms62.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513627
NativeVLAN-number: 2681
-------------------------------------------
NW Component ID : 14016196
name+port : eth0
speed : 10000
maxSpeed : 10000
status : ACTIVE
primaryIpAddress : 10.129.177.18
macAddress : ac:1f:6b:f5:52:90
ipmiIpAddress : None
ipmiMacAddress : None
SwitchFQDN : bcs62a.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513627
NativeVLAN-number: 2681
-------------------------------------------
NW Component ID : 14016198
name+port : eth1
speed : 10000
maxSpeed : 10000
status : ACTIVE
import SoftLayer
primaryIpAddress : xx.xx.xx.xx
macAddress : ac:1f:6b:f5:52:91
ipmiIpAddress : None
ipmiMacAddress : None
SwitchFQDN : fcs62a.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513625
NativeVLAN-number: 1503
-------------------------------------------
NW Component ID : 14016200
name+port : eth2
speed : 10000
maxSpeed : 10000
status : ACTIVE
primaryIpAddress : None
macAddress : ac:1f:6b:f5:52:92
ipmiIpAddress : None
ipmiMacAddress : None
SwitchFQDN : bcs62b.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513627
NativeVLAN-number: 2681
-------------------------------------------
NW Component ID : 14016202
name+port : eth3
speed : 10000
maxSpeed : 10000
status : ACTIVE
primaryIpAddress : None
macAddress : ac:1f:6b:f5:52:93
ipmiIpAddress : None
ipmiMacAddress : None
SwitchFQDN : fcs62b.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513625
NativeVLAN-number: 1503
Private側のportはeth0とeth2なので、NW Component IDは14016196と14016200である。よって、以下のコマンドでVLAN1428とVLAN1549をトランクする。
# python addVLANTrunk.py 14016196 14016200 1428
# python addVLANTrunk.py 14016196 14016200 1549
# python getVLANinfoByHWID.py 1940784
HWID : 1940784
fullyQualifiedDomainName : syasudawin.ibm.cloud
-------------------------------------------
NW Component ID : 14016208
name+port : mgmt0
speed : 100
maxSpeed : 100
status : ACTIVE
primaryIpAddress : None
macAddress : None
ipmiIpAddress : 10.129.177.61
ipmiMacAddress : ae:1f:6b:f5:52:90
SwitchFQDN : bms62.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513627
NativeVLAN-number: 2681
-------------------------------------------
NW Component ID : 14016196
name+port : eth0
speed : 10000
maxSpeed : 10000
status : ACTIVE
primaryIpAddress : 10.129.177.18
macAddress : ac:1f:6b:f5:52:90
ipmiIpAddress : None
ipmiMacAddress : None
SwitchFQDN : bcs62a.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513627
NativeVLAN-number: 2681
TrunkVLAN-ID : 2653177
TrunkVLAN-number : 1428
TrunkVLAN-ID : 2765284
TrunkVLAN-number : 1549
-------------------------------------------
NW Component ID : 14016198
name+port : eth1
speed : 10000
maxSpeed : 10000
status : ACTIVE
primaryIpAddress : xx.xx.xx.xx
macAddress : ac:1f:6b:f5:52:91
ipmiIpAddress : None
ipmiMacAddress : None
SwitchFQDN : fcs62a.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513625
NativeVLAN-number: 1503
-------------------------------------------
NW Component ID : 14016200
name+port : eth2
speed : 10000
maxSpeed : 10000
status : ACTIVE
primaryIpAddress : None
macAddress : ac:1f:6b:f5:52:92
ipmiIpAddress : None
ipmiMacAddress : None
SwitchFQDN : bcs62b.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513627
NativeVLAN-number: 2681
TrunkVLAN-ID : 2653177
TrunkVLAN-number : 1428
TrunkVLAN-ID : 2765284
TrunkVLAN-number : 1549
-------------------------------------------
NW Component ID : 14016202
name+port : eth3
speed : 10000
maxSpeed : 10000
status : ACTIVE
primaryIpAddress : None
macAddress : ac:1f:6b:f5:52:93
ipmiIpAddress : None
ipmiMacAddress : None
SwitchFQDN : fcs62b.sr01.tok02.softlayer.com
NativeVLAN-ID : 2513625
NativeVLAN-number: 1503
上記の結果から、VLANがトランクできたことを確認。
##2-4. Windows Server 2019の設定
PowerShellにて以下を実施(PowerShellでないとVLANインターフェースが追加できないように見える。Server Managerの中を探し回ったが見つけることができなかった・・・)。
PS C:\Users\Administrator> get-netlbfoteam
Name : PrivateTeam
Members : {PrivateNetwork-B, PrivateNetwork-A}
TeamNics : PrivateNetwork-Teamed
TeamingMode : Lacp
LoadBalancingAlgorithm : Dynamic
LacpTimer : Fast
Status : Up
Name : PublicTeam
Members : {PublicNetwork-B, PublicNetwork-A}
TeamNics : PublicNetwork-Teamed
TeamingMode : Lacp
LoadBalancingAlgorithm : Dynamic
LacpTimer : Fast
Status : Down
今回は、Private側にVLAN対応したインターフェースを作成するため、PrivateTeamを指定する。
PS C:\Users\Administrator> Add-NetlbfoTeamNIC -Team PrivateTeam -VlanID 1428 -confirm:$false
Name : PrivateTeam - VLAN 1428
InterfaceDescription : Microsoft Network Adapter Multiplexor Driver #3
Team : PrivateTeam
VlanID : 1428
Primary : False
Default : False
TransmitLinkSpeed(Gbps) : 20
ReceiveLinkSpeed(Gbps) : 20
PS C:\Users\Administrator> Add-NetlbfoTeamNIC -Team PrivateTeam -VlanID 1549 -confirm:$false
Name : PrivateTeam - VLAN 1549
InterfaceDescription : Microsoft Network Adapter Multiplexor Driver #4
Team : PrivateTeam
VlanID : 1549
Primary : False
Default : False
TransmitLinkSpeed(Gbps) : 20
ReceiveLinkSpeed(Gbps) : 20
以下で確認を行う
PS C:\Users\Administrator> get-netlbfoteam
Name : PrivateTeam
Members : {PrivateNetwork-B, PrivateNetwork-A}
TeamNics : {PrivateTeam - VLAN 1428, PrivateTeam - VLAN 1549, PrivateNetwork-Teamed}
TeamingMode : Lacp
LoadBalancingAlgorithm : Dynamic
LacpTimer : Fast
Status : Up
Name : PublicTeam
Members : {PublicNetwork-B, PublicNetwork-A}
TeamNics : PublicNetwork-Teamed
TeamingMode : Lacp
LoadBalancingAlgorithm : Dynamic
LacpTimer : Fast
Status : Down
Network AdapterやServer ManagerでもInterfaceが作成されていることを確認。
ServerManager -> Local Server -> NIC teamingでVLAN構成を確認。
##2-5. IPアドレスの割り当て
今回は、VLAN1428内でしか通信できないように、明示的に192.168.10.x/24というBYOIPを使う。`PrivateTeam - VLAN 1428)にてIPアドレスを割り当てる。
#3. テスト
以下のようにVLAN1428に割り当てられたVSIから通信テストを行う。
[root@syasudacentos7 ~]# ip a add 192.168.10.12/24 dev eth0
[root@syasudacentos7 ~]# ping -c 3 192.168.10.11
PING 192.168.10.11 (192.168.10.11) 56(84) bytes of data.
64 bytes from 192.168.10.11: icmp_seq=1 ttl=128 time=3.35 ms
64 bytes from 192.168.10.11: icmp_seq=2 ttl=128 time=0.363 ms
64 bytes from 192.168.10.11: icmp_seq=3 ttl=128 time=0.342 ms
--- 192.168.10.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.342/1.352/3.351/1.413 ms
[root@syasudacentos7 ~]# ip neigh|grep 192
192.168.10.11 dev eth0 lladdr ac:1f:6b:f5:52:90 REACHABLE
無事接続できました!