自宅ネットワークインフラ構築
この記事は?
自宅サーバの周辺環境構築の備忘録です。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
- CPU1, 2: Xeon E5-2650L v4 (14core, 28thread)
- 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
- CPU1, 2: Xeon E5-2650 v4 (12core, 24thread)
使用技術
- Kubernetes
- Proxmox
構築予定ネットワーク図
手書きで申し訳ないです。余裕あるときに書き直しておきます。
構築予定ネットワーク図ver.01
Proxmoxのネットワーク関係について理解していなかったため,作り直しました.
構築予定ネットワーク図ver.02
手順
手順1. YAMAHA設定
YAMAHA RTX1200
- LAN1に172.16.0.0/16(私用ネットワーク)のネットワークを張る
- LAN2に192.168.1.100/24(親様のネットワーク)を割り当てる
- LAN1の0.0.0.0/0をLAN2の192.168.1.100/24に飛ばすRoutingの設定
以上を[1][^2]を参考に行う
手順2. 各ServerにProxmox VEの環境構築
- USBにProxmoxのOSを焼く
- FUJITSUに入れる
- DELLに入れる
- 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を設定する.
# administrator password
Old Password:
New Password:
New Password:
1.8. ログインパスワードの設定
# login password:
Old Password:
New Password:
New Password:
1.9. LAN2を対外に設定する
# ip lan2 address 192.168.1.100/24
1.10. 192.168.1.1をdefaultに設定する
# ip route default gateway 192.168.1.1
1.11. DNSサーバを指定する
親様の契約しているネットワークの中に立てているため,DNSサーバは192.168.1.1
# 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 |
# 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
トラブル
- vlan1に172.16.0.1を割り当てた瞬間にLAN1全体に設定されていた192.168.100.0の魔法が解けたらしい.接続が切断された.
- VLAN1に接続しなおして,172.16.0.1宛にtelnetしたら入れた
- vlan5に172.16.1.1を割り当てたら接続が切断された.
- VLAN1に接続して172.16.1.1宛にtelnetしたら入れた
- そもそもLAN分割の設定をオンにし忘れていた.以下のコマンドを実行して,LAN1をVLAN分割した[4].
#lan type lan1 port-based-option=divide-network
- vlan6,7を設定したが,どちらもレスポンスが止まってしまう.一度コネクションを切断すればいいというものでもなさそう.
- 他のポートやipからtelnet接続を試みたが,使用中のため接続できないと断られる.レスポンスが遅いだけ?
- その後接続が自動的に切断された.
- LANケーブルを差しなおすと設定が反映された状態で再接続される.
1.13. 対外設定
local以外の接続を全て192.168.1.100に流す.これはdefaultと同じことしている気がする
# ip route 0.0.0.0/0 gateway 192.168.1.100
1.14. VLANに名称を付ける
defaultの設定のままな気がするが,一応設定
# 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
# ip lan2 nat descriptor 1
# nat descriptor type 1 masquerade
# nat descriptor address outer 1 primary
トラブル
いらなかった.どっちもlocalで外に出たかったから,そもそもdefault gatewayを192.168.1.1にすればよかっただけの話.以下のコマンドで変更
# 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を先に設定しておく
# dns host vlan1
# dns host vlan4
# dns host vlan5
# dns host vlan6
# dns host vlan7
1.16. VLAN設定は不要(間違っていた)ので削除
# 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にする
# no ip lan2 dhcp service
13. LAN1にIPアドレスを割り振る
# ip lan1 address 192.168.100.1/24
1.14. ip masq(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の状態を確認
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に書き換えてみる.
bridge-port eno4
この方によるとIPアドレスを変更しただけではクラスタ構築に失敗する場合があるとのことでした.
...そもそもまだクラスタ構築していないし,なんならDELLが孤立している状態なので変更する必要はなさそう.
IPアドレスの変更を反映する.
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する.
$ 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が使用可能になる
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が使用できないようになる.
#deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise
1.5. 確認
メニューのRepositoriesを見ると,編集履歴が残っていることが確認できる.シェルからアップデートを行い,内容を反映させる.
apt update
apt upgrade
トラブル
FUJITSUのinterfaceがおかしい。
eno0とeno1が反転している。
interfaceのMACアドレスの紐付けを確認する。
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の再起動をしてみる
ifdown eno1 ; ifdown eno2 ; ifup eno1 ; ifup eno2
効果なし.
2. vmbrを消して,eno1だけ書いてみる
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
systemctl restart networking.service
効果なし.
3. eno1とeno2の設定を逆にしてみる
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
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: 急いで作っていたが、不要になった
就活で成果物を提出しないとそもそもエントリーできなかったのですが、そもそも応募自体をやめたため、不要になってしまいました。
色々2: 構築したいものが変わった
個人サイト-->個人クラウド,VPN
なので、別に新しく作成します。もう少し分かり易い文章にしてかけるといいのですが
Discussion