コンテンツへスキップ

アドレスクラス

【クラスA】

  • 第一オクテットの先頭1ビットが「0」に固定
  • 第一オクテット:00000001~01111110(1~126)

【クラスB】

  • 第一オクテットの先頭2ビットが「10」に固定
  • 第一オクテット:10000000~10111111(128~191)

【クラスC】

  • 第一オクテットの先頭3ビットが「110」に固定
  • 第一オクテット:11100000~11101111(224~239)

予約済みアドレス

  • ネットワークアドレス:ホスト部が全て「0」
  • ブロードキャストアドレス:ホスト部が全て「1」
  • ループバックアドレス:127.x.x.x

グローバルIPアドレス(パブリックアドレス)

ISPから割り当てられる一意のアドレス

クラス範囲
A1.0.0.0 ~ 9.255.255.255
11.0.0.0 ~ 126.255.255.255
B128.0.0.0 ~ 172.15.255.255
172.32.0.0 ~ 191.255.255.255
C192.0.0.0 ~ 192.167.255.255
192.169.0.0 ~ 223.255.255.255

プライベートIPアドレス

家庭や組織で利用するためのアドレス
アドレス範囲はRFC1918で定義

クラス範囲
A0.0.0.0 ~ 10.255.255.255
B172.16.0.0 ~ 172.31.255.255
C192.168.0.0 ~ 192.168.255.255

サブネットマスク

オクテット内でサブネット化したときのサブネットマスク

1286432168421
110000000128
211000000192
311100000224
411110000240
511111000248
611111100252
711111110254
811111111255

n進数のまとめ

10進数012345678910111213141516
2進数0110111001011101111000100110101011110011011110111110000
16進数0123456789ABCDEF10

4月に引っ越しをしたあとに友人とスマブラSPのオンラインでマッチングするとエラーが発生してしまい対戦できなくなってしまった。

前提として
・引っ越し前は、友人と遊べていた。
・過去現在共にプロバイダーは違うがIpv6+

エラー内容については、以下サイトがわかりやすい

ひとまずポートを開放をしようと考え、貸し出されているルータの管理画面にアクセスをしたが何度やってもできない。
ルーターを貸してもらっているサポートセンターに電話で問合せをしたところ、そもそもルーターの管理画面にアクセス権利が私にはないようだ。
言われてみれば当たり前か......

解決方法


・管理会社にIPv4用のIPアドレスを教えてもらい、任天堂switchの設定画面でIPを手動入力すると友人とスマブラでマッチングが可能となった。
┗ ただし、Ipv6+と比べて回線速度が断然に落ちるので遊ぶ時間を選ばないとラグや遅延が発生してしまう。

※参考
任天堂スイッチ IPアドレス固定とDNSを指定する方法
https://www.akakagemaru.info/port/switch-staticip.html

・IPv6+のままで遊ぶ方法としてポート開放をするとかあるみたいだけど、サポートセンターに電話したところ、もう既にUDPのポートが全開放されているらしい。調査依頼は出したけどやや詰んでる

最近、サーバーのラック内のケーブル配線を実施する機会があった。
ラック内には、サーバーを40台ほど搭載させる。
サーバーの数だけケーブル配線が増える。
ケーブル配線は何も考えずにつなげるだけなら簡単ではあるが、今後のサーバー運用においての保守性を考えると奥が深い。

少なくともサーバーを交換するときに、サーバーをレールから外したあと、サーバーがほかのサーバーのケーブルに引っかかってケーブルが抜けたりしたら、クライアントに被害が発生する。

そのようなリスクを抑えるためにもケーブルの配線については丁寧にコンパクトにまとめられるように考えなければならない。
また、一度ケーブルを配線していけばいくほど後戻りが大変なため、念入りに計画を立てなければならない。私は実際にほぼ完成まで進めてケーブル配線も、後から保守性として駄目なことに気が付いてほぼ初めからやり直す苦い経験をした。

ケーブル配線から後の事柄を考えた行動が大切であるということを痛感した。
物事の考える量を今よりも増やすともに思考力の体力も鍛えないといけない。

ただ何かを作ることの体力とそれを作った後のことを考える体力を温存する思考を持つようにしてもいいいのかもしれない

SPFレコードについて書くのが苦手だったけど、
今回で仕事で必要な知識だったので知ったことをまとめてみる。

まず前提として、SPFレコードは、本人確認に利用されている。
具体的には、受信サーバーが、送信サーバー元のDNSに問い合わせて、
送信者のIPとDNSに記載されているSPFレコードのIPが一致していたら認証成功。

そして本題の書き方の例

v=spf1  +ip4:192.168.10.1  –all

v=spf1 はspfを書く際のおまじないのようなもの。
+ip4:192.168.10.1 の +(プラス)については認証許可を意味する。
なので、 192.168.10.1 のメール送信を許可する
–all の-(マイナス)については、拒否を意味する。
なので、全てのIPを拒否するということ。

つまり今回は、 192.168.10.1 以外からのIPを拒否すると考える。

余談。
+include:_spf.google.com とincludeとあった場合、
google.comのSPFレコードを参照するという意味が加わる。

参考
https://baremail.jp/blog/2020/02/28/579/

今回はrsyncコマンドを用いて、サーバーのデータ移行をするときに移動したいファイルを間違えてしまったのでメモをする。

rsyncコマンドは、ソース元のデータをソース先に同期をしてくれるコマンド。

ソース元のデータがソース先にある場合はスキップし、 ソース先にない場合、ソース先に対象のデータを追加してくれるから非常に使い勝手のいいコマンド。

ただし、仕様上パスを間違えてしまうと、関係のないソース先に余計なファイルがたくさん同期されることがあるから注意すること。

今回自分は、ソース元のディレクトリ以下のファイルをソース先のディレクトリ以下に同期をする予定だったものの、ソース先のディレクトリ以下にソース元のディレクトリごと同期させてしまった。

例えば、ディレクトリhogeとディレクトリhoge2があったとき

rsync -av /root/hoge /root/hoge2/

このようにすると、/root/hoge2/hoge といった結果となる。

もし、ディレクトリ以下の中身を同期させたい場合は

rsync -av /root/hoge/ /root/hoge2/

とソース元を  /root/hoge から  /root/hoge/  とスラッシュを追加しなければならない。

ちなみに mv コマンドの場合は、

mv /root/hoge/* /root/hoge2/  

とアスタリスクをつけないといけないから注意する。

最近スクリプトを作成することが増えてきたけども、毎回フルパスで指定するの面倒くさい。
なので、スクリプト名を打つだけで実行できるようにしたかった。

今回は下記ファイルを用意した
/root/cmd/test 
echo "test"

方法1 .bash_profile 内のexportにパスを記載する。



vim .bash_profile
export PATH=$HOME/cmd:$PATH
# test
test

方法2 /usr/local/bin 以下にシンボリックリンクを追加する。

# ln -s ~/cmd/test /usr/local/bin/tes
# tes
test

上記の方法は環境変数$PATH内にパスがあれば、
CUI内でコマンドを探して実行してくれるというルールの上で成り立っているらしい。
ちなみに 
/bin/はシングルモード用(OSが壊れてときとか)
/usr/bin/はシングルモードではないかつ、RPM等のパッケージに入っているコマンド等が収納
/usr/local/binは自作スクリプトなどを置くディレクトリ
なので今回は上記の記載をした。

タイトルの通り、データ移行を実施したけども詰まってしまったので記録する。
なお、WordPress内のデータを移行している


作業順序は次の通り。
1.pleskでドメイン>>「ドメインを追加」で新しいドメインを作成する。
2.作成したドメインからデータベースを作成する。
※ここでドメイン名やユーザー名を移転元の通りにするとエラーが発生したから名前を変更した。
あとでWordPressのコンフィグデータも変えておくこと。

3.移転元の「データベース」から「ダンプをエクスポート」を選択してバックアップを取得。
→「作成後にダンプを自動的にダウンロード」にチェックをつけると作業が楽になる
4.移転元の「ファイルマネージャー」からバックアップしたいファイルを項目の右側の設定からダウンロードする。

5.「ファイルマネージャー」でドキュメントルート以下にサブディレクトリ用の新規ディレクトリを作成する
6.新規ディレクトリ以下にファイルをアップロードする。 
7. 移転元の「データベース」から「ダンプをインポート」を選択してリストアする。
8.hosts,ファイルを変更するなどをして移転先のURLにアクセスしてサイトの調子を確認する。
9.画像が非表示されたりするはずなので、画像のパスを変更する。

今回は9で詰まった。
まずパスを変更する場所が見つからなかった。
一番早いのはssh接続から検索するのが手っ取りばやい。
私の場合は下記コマンドで検索をした。

ファイル内の文字列を検索してくれる

find . -type f -print | xargs grep 検索したいファイル名

今回上記を利用してヒットした箇所はWordPressのtheme以下のファイル内であった。

ちなみにssh接続できない場合、plesk内の「ファイルマネージャー」からファイルが編集できる
今回、これで終わりかと思ったけどサイト内でまだ表示がされないファイルがあったためにさらに詰まった。

サイト内で「ページのソースを表示」して、表示されない画像を検索すると確かにパスが変更されていなかった。
しかし、その画像の表示をさせるためのソースが実際にssh接続から探してもどこにもなかった。

結果的には、plesk内の「phpMyAdmin」からデータベース内を探して見つけた。
自分の場合は、**_posts テーブル内の値が「post_content」のところで画像を検索するとヒットした。

10.データベース内のファイルのパスを「検索と置換」で変更する
下の画像のように設定する。

実行ボタンを押してもその後、どの箇所が変更されるか確認できるページに遷移できる。

11. 改めてサイトを確認して問題がなければデータ移行完了。

VPSのubuntu20.04にてメールサーバーを立てた後に、thunderbirdのメール設定でPOPサーバーの認証方式で「暗号化されたパスワード認証」に設定すると接続ができなかった。原因を調べてみたら、cram-md5でSMTP認証が廃止されたとの記事がちらほら。とはいえ、VPSなので自分で、cram-md5を設定した上でメールの設定を試してみたらところ、下記エラーログを吐いた。
auth: Fatal: CRAM-MD5 mechanism can't be supported with given passdbs
少なくともubuntu20.04ではCRAM-MD5のサポートをしていないようだ。
結局「通常のパスワード認証」でもポートがTLSの数値なら問題ないとのことなので、このままメールを使おうと思う。
参考
https://goope.jp/info/maintenance/?id=619

thunderbirdのメール設定が上手くいかなくてタイトルのエラーが吐かれていた。

useradd からpasswd でユーザーを作ったけどもおかしいなと思い続けていたところ、
下記サイトに則ってコマンドを入力した

[root@ ~]# echo '(パスワード入力)' | saslpasswd2 -p -u mail.example.com -c testuser(SMTP-Auth用ユーザ・パスワードの登録)

上記入力後、下記コマンドでメール専用ユーザーを確認することができる。

[root@ ~]# sasldblistusers2(SMTP-Auth用ユーザ名・パスワードの確認)

このリストに追加されているユーザーでthunderbirdのメール設定をし直すと接続できた。

sasl(Simple Authentication and Security Layer)
の認証リストに追加しないとユーザーを認識してくれなかったということかな。

借りていたサーバーを移転しなければならないので、新たにVPSを借りてブログのデータを移行していました。
せっかくだからOSは題名の通りUbuntuに変えました。環境の練習になるので。

Ubuntuのログイン方法はCentOSとは異なるから注意。
慌ててOSの再ダウンロードとかしないように。

まずは、ログイン方法としてユーザー名は、[root]ではなく[ubuntu] であることに注意。
そして、スーパーユーザーに昇格するためにrootのパスワードを作成する必要があります。

passwd root

上記で新しいパスワードを設定した後に su - コマンドから設定したパスワードを入力するとroot権限になります。

参考
https://qiita.com/_toki/items/cced337d72103ed4387c

この後はssh接続方法を公開鍵認証方式にするとかやりますが、ミドルウェアのインストールで失敗とかしたら
最悪OSの再インストールとか面倒なので、先にデータベースをインストールしました。

MariaDBのインストールは下記サイトの通りに進めています。
https://www.server-world.info/query?os=Ubuntu_20.04&p=mariadb&f=1

Apache2とかPHPも上記サイトのカテゴリを参考にしてインストールしました。

ミドルウェアを落とすと次に必要なのは、データです。
まず、移転元のサーバーにssh接続をして、WordPressの対象データをアーカイブ圧縮します。
私の場合はドキュメントルート以下と証明書のファイルをアーカイブして圧縮しました。

tar -czvf アーカイブ.tgz 対象ファイル

ファイルのアーカイブを作成しgzip形式で圧縮する

次にデータベースをダンプします。

mysqldump --opt データベース名 > 適当なデータベース名


上記のデータをFTP等を利用して新サーバーに転送します。

新サーバーでは、データを入れるためにmysqlにログインし、
データベースを作成します。

mysql -u ユーザー名 -pパスワード
create database データベース名

mysqlから接続を遮断後、データベースをリストアします。

mysql 作成したデータベース < ダンプデータベースファイル名

リストアの確認はmysqlにログイン後、対象のデータベース内のテーブルを確認してみたらいいと思います。

次にドキュメントルート以下にファイルを解凍

tar -xzvf アーカイブ.tgz

gzipで圧縮されたアーカイブを展開する

この後はWordPressのコンフィグファイルの設定でパスワード等をいじったら、サイトの確認をしてください。
http://対象のIP で確認できると思います。
私の場合は、サイト内で下記エラーが発生していました。


お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

エラーに従ってMySQLの拡張モジュールをインストールしました。

apt -y install php-mysql

その後、サイトを確認すると
データベースの接続ができません
のエラーに変化していました。
大抵はWordPressのコンフィグファイルのパスワードの打ち間違いとかですが、そうでもなく少しハマりました。
色々調べたところ、WordPressのコンフィグファイルのhostname を localhost から 127.0.0.1 に変えたところ
サイト内が重大なエラーが発生と表示が変わりました。
上記の場合、Apache内のエラーログを確認したら原因がわかります。
今回の場合、とあるpluginからエラーが発生していたのでそれの権限を000にするとサイトが正常に表示されました。
サイトが見れたからいいものの、コードをみやすくするためのプラグインだったので少し不便になりましたw
代わりのプラグイン見つけないと......

次に証明書の設置です。
下記サイトが参考になりました。
https://blog.fileshelfplus.com/vps/280

少しハマったところは、新サーバーのサイト内に証明書の期限が有効であるのに証明書としては無効であること。
結果的にDNSサーバーのAレコードを移転元から移転先に変更すれば問題なく証明書が有効となりました。

これでひとまずはデータ移行の終了です。

その他参考
ubuntuでcronの設置
https://intellectual-curiosity.tokyo/2018/10/12/ubuntu%E3%81%A7%E3%81%AEcron%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/

ubuntuでファイアウォールの設置
https://lifework-blog.com/ubuntu-server-firewall/