🌐

自宅ネットワークインフラ構築

2024/01/14に公開

この記事は?

自宅サーバの周辺環境構築の備忘録です。DELLとFUJITSUのサーバを手に入れたので自宅にサーバをたてます。どうやって構築したのか後々わからなくなりそうなので、ここにメモを残します。
逐一何をしたか,どこのサイトを参考にしたか,結果がどうであったのかを連々と書き連ねているだけです.

実現したいこと

  • 物理サーバ2台はproxmox veでクラスタ構成にする
  • ubuntuの仮想OSをたくさんたてる
  • kubernetesのnodeとして参加させる

機材

  • YAMAHA RTX1200 (以下YAMAHAで統一)
  • FUJITSU PRIMERGY RX2530 M2 (以下FUJITSUで統一)
    • CPU1, 2: Xeon E5-2650L v4 (14core, 28thread)
      • total= 28core, 56thread
    • RAM: DDR4 8GB × 13
      • total= 104GB
    • ROM: 500GB × 3
      • total= 1.5TB
    • LAN port: 2
  • DELL Poweredge R630 (以下DELLで統一)
    • CPU1, 2: Xeon E5-2650 v4 (12core, 24thread)
      • total= 24core, 48thread
    • RAM: DDR4 16GB × 4
      • total= 64GB
    • ROM: 600GB × 10
      • total= 6TB
    • LAN port: 4

使用技術

  • Kubernetes
  • Proxmox

構築予定ネットワーク図

手書きで申し訳ないです。余裕あるときに書き直しておきます。
構築予定ネットワーク図ver.01
構築予定ネットワーク図ver.01
Proxmoxのネットワーク関係について理解していなかったため,作り直しました.
構築予定ネットワーク図ver.02
構築予定ネットワーク図ver.02

手順

手順1. YAMAHA設定

YAMAHA RTX1200
YAMAHA RTX1200

  1. LAN1に172.16.0.0/16(私用ネットワーク)のネットワークを張る
  2. LAN2に192.168.1.100/24(親様のネットワーク)を割り当てる
  3. LAN1の0.0.0.0/0をLAN2の192.168.1.100/24に飛ばすRoutingの設定
    以上を[1][^2]を参考に行う

手順2. 各ServerにProxmox VEの環境構築

  1. USBにProxmoxのOSを焼く
  2. FUJITSUに入れる
  3. DELLに入れる
  4. Proxmoxクラスタ構成
    ここまで[2]を参考に進める

手順3. kubeadmを使用したkubernetes環境の構築

master用nodeを1台,worker用nodeを5台とする
実行方法は[3]を参考に

開始

手順1. YAMAHA設定

1.1. 電源を入れる

  • micro SD, USB, DOWNLOADの3つのボタンを押してから電源を入れた

1.2. 192.168.100.1/24がYAMAHAに割り振られた

1.3. PCとYAMAHAの接続

  • PCをDHCPをオンにした状態でLAN1のポート4に接続した(ポートはどこでもいいらしい)

1.4. TeraTermでtelnet接続.

  • 192.168.100.1/24:23

1.5. Login Passwordの入力

  • Passwordが設定されていないため,Passwordは入力せずにEnterを押す.

1.6. Login Passwordの設定

  • administratorにならないと編集できないため,administratorコマンドを使用してadministratorになる.
管理者になる
> administrator

1.7. administratorのパスワードの設定

  • コマンドを使用してadministratorのpasswordを設定する.
setting administrator password
# administrator password
Old Password:
New Password:
New Password:

1.8. ログインパスワードの設定

setting login password
# login password:
Old Password:
New Password:
New Password:

1.9. LAN2を対外に設定する

setting LAN2 -> WAN
# ip lan2 address 192.168.1.100/24

1.10. 192.168.1.1をdefaultに設定する

setting default gateway
# ip route default gateway 192.168.1.1

1.11. DNSサーバを指定する

親様の契約しているネットワークの中に立てているため,DNSサーバは192.168.1.1

setting DNS server
# dns server 192.168.1.1

以下間違い++++++++++++++++++++

1.12. VLANに各ipアドレスを割り当てる

VLAN number ip address
VLAN1 172.16.0.1/16
VLAN4 192.168.100.1
VLAN5 172.16.1.1/16
VLAN6 172.16.1.3/16
VLAN7 172.16.1.5/16
setting vlan1
# ip vlan1 address 172.16.0.1/16
# ip vlan4 address 192.168.100.1/24
# ip vlan5 address 172.16.1.1/16
# ip vlan6 address 172.16.1.3/16
# ip vlan7 address 172.16.1.5/16
トラブル
  1. vlan1に172.16.0.1を割り当てた瞬間にLAN1全体に設定されていた192.168.100.0の魔法が解けたらしい.接続が切断された.
  • VLAN1に接続しなおして,172.16.0.1宛にtelnetしたら入れた
  1. vlan5に172.16.1.1を割り当てたら接続が切断された.
  • VLAN1に接続して172.16.1.1宛にtelnetしたら入れた
  • そもそもLAN分割の設定をオンにし忘れていた.以下のコマンドを実行して,LAN1をVLAN分割した[4]
setting option VLAN
#lan type lan1 port-based-option=divide-network
  1. vlan6,7を設定したが,どちらもレスポンスが止まってしまう.一度コネクションを切断すればいいというものでもなさそう.
  • 他のポートやipからtelnet接続を試みたが,使用中のため接続できないと断られる.レスポンスが遅いだけ?
  • その後接続が自動的に切断された.
  • LANケーブルを差しなおすと設定が反映された状態で再接続される.

1.13. 対外設定

local以外の接続を全て192.168.1.100に流す.これはdefaultと同じことしている気がする

setting default route
# ip route 0.0.0.0/0 gateway 192.168.1.100

1.14. VLANに名称を付ける

defaultの設定のままな気がするが,一応設定

setting name for vlan port
# vlan port mapping lan1.1 vlan1
# vlan port mapping lan1.4 vlan4
# vlan port mapping lan1.5 vlan5
# vlan port mapping lan1.6 vlan6
# vlan port mapping lan1.7 vlan7

1.15. NAPT, ip masq

lan2のdescriptorを設定する[5][6]

setting descriptor
# ip lan2 nat descriptor 1
# nat descriptor type 1 masquerade
# nat descriptor address outer 1 primary
トラブル

いらなかった.どっちもlocalで外に出たかったから,そもそもdefault gatewayを192.168.1.1にすればよかっただけの話.以下のコマンドで変更

setting right default gateway
# ip route default gateway 192.168.1.1

嘘.繋がらない.
VLAN1に接続した172.16.1.2のPCから8.8.8.8にpingするも,general failure.192.168.1.100も行けてない.
-->LAN1とLAN2が上手く接続できていないのでは?
とりあえずDNSを先に設定しておく

setting dns
# dns host vlan1
# dns host vlan4
# dns host vlan5
# dns host vlan6
# dns host vlan7

1.16. VLAN設定は不要(間違っていた)ので削除

delete vlan setting
# lan type lan1 port-based-option=off
# no vlan4 address 192.168.100.1/24
vlan5, 6, 7も同様
# no vlan mapping lan1.1 vlan1
lan1.2以降も同様

1.17. 接続できなくなったので最初から.

コンソールケーブルないため,telnetができなくなったら終わりです.やり直しです.

ここまで++++++++++++++++++++

1.12. DHCP serviceをoffにする

setting DHCP Service
# no ip lan2 dhcp service

13. LAN1にIPアドレスを割り振る

setting ip address LAN1
# ip lan1 address 192.168.100.1/24

1.14. ip masq(NAPT)の設定

setting NAPT
# ip lan2 nat descriptor 1
# nat descriptor type 1 masquerade
# nat descriptor address outer 1 primary

手順2. 各ServerにProxmox VEの環境構築

手順2.1. 各ServerにProxmox VEをインストールする

2.1.1. OSにISOファイルを焼く

DDで焼いた

2.1.2.DELLにinstallする

2.1.1.DELL

2.1.1.1. Select Proxmox VE

  • Install Proxmox VE (Graphical)を選択

2.1.1.2. Target Harddisk

  • Optionsからxfsを選択

2.1.1.3. Location and Time Zone

  • Countly: japan
  • Time zone: Azia/Tokyo
  • Keyboard Layout: Japanese

2.1.1.4. Administration Password and Email Address

  • rasweb

2.1.1.5. Management Network Configuration

  • Management Interface: eno1
  • Hostname(FQDN): lonlyboy.com
  • IP Address(CIDR): 192.168.100.2/24
  • Gateway: 192.168.100.1
  • DNS Server: 192.168.1.1

2.1.1.6. Install

トラブル

本体に通信ができない.
DELLのNICの状態を確認

DELL network interface information
1: lo: ----
	inet 127.0.0.1/0
:
(ここにeno1~4までありけど何も割り振られていない.)
:
4: vmbr0
	inet 192.168.100.2/24

物理NICに一つもIPが割り振られていていない.
YAMAHAにもDHCPあるけど,DHCPの設定が動いていないのかもしれない.
確認してみたがYAMAHAのDHCPはONになっていた.
YAMAHAは192.168.100.2/24~192.168.100.254/24までを割り振る設定になっていた.
PROXMOXがDHCPをONにしていないのかも.
本来であればPROXMOX上に立てたOSはvmbr0を通してipアドレスをDELLの外側(今回であればYAMAHAから貰えるはずらしい.)
/etc/network/interfacesを見ていたら

なんこれ
iface vmbr0 inet static
		:
	brdge-ports eno1
		:

vmbr0はbridgeの設定らしいとのことで若しやeno1に接続しているのでは?と考えた.
eno0はDELL躯体の謎の突起が上にありLANケーブルの抜き差しが非常に困難であるため,使用をしていなかったため,eno0は何も刺さっていません.
とりあえず,原因の一つかもしれないので,/etc/network/interfacesのback upファイルinterfaces.buを作成し,本来使用すべきNICのeno4に書き換えてみる.

rewriting interfaces
	bridge-port eno4

この方によるとIPアドレスを変更しただけではクラスタ構築に失敗する場合があるとのことでした.
...そもそもまだクラスタ構築していないし,なんならDELLが孤立している状態なので変更する必要はなさそう.
IPアドレスの変更を反映する.

update file interfaces
systemctl restart networking.service

きた!きたこれ!絶対来てる!!だってポートがピカピカ光ってるもん.きてる!ぜったいきてる!!ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
YAMAHAに接続しているPC(192.168.100.10)から192.168.100.2(DELL)にpingが通ったので,サイトにアクセスしてみる.

入れた.
special thanks: Debian network設定変更及び更新

2.1.1.7. Proxmox VE Web UI Login

user name: root
Password: 言わずもがな
Realm: Linux PAM~~
Language: English-English
日本語にしたいが英語に慣れないとなので英語を使います.
subscription無いよって言われた.

トラブル

YAMAHAがまた繋がらなくなった.お外に出れない.
YAMAHAに接続してみる.


余談
YAMAHA RX1200のGUIを使ってみたが,SSHの設定ファイルを見るときくらいしか使いたくなった.
あとtelnetとか使ってるWindows Sub Linux systemが起動できなくなったので,
wsl --shutdown
wsl -d Ubuntu
を行ったら治った.


Loginする.

Login
$ telnet 192.168.100.1

とりあえずpingしてみたところ,8.8.8.8まで行けてるし,なんならgoogle.comも解決できてる.
LAN1とLAN2でうまくNAT出来てないのか?
更にわからなくなった.

ip route 192.168.100.0/24 gateway 192.168.100.1

を行ったら突然YAMAHAに接続できなくなった.192.168.100.2(DELL)には接続できたので,192.168.100.1のYAMAHAだけが消えたらしい.意味わからないが,電源を入れなおしたらYAMAHAには接続できるようになった.
相変わらずPCから8.8.8.8までは届かない.

トラブル解決

実はこの時,DELLはping 8.8.8.8を行うことによってgoogleに接続ができていた.しかしながら,私が操作していたWindowsはgoogleに接続ができていなかった.
何が起きていたのか.
そう.私がWindowsにdefault gatewayを設定し忘れていたのだ.
世の中の関節は外れてしまった.あぁ,なんと呪われた因果か...
はい.トラブルが解決したので,先に進みます.

2.1.2. FIJITSU

基本的にDELLと同じ設定を行う.
Create LVsが終わらない.
HDDを固定するためのネジがないので,固定しないで差し込んでいる.不安しかない.
上手くいった.


余談
超特急でtailscaleを設定したときに使用したサイト
ここ


手順2.2.Proxmoxクラスタの構築

注意事項: クラスター構築後はProxmoxクラスタの各ノードのIPアドレス,ホスト名,Cluster Nameが編集できなくなる.

1. リポジトリの設定(FUJITSUも同時進行)

デフォルトだと有償のサブスク民しか利用できないリポジトリになっているらしいので,無償使用可能なリポジトリに設定しなおす.
1.1. 左のServer Viewから自身の作成したNodeを選択する
1.2. Nodeのメニュー一覧からShellを選択
1.3. /etx/apt/source.listを編集
編集によって,No-subscription repositoryが使用可能になる

Setting No-Subscription Repository
deb http://ftp.debian.org/debian bullseye main contrib
deb http://ftp.debian.org/debian bullseye-updates main contrib

# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription

# security updates
deb http://security.debian.org/debian-security bullseye-security main contrib

1.4. /etc/apt/sources.list.d/pve-enterprise.listを編集する
編集によって,enterprise repositoryが使用できないようになる.

remove enterprise repository
#deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise

1.5. 確認
メニューのRepositoriesを見ると,編集履歴が残っていることが確認できる.シェルからアップデートを行い,内容を反映させる.

update nodes
apt update
apt upgrade
トラブル

FUJITSUのinterfaceがおかしい。
eno0とeno1が反転している。
interfaceのMACアドレスの紐付けを確認する。

ip link
eno1: ----
    link/ether -:-:-:-:-:9e
    altname enp3s0f0
eno2: ----
    link/ether -:-:-:-:-:9f
    altname enp3s0f1
vmbr0: ----
    link/ether -:-:-:-:-:9f

proxmoxの仮想ネットワークはeno2と結びついているらしい。
サーバ本体の1と書いてあるinterfaceに192.168.100.0/24のLANケーブルが挿さっており、2と書いてあるところには何も挿していない。
にもかかわらず、192.168.100.0/24と通信ができている。

意味がわからない。
MACアドレスもeとfだから順番的にも1と2で合っていそうだし、どういうことなのおおおお

今のぼくにはこれを解決する余裕がないため、OSの再インストールを行う。
ここまで来たのに振り出しか....

再installは意味を成さなかった.
別の手段を考える.

1. interfaceの再起動をしてみる
restart interface
ifdown eno1 ; ifdown eno2 ; ifup eno1 ; ifup eno2

効果なし.

2. vmbrを消して,eno1だけ書いてみる
rewright interfaces
auto eno1
iface eno1 inet static
   address 192.168.100.3
   netmask 255.255.255.0
   gateway 192.168.100.1
   
auto eno2
iface eno2 inet manual
restart network setting
systemctl restart networking.service

効果なし.

3. eno1とeno2の設定を逆にしてみる
rewright interfaces
auto eno1
iface eno1 inet manual
   
auto eno2
iface eno2 inet static
   address 192.168.100.3
   netmask 255.255.255.0
   gateway 192.168.100.1
restart network setting
systemctl restart networking.service

やっぱり接続できるようになった.
eno2には何も挿していないんだけどねーーーーーーーーーーーーー

4. 最終手段

eno1とeno2のMACアドレスを入れ替える.
これを参考にする
あとここ

はにゃ
root@lonlygirl:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 90:1b:0e:9a:66:9e brd ff:ff:ff:ff:ff:ff
    altname enp3s0f0
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000
    link/ether 90:1b:0e:9a:66:9f brd ff:ff:ff:ff:ff:ff
    altname enp3s0f1
7: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 90:1b:0e:9a:66:9f brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.3/24 scope global vmbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::921b:eff:fe9a:669f/64 scope link 
       valid_lft forever preferred_lft forever

変わらなかった.
いや,変わらないってどういうことなのだ???
諦めた.eno1とeno2は逆転したまま考える.
躯体にシールでも貼っておこう.
設計図は書き直そう

2. クラスタの構築

2.1. DELLでクラスタを作成する.

こちらを参考に.
あとこっちも.
Cluster Name: lonlies
Cluster Network: 192.168.200.2
(Proxmox用の独自回線)

2.2. FUJITSUをProxmoxクラスタに参加させる.
  • DELLのDatacenter > Cluster > Cluster Information > Join Informationに記載されているJoin InformationをCopyする.
  • FUJITSUのDatacenter > Cluster > Cluster Information > Join Clusterを押下.Informationに先程の2.1.でコピーしたものを張り付けると,自動的にPeer Address, Password, Fingerprint, Cluster Networkの項目が表示される.以下の内容を入力
    Peer Address: (DELLのProxmox Cluster用のIpアドレス)
    Password: (Proxmox Clusterを作成したDELLのユーザのパスワード.今回はroot)
    Fingerprint: (自動入力される.)
    Cluster Network: (選択項目が出るので,DELLと接続させたいIpアドレスを選択.)
  • Join "~"を押下.
  • FUJITSUのセッションが切断されるので,サイトをリロードして再ログインする.

手順3.1. UbuntuのVMを作成

3.1. ISOファイルのUpload

Datacenter > (proxmox Node) > local(NodeName) > ISO Images
にUploadする.

3.2. Create Node

Datacenter > (Proxmox Node) > Create VM >

脚注
  1. 参考サイト1 [^2]: 参考サイト2 ↩︎

  2. 参考サイト3 ↩︎

  3. 参考サイト4 ↩︎

  4. 参考サイト5 ↩︎

  5. NAT Descriptor機能概要 ↩︎

  6. Yamaha RTX ルータのNAT設定例 ↩︎

Discussion