2018年2月アーカイブ

自宅サーバをIPv6対応させる

予想に反して、asahi-netのIPv6(フレッツ)が申し込みしてないはずだったのに勝手に有効化されてしまい、よく確認してみると「withフレッツ」契約だと強制的に有効にさせられるらしいので、まぁ前向きに、自宅サーバ(Linux CentOS6.9)をマジメにIPv6対応させることにした。

● ルータの設定
IPv6についてはパススルーだけ対応の古いルータ(AtermWG600HP)なので、Linux側でファイア・ウォールさせる方針にする。ルータは「IPv6ブリッジ」を有効にしておくこと。asahi-netのフレッツはIPv6はIPoE方式(PPPoEじゃない)なので、これだけでほぼ設定は終わる。

ひかり電話契約がある場合はDHCPv6-PD形式でHGWが受ける形式になり、ひかり電話契約がない場合は DHCPv6で prefix /64 がIAIDに直接割り振られる・・・感じらしいけど正直まだきちんとは理解できていない。

● LinuxのIPv6設定
「どーせIPv6なんか使わんやろ」と思っていた昔に設定したLinuxなので、案の定無効化されていた。
# vi /etc/sysctl.d/ipv6-disable.conf

#net.ipv6.conf.all.disable_ipv6 = 1
#net.ipv6.conf.default.disable_ipv6 = 1
コメントアウトして再度有効に。再起動後、ifconfig で IPv6 (Scope:Global)が/64で取れていることを確認。

● Linuxのip6table設定
ファイアウォールの方は、
# vi /etc/sysconfig/ip6tables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
COMMIT
最初からある設定も参考にして、こんなとこか?(http,httpsを有効にする) 外へ見せてるサーバなので、DROPよりもREJECTのほうが好み。

# /etc/init.d/ip6table start
# /etc/init.d/ip6table status
# chkconfig ip6talbes on

● HTTP/HTTPDの確認
TCP 80 を許可/不許可切り替えながら本当に動いているかを確認してみる。

[rarul@mana ~]$ curl http://fe80::c23f:****:****:****/
curl: (7) Failed to connect to fe80::c23f:****:****:****: Invalid argument
[rarul@mana ~]$ curl http://[fe80::c23f:****:****:****]/
curl: (3) [globbing] error: bad range specification after pos 9
[rarul@mana ~]$ curl -g 'http://[fe80::c23f:****:****:****]:80/'
curl: (7) Failed to connect to fe80::c23f:****:****:****: Invalid argument
... curlが古いのか結局わからんかった。なので代わりにtelnetで、

[rarul@mana ~]$ telnet fe80::c23f:****:****:****%eth0 80
Trying fe80::c23f:****:****:****%eth0...
Connected to fe80::c23f:****:****:****%eth0.
Escape character is '^]'.
^C
Connection closed by foreign host.
反応あり/なしがわかったから、もう確認はtelnetだけでいいや・・・telnetの場合は「%eth0」が必要らしい。別Windowsマシンからも、「http://[fe80::c23f:****:****:****]/」で確認できたのでこれでよさそう。

あと、Apacheのアクセスログのaccess_logに IPv6が残っていたよ、ヤッター
fe80::4845:****:****:**** - - [07/Feb/2018:17:22:35 +0900] "GET / HTTP/1.1" 200 2422 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"

● DNS
www.rarul.com の AAAA レコードを登録して完了。DNSが浸透してきた頃にアクセスログ見て最終確認すればよいかと。

OSをまだあまり身近に感じられていないプログラマを対象に、Linuxがなんのためにどんなことをやっているのかを、実際にプログラムを動かしながら理解しようという趣旨の本。あまり難しい話には持っていかずにわかりやすくかつ実践的に迫っている点が特徴になっている。

大学のOSを対象にした講義などではどうしても「OSを作る人の論理」で解説がなされてしまうことが多いが、本書は、OSを使う側の視点に立とうとしているところがよいと思う。世の中、OSなんて小難しくてとっつきにくくブラックボックスとしてしか扱えないプログラマが多いので、そういう人のためのOS入門書としてはよく書かれている。

ただ敢えて厳しく書くと、著者はHPCが専門ということもあり、4章(プロセススケジューラ)や5章(メモリ管理)は非常にわかりやすく書かれているものの、7章(ファイルシステム)や8章(ストレージデバイス)は中途半端に感じられる。特にファイルシステムは、あまり実験的な例が出ていなくて、性能面よりも機能面を強調していて、また他の章に比べて具体的なファイルシステム名が前面に出すぎている。前半が非常に良いだけに、もう7章や8章は取っ払っても良かったんじゃないかとすら思える。

最近はLinux Kernelについての本は壊滅的だったりするので、そんな中で、本書は特に前半が非常によく書かれていて、OSの初心者にはオススメ。反面、それなりにOS開発に触れている人にとっては手応えがないのであえて買う必要はないのかなと思う。

下記はただの個人的な本書に関するメモです。
- $ swapon --show
- /sys/kernel/mm/transparent_hugepage/enabled
- /sys/devices/system/cpu/cpu0/cache/index0
- /proc/sys/vm/dirty_writeback_centisecs
- /sys/devices/system/cpu/cpu0/topology/thread_siblings_list

経営層やプロジェクトマネジャーの立場の人をターゲットに、システム開発の失敗事例やプロジェクトの回し方について語った本。開発プロジェウトの中でプログラマが具体的にどういう仕事をしているのかについても触れている。

先に書いてしまうと、私からするとこの本はタイトル詐欺でした。プログラマという業種の人柄に触れて書かれた箇所も確かにあるものの、結局のところこの本はシステム開発におけるプロジェクトマネジメントの本です。タイトルだけ読むとこう、日常生活やら友人としての接し方やらにフォーカスしてるかのようにも見えますが、そうではなくて、よくあるプロジェクトマネジメントの話です。

その上で、プロジェクト開発の点から考えても、他の本と比べて特筆して語られていることがあるわけでもなく、敢えてこの本を選ぶ必要もないのかなぁ。たしかに8章や9章あたりにプログラマ特有の気質に迫ろうとする部分もあるけど、正直あまり掘り下げて洞察しているわけでもない。英語から日本語に訳した場合に見られる独特の言い回しも多く、読みやすいわけでもない。その中でコンピュータ学の触りを中途半端に解説してる箇所もあったりと、どうもチグハグな感が拭えない。

というわけで、私からするとこの本の良いところをあまり見いだせないという辛口評価です。プロジェクトマネジメントの話を求めるにしても、別の本を買ったほうがいいかと思います。

このアーカイブについて

このページには、2018年2月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2018年1月です。

次のアーカイブは2018年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.5.0