R6 NWスペシャリスト試験を受けたのでメモ

## はじめに
応用情報に合格したので午前免除目当て+知識UP↑↑を目的にR6のネスペ受験しました。  
結果は午後1の選択問題に○を書き忘れて不合格になったのでショゲていたのですが、どうせ来年も受験する気になると思うので個人的なメモを残しておきます。
思い出した事とかあればぼちぼち追記します。

## 注意
割と急ピッチで知識をインプットしたので間違えている箇所とかあると思います。  
これ本当に合ってますか？みたいなやつがあれば各自で調べて成長の糧にしてください。  
心の優しい方、いらっしゃいましたらコメントでご指摘マサカリお願いします。

メモの構成について、一応レイヤ毎に分けたつもりですが結構ぐちゃぐちゃです。えへへ。

## VRRP系
### ・VRRP+GARP
VRRPの問題でわりかし出る印象。  
VRRPのマスターが切り替わった時にGARPを送信することでL2のMACアドレステーブル（FDB:Fording Data Base）を更新する。

なぜGARPか？結論、RFCにそう書かれているから。南無。  
GARPを利用するのは決定事項らしいですね。

一応GARPでMACアドレステーブルが更新できる理屈。  
L2のMACアドレステーブルには`仮想MAC：マスタ機器が接続されてるIF`の組で情報が記録されてるけど、バックアップに切り替わってバックアップ機器がGARPを送ると、送信元MACが仮想MACのパケットがバックアップ機器が接続されてるIFを経由して来るためL2のMACアドレステーブルが更新される。

GARPじゃなくてARPでいいじゃん。  
→GARPの宛先IPフィールドを他ホストのIPにする必要がない。
(他のホストのMACアドレスを知りたいわけじゃない)

### ・VRRP用語  
* 仮想IPアドレス：VIP(Virtual IP)
* グループ : VRID  
※仮想MACアドレスとプライオリティ値はそのまま言う。  
※プライオリティは優先度という表現をする時もある。問題によりけり

### ・VRRPグループを構成するとは
VRRPを設定するとき、VRRPを構成する機器全てでグループを構成するわけではない。機器の特定のIFどうしで構成する。  
ここを勘違いすると、VRRPのアドバタイズメントする時の通信経路とかVRRPのマスタ機器が切り替わった時の通信経路とかでハマる。

### ・VRRP構成時の宛先IP、送信元IP
VRRP構成の時はIPアドレスが仮想IPになるから、宛先どこにする系の問題は仮想IPを考慮したりする。

### ・VRRPを構成するタイミング
OSPFとかBGPとセットで出てきた時、VRRPを先に構成しておくとOSPFとかBGPで作成される経路情報が仮想IPアドレスの関係でマスタ機器としか交換できないので、  
何らかの理由でバックアップ機器がマスタに切り替わったとき経路情報を持ってないから通信できなくなる。

だからVRRPを構成する時はルーティングプロトコルを導入したあとが良いらしい。はぇ〜。

### ・VRRPトラッキング
VRRPアドバタイズメントとトラッキングの違い。

* VRRPアドバタイズメント  
マスタ機器から定期的にバックアップ機器に生きてますよっていうパケットを送信する。  
バックアップ機器はこれを定期的に受信することでマスタ機器が壊れているかどうかを判断する。  
VRRPアドバタイズメントが届かなくなったらバックアップ機器がマスターに昇格する。<br>
パケットはVRRPを構成しているIF同士でやりとりする。
だからVRRPが構成されている所とそうでない所でセグメント（IPアドレス）が同じかどうかとか一応気にかけたほうが吉。  
一応過去問でVRRPアドバタイズメントパケットがどの機器を経由するか〜みたいなのがある。(R3の午後1辺りだった気がする)
<br>

* VRRPトラッキング  
VRRPを構成していない側のポートが死んだときとかに利用する。  
片側でVRRPを構成していても、もう片側のVRRPを構成していない方のポートがダウンした時とかはマスタ機器が切り替わらない(アドバタイズメントはVRRP構成を組んでる方できるから)  
だから、マスタ機器のVRRPを組んでない方でポートがダウンしたりすると負荷分散が上手くされなくなったりする。
VRRPトラッキングは発動すると勝手にマスタ機器のプライオリティ値が下がってバックアップがマスタになる。  
詳しい状況はR4午後2-1の後半の方を見ると良き。

## 監視方法系
ping監視だとあるケースで正常に監視ができないのは何故かとか結構問われる。
個人的にサービス問題。

### ・レイヤ別監視方法とデメリット
* アプリケーションプロトコル層での監視  
GETリクエストとかでWebページのレスポンスが適切に返ってくるかどうか。  
デメリット：特にないと思われ。強いて言うなら、サーバがダメなのか通信経路がダメなのかすぐ分からないとか。

* トランスポート層での監視  
SYNパケットで監視対象が生きているかチェック  
デメリット：3WEYハンドシェイクまではできるけど、その上のプロセスが死んでるときに障害を検知できない。

* ネットワーク層での監視  
pingで監視対象が生きているかチェック  
デメリット：トランスポート層と同じ。通信経路の障害は検知できるけどプロセスが死んでもサーバまではpingが届くので、プロセス起因の障害は検知できない。

## ルーティング
### ・静的経路(スタティックルーティング)が設定されているか
静的経路の設定がされている場合、静的経路は2番目に優先度が高いルーティングのため他のルーティングプロトコルを導入した際に意図しない動作をする可能性がある。  
過去問で「新しいルーティングプロトコルを導入した際にルータに行う設定は何か」みたいな問題が有った気がする。

### ・ルーティングの優先度
動的ルーティング(OSPFとかBGP)を導入する時はルーティングの優先度をちょっと意識する。  
力関係が静的ルーティング>動的ルーティングなので、たまに動的ルーティングを導入した時の挙動の説明とか設定の変更とかが問われた時、回答が静的ルーティング（静的経路情報）の方が優先されるからとかある。

### ・スーパーネット化とルーティングループ
ある範囲のIPアドレスを集約すること。  
* メリット：L3機器(ルータやL3SW)の処理負荷が下がる

* 注意点  
ある範囲のIPアドレスを集約するため、一部使われていないIPアドレスも一緒に集約される。なので、集約されているけど存在しないIPアドレス宛てに通信をした際、ループが発生する可能性あり。  

* 理由  
自ネットワークと他ネットワークのルータ間でデフォルトルートが設定されていると、存在しないIPアドレス宛ての通信はすべて外のネットワークに送信するため。お互い自分が知らないセグメントなのでひたすら外に送りあう。

* 注意点の対処方法  
特定のセグメント宛てのIPアドレスは破棄するようルータに設定を入れる。  
「Null0」とか「Nullルーティング」とかで調べると色々出てくる。

### ・CIDRの/32
一意のホストを特定するサブネットマスク。/32だと一意にIPが決まる。  
ネットワークアドレスとブロードキャストアドレスを利用するためには最低2つ以上bitが変わる必要がある。

### ・デフォルトルート
ルーティングの問題で通信ができない理由を問われるとき、デフォルトルートが正しく設定されていない可能性あり。  
よく設定を変えたり新しい機器を追加する系の問題で出る印象。  
あとは動的IPアドレスの時に静的ルーティングとして設定できないから、動的IPアドレス宛ての通信はデフォルトルートにするとかある。

## VPN
### ・ネットワークVPN
だいたいIPsecが出る。IPsecはユニキャストでしか通信できない。  
理由は、IKEを使ってエンドポイント間でやり取りするためSAを張るため。  
マルチキャスト通信でIPsecを利用する場合は、IPsec over GREを利用する。(IPsecを使ってOSPFをする時とか)  

ポートは500番と4500番を利用。  
※FWで制限がかかっている場合は500と4500以外のポートを開放する？
H25~H28辺りの過去問(午後)でIPsecのポート周りの問題が出てた気がする。

### ・NAT超え難しい問題

※ESPでのNATのお話はNAPT(IPマスカレード)を前提としている。

ESPでIPsecを利用している時に通信経路にNATが入ると通常は通信ができない。  
理由は、ポート番号の情報が含まれるTCPヘッダは暗号化されているから。  
そのためESPを利用したIPsec通信を行う時は新しくUDPヘッダを追加する。

過去問で、「ESPでカプセル化されたパケットがNATを経由する時ポート変換が行えないのは何故か」みたいなのが出てた。

### ・AHプロトコルでIPアドレスを変換できない問題
これもNATを経由する時とかのお話。  
NATに限らずだけど、通信経路の途中でIPが変わるとエラーが発生する。  
理由は、AHを使うとパケット全体が認証されるから。認証範囲のIPアドレスが途中で変わると不正なデータとなる。ESPは認証範囲の違いでIPアドレスが変わっても問題なし。

### ・IPsecで利用できるモードとプロトコル
- プロトコル  
  - AH：認証のみ
  - ESP：認証+暗号化

- モードとプロトコルの組み合わせ  
  - トランスポートモード+AH  
    生IPとTCPヘッダの間にAHヘッダを挿入。暗号化はされない。 
    
    |認証範囲|暗号化範囲|
    |:-|:-|
    |IPv4 ~ Data|なし|

    **パケット：| IPv4 | AHヘッダ | TCPヘッダ | Data |**

  - トンネルモード+AH  
    生IPの下に新IPとAHヘッダを挿入。新IPのおかげで機密性が高まる。暗号化はされない。 

    |認証範囲|暗号化範囲|
    |:-|:-|
    |新IPv4 ~ Data|なし|

    **パケット：| 新IPv4 | AHヘッダ | IPv4 | TCPヘッダ | Data |**

  - トランスポートモード+ESP  
    生IPとTCPヘッダの間に「ESPヘッダ」を挿入。後ろの方に「ESPトレーラ」と「ESP認証データ」を挿入。

    |認証範囲|暗号化範囲|
    |:-|:-|
    |ESPヘッダ ~ ESPトレーラ|TCPヘッダ ~ ESPトレーラ|  

    **パケット：| IPv4 | ESPヘッダ | TCPヘッダ | Data | ESPトレーラ | ESP認証データ |**

  - トンネルモード+ESP  
    生IPの下に新IPとESPヘッダを挿入。後ろの方にESPトレーラとESP認証データを挿入。  
    新IPのおかげで機密性が高まる。暗号化もされる。  

    |認証範囲|暗号化範囲|
    |:-|:-|
    |ESPヘッダ ~ ESPトレーラ|IPv4 ~ ESPトレーラ|

    **パケット：| 新IPv4 | ESPヘッダ | IPv4 | TCPヘッダ | Data | ESPトレーラ | ESP認証データ**

### ・L2VPN
勉強してないです。

### ・MLPS-VPN
CEルータ(Costomer Edge)とPEルータ(Provider Edge)の間でラベルを貼る。  
ルーティングにIPを使わないでラベルで行う。ラベルはデータ容量が4byteだから超早い。  
VRFとかでも出てくる。勉強してないからあんまり分からん。

## 冗長化系
冗長化のお話で出てくる技術は下記3つくらい。

* スタック
* チーミング
* LAG(リンクアグリゲーション)

|技術|説明|
|:---:|:---|
|スタック|LAGとセットで出てくる印象。スタックすると処理性能があがる?<br>スタックの話がR3年の午後2-1で出た気がする。| 
|チーミング|2つのNICをまとめること。<br>方式にはActive-ActiveかActive-Standbyがある。<br>データの転送量とかで何か問われたりしたかも。|
|LAG|よく出る。複数のリンクをまとめること。<br>一つでもリンクが使えなくなったら両端でportを全部閉じる時と、閉じない時がある？よく分散方法とLAGのセットで出たりする。<br><br><以下嬉しいこと><br>・データ転送の高速化<br>・負荷分散による回線効率化<br>・リンク故障時の通信維持|

### ・LACP
令和元年午後1-1で出た。以下引用。

>Link Aggregation Control Protocol（以下、LACPという）を設定する。LAGを構成する回線のうち1本が切れた場合には、②<u>切れた回線を含む同一LAGを構成するIF全てを自動的に閉塞する</u>ように設定する。  

回線に障害が起きた時、LAGを構成する全てのIFを自動で閉じるらしい。すごいですね。  
LAGだとリンクダウンを伴わない障害が発生しても何もしない。壊れた回線へパケットが流れる。LACPだとリンクダウンを伴わない障害が発生した時に自動でポートを閉じる。

リンクダウンしてないけど障害が起きた事を、LAGを構成している機器が検知できる場合はLAGを利用。検知できない場合はLACPを利用すればいいのだと思う。

ちなみに上の引用の問題は 「静的LAGよりLACPを使ったほうがいい理由を答えろ」 です。

### ・分散方法
IPだったりMACだったりからハッシュ値を計算して分散経路を決定する。  
よくMACだけの時と比べてIP+MACの分散方法のほうがいい理由とか聞かれたりする。  
MACだけだと通信の対象が少ない時に分散が偏ったりする。  
問題文の中で分散方法の比較とか出たら、上手く分散されるかどうか、偏ったりしないかどうかを見ると良い。

ちなみに、経路分散した時のパケットだけど、1つのパケットがバラバラになって複数の経路を通るわけではない。パケットAは回線1、パケットBは回線2みたいな感じで分散する。

## STP系
個人的に苦手プロトコル。下記のような問題が出たりする。

* STPに比べてRSTPの方がポート切り替え時の収束(コンバージェンス)が速い理由
* STPと比べた時のLAGのメリット
* どのポートがブロックされるか

### ・STPに比べてRSTPの方がポート切り替え時の収束(コンバージェンス)が速い理由
STPは通信経路を再決定する時毎回BPDUを利用してSTPを有効にしている機器の状態を確認する。  
ポートの状態遷移にはそれぞれ決まった時間が設定されているので毎回待つ必要がある。  
RSTPは通信経路を再決定する時、あらかじめ決めておいたポートを利用するので収束が速い。詳しいことはSTPのポートが決まる仕組みとかを調べてください。

### ・STPと比べた時のLAGのメリット
STPは通信がループすることを防止することを目的としたプロトコル。副次的に冗長化の効果もついてるだけ。  
ポートがブロックされると、ブロックされたポートからは通信ができないからその分通信帯域が減る。たいしてLAGはフルで通信帯域を利用できるのでSTPと比べると使える帯域が多い。

### ・どのポートがブロックされるか
ルートブリッジから一番遠いポート。  
ブロックされるポートを決定するアルゴリズムがあるけど覚えてないです()  
このサイトが詳しいので参考になります。([STPをはじめから](https://www.infraexpert.com/study/study27.html))

## BGP(eBGPとiBGP)

パスベクタ形式のルーティングプロトコル。AS間のルーティングに使う。
各ASはAS番号(2byte:65535)を持っている。

BGPを設定した機器をピアと言い、ピア間で通信するたにセッション（ピアもしくはネイバーとも言う）を張る。BGPはフルメッシュ構成なので`n(n-1)/2`だけセッションを張る。

BGPはTCP:179を使う。  
BGPピア同士で定期的にKEEPALIVEを送って生存確認をする。  
**KEEPALIVEで死んだと判断したらBGPセッションを切断して経路情報をクリア**する。

### ・iBGPがBGP広報をする時はnext_hop_selfをする
eBGPピアから外のASのAS_PATHを受信し他のiBGPピアへ広報する時にNEXT_HOP属性を自身のIPアドレスに書き換える。eBGPピアは情報を広報する時にNEXT_HOP属性を書き換えるが、iBGPピアは書き換えない。  
だからeBGPピアから受け取った情報をiBGPピアを経由して他のiBGPピアへ広報しようとすると、最初に広報を送ったeBGPピアのIPアドレスが残ってしまう。

* next_hop_selfをしないとどうなるか  

例えば下のような構成の時 ([R3年午後2-2から引用](https://www.ipa.go.jp/shiken/mondai-kaiotu/2021r03.html#haru))

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3566256/7d170ce8-5a2b-6c6f-2af8-f6497a92b3a3.png)

`ルータ10Z`からA社へ他のAS_PATHを広報するとする。  
`ルータ10`は`ルータ10Z`からeBGPで情報を受信する。この時の`ルータ10`のNEXT_HOPは`ルータ10Z`なので問題なし。  
BGPテーブルを元に適切なルーティングテーブルが作成される。

次に内部で広報をする時、`ルータ11`は`ルータ10`からiBGPで情報を受信する。  
しかし、iBGPではNEXT_HOPを書き換えないので`ルータ11`が受信した情報のNEXT_HOPは`ルータ10Z`になっている。

そうすると、`ルータ11`のルーティングテーブルには`ルータ10`へのNEXT_HOPは`ルータ10Z`のIPアドレスですよという情報が生成されてしまう。

内部で`ルータ11`を経由して`ルータ10Z`に送信したい時のNEXT_HOPは`ルータ10`のIPアドレスである必要があるのに、`ルータ10Z`のIPアドレスになっているので上手く通信ができない。

過去問では「next_hop_selfをすると何のIPアドレスが入るか」とか「iBGPで広報したのに上手く通信ができないのは何故か」みたいなのが出てたりした。

ちなみに、なぜiBGPがBGP属性を操作しないのかというと下手に属性を操作するとループが発生する可能性があるから。

### ・iBGPのBGP広報はループバックインターフェースを使う
iBGPのピアリングを行うために、iBGPの設定を入れてある機器に対してこのIPアドレスでピアリングしてねというIPアドレスを設定する。  
この時だいたいは「ピアリングをする時はループバックインターフェースに設定したIPを使ってね」という設定をする。

なぜ、ループバックインターフェースに設定したIPアドレスなのか。  
それはループバックインターフェースのIPアドレスは通信を行うために特定のインターフェースに依存しないから。そもそもIPアドレスは下のいづれかに割り振られる。

* 各インターフェース
* 機器本体
* 機器のループバックインターフェース

この時、各インターフェースに割り振られたIPアドレスを経由するように設定すると、そのインターフェースがダウンした時に通信できなくなる。  
でも、ループバックインターフェースのIPアドレスを利用すると各インターフェースではなく機器本体へ通信をすることになるので、送信元から通信が来るときにどこを経由してもよくなるというマジック。

ちなみに似た言葉でローカルループバックインターフェース（lp）という言葉があるけど、別物です(大事)。  
lpは機器自身を指す仮想インターフェースで、よく目にする`127.0.0.1/8`のやつ。一度自分自身を経由して他のアプリへ通信したい時とかに使うもの。  
ループバックインターフェースは基本的にどんなIPアドレスを振っても問題ない。

自分はこれを同じものだと思ってたので、なんでループバックインターフェースを設定するんだ!?って混乱した。

**※もしかしたら機器本体に割り振るIPとループバックインターフェースに割り振るIPは同じかも**

### ・iBGPは他のiBGPピアから受け取った経路を転送(再配布)しない
iBGPから情報を受け取ったiBGPはその情報を他のiBGPへ転送しない。  
転送を許可すると一周まわって自分のAS番号を持った情報を自分自身が受信してしまうから。

※eBGPは他のeBGPから受信した経路だけでなくiBGPから受信した経路も他のeBGPへ広報するらしい？(詳しく調べてないのであしからず)

* 下記の記事が参考になる  
[サービスプロバイダバックボーン設計入門 BGP概論](https://www.nic.ad.jp/ja/materials/iw/2019/proceedings/s08/s8-matsuzaki.pdf)  
[ISPにおける経路設計(IGP・BGP)](https://www.nic.ad.jp/sc-online/program/sc-online-day1-5.pdf)  
[インターネット10分講座：BGP](https://www.nic.ad.jp/ja/newsletter/No35/0800.html)

## OSPFのエリア

### ・LSA
以下3つくらいは覚えておく。

|タイプ|説明|
|:-|:-|
|LSA1（ルータLSA）|ルータ自身のルーティング情報のみ伝達する。<br>コストとなるメトリック値とか入ってる。|
|LSA2（ネットワークLSA）|自分のエリアのルーティング情報のみ伝達する。<br>よそのエリアのことは知らない。|
|LSA3（ネットワーク集約LSA）|自分のエリア情報を他のエリアに伝達する。|

### ・バックボーンエリア
エリア0=バックボーンエリア。絶対存在する。  
エリア1以上はエリア0と隣接していないとダメ。  
あるエリアが隣接していないバックボーンエリアと通信するには`Virtual Link`を使う。  
Virtual Link is エリア0とエリアnを仮想のリンクで隣接しているように見せかけること。

### ・コスト
コストは小さいほうが経済。  
下のように通信帯域が大きければコストが下がる。

* 10MB -> 10
* 100MB,1GB -> 1

### ・ECMP
|モード|処理方法|特徴|利点|
|:-|:-|:-|:-|
|パケットモード|経路選択はパケット毎にランダム|宛先が同じでもパケットが通る経路はバラバラ|分散の偏りが少ない|
|フローモード|srcIPとdestIPで経路を選択|送信元と宛先が変わらなければ経路は固定|通信品質への影響が少ない|

### ・デフォルトルートの設定
OSPFは動的ルーティングなので静的ルーティングのデフォルトルートにはノータッチ。  
なのでOSPFを導入したらデフォルトルートの設定も入れてあげる必要がある。

## VLAN
あんまり勉強してない。  
L2の技術。IEEE802.1Qで標準化されている。
送信元MACアドレスとタイプの間にVLANタグが入る。

**パケット：| srcMAC | destMAC | VLANタグ | Type | Data | FCS |**

VLANタグは4byte。そのうちの12bit(4096個)はVLAN IDで利用。1と4096は使えない。  
ブロードキャストドメインの分割に使うとか言ったりもする。

- VLANの種類  
  - ポートVLAN  
    ポートVLANが設定されたポートを**アクセスポート**と言う。

  - タグVLAN  
    タグVLANが設定されたポートを**トランクポート**と言う。  
    タグVLANは送受信する機器双方に設定が必要。

### ・VXLAN
VLANの上からVLANでカプセル化する技術。  
来年詳しく勉強する。

## FTP
### ・アクティブモードとパッシブモード  
アクティブモードはクライアントからの通信に対して、サーバ側からレスポンスの通信を仕掛ける。だから通信経路の間にFWが挟まると通信ができない。
FWの設定でport22,23宛ての外->内の通信はブロックされるから。  
でも通信許可の設定を入れるのはセキュリティ的によろしくない。難儀ですね。

## proxyとロードバランサーとXFF(X-Forwarded-For)
proxyやロードバランサーを経由する通信の多くはXFFヘッダに送信元IPアドレスを保存する。そうすることで送信元IPアドレスをproxyやロードバランサーのIPに書き換えることができる。

過去問的には、以下の二つがよく出た気がする。
* 送信元IPをログとして管理しているサーバがある時、新しくロードバランサーを導入するとどうなるか。
* ロードバランサーを経由する時、送信元IPをロードバランサーのものにしないとどうなるか。

1つ目は、だいたい送信元IPがロードバランサーのものに書き換えられる設定が一緒についてくることが多い。  
送信元IPをログで管理している時ロードバランサーを経由すると、送信元IPがすべてロードバランサーのIPになってしまうのでXFFを使いましょう的な。

2つ目は、なぜ送信元IPをロードバランサーのIPに書き換えるのかが問われたりする。
>A -> LB -> webサーバ

このLB->webサーバの通信の時、送信元IPをロードバランサーのIPに書き換えないと戻りの通信がwebサーバからAへ直接行ってしまう。  
そうなるとwebアプリの状態管理とかロードバランサーでしたいのに色々不都合が出たりする。

## TCP
あまり出てこない印象。どのレベルでやればいいのか。  
解説書に書いてあるような制御機構とか覚えたうえで、とりあえずsyn/ackパケットと確認応答番号、シーケンス番号の動き方を抑えておくくらいでいいと思われ。

### ・3WEYハンドシェイク
<流れ>
（SYN : Synchronize [今行ける～？みたいな意味。同期する] , ACK : Acknowledgment [OK～！な意味]）
1. (クライアント) SYNパケット送信
2. (ホスト) SYN/ACKパケット送信
3. (クライアント) ACKパケット送信

確認応答番号とシーケンス番号の動き方はここよりもっとわかりやすく書かれている記事がたくさんあるので軽く。  
3WEYハンドシェイクとそれ以降の通信で若干動作が変わる。

* 3WEYハンドシェイクの時  
1. シーケンス番号：乱数　　　　　　　　　確認応答番号：0
2. シーケンス番号：乱数　　　　　　　　　確認応答番号：前回のシーケンス番号+1
3. シーケンス番号：前回の確認応答番号　　確認応答番号：前回のシーケンス番号+1

* 3WEYハンドシェイク以降
1. シーケンス番号：前回の確認応答番号　　確認応答番号：前回のシーケンス番号+受信したデータサイズ
2. 以降同じ。

※シーケンス番号には確認応答番号が入るくらい覚えればOK?


### ・SYNパケット
SYNパケットとBackLogの関係を覚えるくらいでOK。  
SYN Flood攻撃の対策とかで聞かれる。

### ・UDPの通信ができなかった時の動作
UDPで通信を投げて途中でダメになった場合、Port Unreachableが返ってくる？
なんかの午後問でこのPort Unreachableが返ってくることを答えさせる問題があった気がする。ネットで調べてもいまいち出てこなかったので間違えているかも...

## DNS
DNSに関する用語めっちゃ多い。しんどい。  
とりあえず用語の意味をしっかり理解してどれが何をしているのか把握するのが大事だと思いました。

|種類|別名1|別名2|構成|よく出るワード|ワンポイント|
|-|-|-|-|-|-|
|権威DNSサーバ|DNSコンテンツサーバ||プライマリDNSサーバ<br>セカンダリDNSサーバ||再帰問い合わせNG<br>誤った情報をキャッシュするとマズイ
|キャッシュDNSサーバ|DNSキャッシュサーバ|フルサービスリゾルバ|優先DNSサーバ<br>代替DNSサーバ|非再帰問い合わせ<br>反復問い合わせ|
|DNSフォワーダ||||再帰問い合わせ|自身で解決できない問い合わせは設定に従って外部のDNSキャッシュサーバへ転送する|
|クライアント|DNSクライアント||オープンリゾルバ<br>スタブリゾルバ|再帰問い合わせ|再帰問い合わせOK<br>キャッシュする

※キャッシュDNSサーバとDNSフォワーダが似ていて間違いやすい。DNSフォワーダは転送だけする。キャッシュDNSサーバは名前解決をする。

### ・名前解決のためのリソース名
外部サービスを利用する構成でDNSの設定をする時、Aレコードで外部サービスのIPアドレスを直接書く方法よりCNAMEを利用して外部サービスのFQDNを書くことで、外部サービスのIPアドレスが変更した時にDNSの設定に影響しなくなる。

過去問とかだと、外部サービス利用時にAレコードでIPアドレス指定するよりCNAMEでFQDN登録した方がいい理由とか問われる。  
理由はIPが変わってもDNSの設定を変えなくていいから（DNSの設定に影響しないからとか）[^1]

### ・DNSサーバの分離
DNSコンテンツサーバとDNSキャッシュサーバは分離する。DNSキャッシュポイズニング対策。この辺はDNSの運用方法を調べれば色々出てくる。
それぞれのDNSが何をしているのかしっかり理解すること。

### ・TTLを小さくする理由
DNSキャッシュサーバにキャッシュされるレコードの保存時間が短くなる。  
そうするとキャッシュする情報の回転率が上がって情報がフレッシュになります。

### ・DNSラウンドロビンの比重制御
たまに比重の制御とか出てくる。  
1レコードで比重1になるので、比重を2にしたい時は同じレコードを2つ書いたりする。  

~~~
www.example.com IN A 192.168.0.1
www.example.com IN A 192.168.0.1
www.example.com IN A 192.168.0.2
~~~

こんな感じで書くと`www.example.com`にアクセスした時`192.168.0.1`に2回、`192.168.0.2`に1回の配分でアクセスが割り振られる。

## TLSとか証明書まわり

### ・LBとかproxyに証明書移す系
サーバ証明書移す系の問題は秘密鍵もセットで移す。じゃないと処理できない。

### ・証明書エラー系
ブラウザが出す証明書周りの警告。  
URLとサーバ証明書関係で警告がデタヨー的な問題はCN(コモンネーム)とFQDNが一致してるか見る。  
CNは`Subject`に格納されている。過去問でCNが格納されてるフィールドの名前を問われたことあるからセットで覚えよう（R4午後2-1）

ちなみにCNはFQDNと1対1でしか対応できないので、マルチドメインとかだとちょっと大変。なので一つの証明書で複数のFQDNに対する証明書を管理したい時はSANs(Sabject Alternate Names)を利用する。

証明書とは別だがTLS通信をする時、TLSのSNIとかからもURLは見れる。

## SSO系
令和に入ったあたりからいっぱい出てる印象。
だいたい問われること似てる。

### ・通信の盗聴系
KDCから発行されるTGTを盗聴されても安心安全な理由を問われたりする。  
KDCで管理するサービスのSTは、管理されてるサービスの鍵で暗号化する。  
さらにそれを、クライアントの鍵で暗号化する。でもクライアントの鍵はKDCが管理するドメインに事前に申請したクライアントにのみ登録するから、盗聴者はSTを復号化できなくて安心らしい。

### ・DNSを利用しないで名前解決する方法
hostsに直接KDCのFQDNを書く。以上。

### ・チケット有効期限の注意点
クライアントとサーバ間でTGTとSTの有効期限に大きな差異があるとエラーになったりする。有効期限が～みたいな問いがあれば時刻同期周りを少し考えてみる。

## 優先度の高い低い系
|プロトコルor属性orプライオリティ|優先順位|
|:---:|:---:|
|DNS(MX)|大きい方が優先|
|BGP（AS_PATH）|短い方が優先|
|BGP（NEXT_HOP）| 小さいほうが優先|
|BGP（MED）|小さい方が優先|
|BGP（LOCAL_PREF）|大きい方が優先|
|VRRP|大きい方が優先|
|OSPF|大きい方が優先|
|STP(BPDUのブリッジID)|小さい方が優先|

## その他
* ネスペの問題でプロトコルが存在する層を問われたときはだいたいネットワーク層とかアプリケーション層といった言い方をする。（第3層とか第7層とか言わない）

* 設定変更系の問題は設定の順番とか気にする。まだ設定入れてないのに設定が入ってないと通信できないやつとか、その逆とか。

* グローバルIPとプライベートIP気を付ける。DMZと内部セグメントでIPアドレス変えてる系のやつはIPアドレス答えろって言われた時間違えやすい。（個人的に）

* サーバ増強系の問題。1台->2台に増やせばいいのに過剰に増強する理由とか聞かれたりしたら、最低限確保しないといけない性能とか気にする。

* 外部の会社からIPアドレス貰う系。IPアドレスを貰うということは今まで使っていたIPアドレスがいつのまにか他のサービスのIPアドレスになっていたりする可能性がある(ネスペの世界だと。現実もそうなの？)  
だから、貰うIPアドレスが大丈夫かどうか気にしたりもする。


[^1]:理解が浅いのでそのうち編集しなおします。