init system basic

init プロセスが Linux の起動処理、システム管理、デーモンプロセス処理等を担当しており、 Sysvinit -> Upstart -> Systemd へと変遷してきた。

  1. BIOS 起動
  2. BIOS から boot loader が起動。
  3. boot loader が Linux kernel を起動。
  4. Linux kernel が init プロセス(PID 1)を起動。

boot loader とは

電源投入(システムリセット)時、OSやモニタ等基本システムを主記憶へ展開し、ユーザプログラムが実行できるようにするまでの処理を boot, bootstrap というが、 boot loader は、その処理で使われる不揮発性の補助記憶装置にある目的のプログラムを読出し、揮発性の主記憶に書込むプログラムである。

Sysvinit

  • 伝統的に使われてきた init システム
  • service を PID によって管理。PIDの場合、プロセスが2度 fork すると親プロセスと孫プロセスの関係性が切れる。
  • /etc/init.d 。
  • 処理は全てシェルスクリプトを記述する。

Upstart

  • Sysvinit システム改良版。
  • Ubuntu 等で採用。
  • event driven (イベント駆動型)。
  • Ubuntu の canonical チームが開発。
  • /etc/init 。
  • conf ファイルを記述する。

Systemd

  • シェルスクリプトを記述せず、Unit という単位で設定ファイルによる service 管理を行う。
  • 処理の細分化、並列実行、優先度設定、依存関係等を管理可能。
  • システム起動時だけで無く、プロセス起動のタイミングが柔軟に設定可能 (タイマー、ソケット通信検出、ファイルシステムのマウント等)。
  • service を cgroup によって管理するため、fork によるプロセスの親子関係が切れない。
  • 2014/12 release の CentOS 7 が Sysvinit から systemd に変更されている。

サードパーティクッキー問題

Cookie 種類

1) first party cookie

  • Client からアクセスしている Webサーバー側から発行される。
  • セッション保持等で利用。

2) third party cookie (追跡 cookie)

代替として、はてなにログインしている場合でも、次のような非ログイン利用者向けのメニューが常に表示されます。
* Client からアクセスしている Web サーバー(ドメイン)とは別サーバ(ドメイン)から発行される cookie
* バナー広告、ソーシャル連携ボタン、ifame 等で異なるドメインが表示される際に利用
* ドメインをサイトごとに分けている場合は、ログイン情報保持等の観点から third party cookie が利用される。
* Cookie 発行者がユーザーの閲覧情報収集可能。
* Client 側から無効にすることが可能。

Proxy basic

Proxy server は、内部ネットワーク(例えば社内 intranet)からインターネット接続(社外 internet)を行う際、中継サーバの役割をして、キャッシュによるアクセス高速化や(比較的)安全な通信を行うことができる。一般的には Proxy server といえば、http trafic を対象とした http proxy を指す。
client pc は proxy server と http connection を確立し、web server は proxy server と http connection を行う。web server 側は proxy server の ip address が送信元として表示されるため、client pc の ip address が把握できない。

Proxy メリット

  • caching
    • proxy server の HDD に web server から受信したデータを caching することで、 client pc からの request に対してある程度早い response が可能。
  • user authorization
    • proxy server で user authorization を設定することで、認証済みの client のみアクセス可能になる。
  • filering
    • 特定 url へのアクセスを禁止することにより、web サイトの閲覧を一部制限することができる。
  • trafic 管理
    • 外部にアクセスしている http trafic を一元監視することが可能。
  • 匿名性
    • web server へは proxy server がアクセスすることにより、client pc の ip address が web server 側へ伝わらない。

DNS server の経由

  1. client “http://hoge.com/test.html のIPをくれ” -> proxy
  2. proxy “http://hoge.com のIPをくれ” -> DNS (stub resolver)
  3. DNS(full service resolver) “11.11.11.11 どうぞ” -> proxy
  4. proxy “test.html をくれ” -> 11.11.11.11
  5. 11.11.11.11 “test.html どうぞ” -> proxy
  6. proxy “IPとtest.html どうぞ” -> client

full service resolver と stub resolver の違い

resolver (名前解決の為のDNS client) では、1つ以上の DNS server のIPアドレスを持ち、アプリケーションが名前解決を要求した場合 resolver (stub resolver) にキャッシュされた情報を調べる。stub resolver は DNS リクエストを送信するだけの client pc, DNS server である。情報がない場合は、 resolver が DNS server (full service resolver) へ再帰問い合わせを行い(完全に名前解決を行い) client へ問い合わせ結果を返し自身に問い合わせ情報をキャッシュする。
stub resolver は、OSに付随する TCP/IP プログラムに組み込まれている。nslookup, dig のようなもの。

DMZ (Demilitarized Zone)

非武装地帯 (DMZ: DeMilitarized Zone) は、private network と 外部 network の中間に敷かれる領域。

関連記事

  • (DNS basic)[https://wp.me/p7Eb3G-ra]

DNS basic

名前解決 (正引き, 逆引き)

ホスト名(test.com)からIPアドレスを解決すること。逆引きはその逆。client からの名前解決要求を受けた cache DNS server (full service resolver) が権威 DNS server (DNS contents server) 群と反復問い合わせ(検索)を行い、その結果を client へ返却している。

この際に client (stub resolver) から cache DNS server への問い合わせを “再帰問い合わせ” という。

cache DNS server から 権威 DNS server 群への問い合わせを “非再帰問い合わせ”, または “反復問い合わせ” という。問い合わせを受けた権威 DNS server は自身が管理する zone 情報, cache 情報のみを応答する。他 DNS server へは問い合わせを行わない。

full service resolver と stub resolver の違い

resolver (名前解決の為のDNS client) では、1つ以上の DNS server のIPアドレスを持ち、アプリケーションが名前解決を要求した場合 resolver (stub resolver) にキャッシュされた情報を調べる。stub resolver は DNS リクエストを送信するだけの client pc, DNS server である。情報がない場合は、 resolver が cache DNS server (full service resolver) へ再帰問い合わせを行い(完全に名前解決を行い) client へ問い合わせ結果を返し、自身に問い合わせ情報をキャッシュする。cache DNS server (full service resolver) は非再帰問い合わせを 権威 DNS server (DNS contents server) へ行う。

stub resolver は、OSに付随する TCP/IP プログラムに組み込まれている。nslookup, dig のようなもの。client PC の DNS キャッシュは ipconfig,displaydns で確認可能であり、ipconfig,flushdns で消去可能。

cache DNS server (full service resolver) は intranet 内に配置するのみであり、権威 DNS (DNS contents server) と同居させるのはセキュリティ上危険性が高い。権威 DNS (DNS contents server)では、cache 機能を無効にしておくこと。

DNS forwarder

自分自身では解決できない DNS request を、指定した cache DNS server (full service resolver) へ転送し代わりに解決してもらう DNS server のこと。例えば企業内 LAN として構築した DNS forwarder に、指定した DNS server が cache DNS server (full service resolver) として動作する。

client からの DNS名前解決 request に応答する際、forwarder は特定の DNS server へ1度問い合わせ要求を転送 (して結果を cache) するのみである。cache DNS server(full service resolver) は複数の DNS server に対して順番に問い合わせを行い名前解決を行う。forwarder は network の負荷が full service resolver に比べて少ない為、intranet で forwarder を1台構築し、ISP(Internet Service Provider) 側 full service resolver へ forward させる使い方が常套。network 回線が名前解決負荷が高くなるのを防ぎ、ISP側の変更に対して client の設定を変更せず、forwarder の設定変更のみで済むようになる。

A record

  • 単一のドメイン名を、複数のホスト (global IP) に紐づけることができる。
  • ドメイン名(1):IPアドレス(n)
  • IPアドレス(1):ドメイン名(n)

CNAME (resource name)

  • A record で定義済みの複数ドメイン名(ドメイン名:参照ドメイン名)を1つのホスト(global IP)に紐付けることがてきる。
  • A record 定義済みのドメイン名と別ドメイン名を設定することができる。
  • 同様のAレコードが複数ある場合、IP変更時の手間を減らす。
    www.taro.jp. IN CNAME www.taro.com.
    ftp.taro.com. IN CNAME www.taro.com.
    app.taro.com. IN CNAME www.taro.com.

別管理者のドメインに紐づける
other.taro.jp -> other.ne.jp

CNAMEを設定した場合、他のレコード (TXT, CNAME, NS) を一緒に設定出来ない。

SOA (Start Of Authority)

  • DNSツリー構造において分散管理されている zone それぞれの委任に関する Authority 情報を示すレコード。
  • 権威 DNS server 担当 zone に関する Authority 情報が記載されている。
nslookup -type=soa test.net 8.8.8.8
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
test.net
    origin = ns-781.awsdns-33.net
    mail addr = awsdns-hostmaster.amazon.com
    serial = 1
    refresh = 7200
    retry = 900
    expire = 1209600
    minimum = 86400

refresh (秒)
* zone 情報をリフレッシュするまでの時間。
* secondary DNS server が zone 情報の更新を確認する間隔。

retry(秒)
* refresh で更新が行えなかった場合にリトライする時間間隔。

expire(秒)
* refresh で更新が行えない情報が続いた場合に、secondary DNS server が保持するデータを利用する時間

minumum (Negative cache TTL)
* negative cache (存在しないドメイン名をキャッシュ) を維持する時間。
* 存在しないドメイン名を権威DNS (contents DNS server) へ問い合わせた場合、”NXDOMAIN” ステータスが返却される。

関連記事

個人的なggr方メモ

  • ググる
  • github内 で検索
  • stackoverflow内 で検索
  • qiita内 で検索
  • slideshare内 で検索
  • 公式サイト(レポジトリ)と照らし合わせ