arashi1977さんの助け合いフォーラム投稿一覧
設問は外部からmail.example.com宛にメールが届くようにとあるのに解答には、外部から「mail.example.com」という名前で接続に来た場合にとあり矛盾している気がします。
疑問点をもう少し噛み砕いていただけると嬉しいです。どう言う点がどう矛盾しているのかが読み取れませんでした。
通信としては
- 外部のSMTPサーバから
mail.example.com
に接続する - 接続後、SMTPによりメールを送信する
と言うシンプルなものですが、ここにDNSが絡んでくると追加の考慮が発生します。例えばGmailの場合だと example@gmail.com
に送ろうと思うと、まず gmail.com
のMXを探す必要が出てきます。(ここが設問のmail.example.com
の部分)
では実際gmail.comがどうなっているかと言うとこうです。(2022/8/29時点)
% dig +short @8.8.8.8 gmail.com mx
40 alt4.gmail-smtp-in.l.google.com.
10 alt1.gmail-smtp-in.l.google.com.
30 alt3.gmail-smtp-in.l.google.com.
20 alt2.gmail-smtp-in.l.google.com.
5 gmail-smtp-in.l.google.com.
gmail.comに繋ぎたいのに、宛先ホスト名が gmail-smtp-in.l.google.com
とかってなってます。じゃあそれは誰かって言うと
% dig +short @8.8.8.8 gmail-smtp-in.l.google.com a
142.251.8.26
142.251.8.26
だとわかります。これでようやくメールを送信するために接続する先のアドレスが142.251.8.26
であり、その際外部からは「@gmail.com」で接続しにいくことになります。
この流れの中で、解説文と照らして疑問に思われている(矛盾していると思われている)のはどのあたりでしょうか?
takizawatさんの理解がうまく読み取れないのですが…
複数の違うIPアドレスに設定させるのがIPマスカレードなはず
これは送信元、宛先のどちらについて言及されているものですか?
考え方としては
- SNATは「受け取ったパケットをNATして”指定されたアドレス”から送信されたように見せかける」ものです。
- IPマスカレードは「受け取ったパケットをNATして”自分のIPアドレス”から送信されたように見せかける」ものです。SNATの特殊パターンと言えますね。
- どちらも指定の仕方(
-s
で指定する対象)で1:1にも1:Nにもできます。
なのですが…
直接接続スタティックルートの場合、自分が隣接しているN/W(同じN/W内)に対してのみルーティングができるイメージなのですが、
これはどうして別ネットワーク(192.168.1.0/24)にルーティングができるのでしょうか?
Point-to-Point接続だから、ですね。
「このインターフェースから出せば受け取った相手がその宛先にルーティングしてくれる」と言う環境なのです。
スイッチから「人が座る机」までの間のケーブルを1本で済ませたいから、というのが一番わかりやすいかもしれません。
これまでPCだけが配備されていたオフィスに「既存のケーブルをそのまま流用してIP Phoneを追加できます!IP Phoneにはスイッチ向けとPC向けのポートがあるので、間に挟む形で設置すれば追加工事を抑えてIP Phoneを展開できます!」って言われたら、追加のケーブル不要で増やせるならいいかなって思って導入されやすくなる、という話かなーと。
単純に、Ciscoの実装がそうなっているからというだけの話ではあるのですが、それだけじゃ面白くないのでRFC 5905とか読んでみると良いかと思います。NTPv4の仕様について定義されているものですが、この中ではキー識別子とメッセージダイジェスト(MD5)が認証に使用されていると書かれてはいますが、SHA-1については言及がありません。(さらにいうと、MD5にセキュリティ的な問題があるのはわかっている、との記載もありますね)
ちなみに、RFC 5906をサポートしていればより強固なNTPセキュリティが担保されるようですが、CiscoではRFC 5906は現時点では実装していないようです。
以下のコマンドを例にすると
ip route 0.0.0.0 0.0.0.0 192.168.1.254 GigabitEthernet0/0
0.0.0.0 0.0.0.0
が「デフォルトルート(0.0.0.0/0
)」192.168.1.254
が「デフォルトゲートウェイ」
です。シンプルにいうと「ルーティングテーブルにない宛先全てに該当する経路情報=デフォルトルート」「デフォルトルート宛のパケットを処理するルータ(などのネットワーク機器、それを表すIPアドレス)=デフォルトゲートウェイ」という関係性です。
例えばスイッチで ip routing
が無効になっている場合はルーティングテーブルが存在しないので、デフォルトゲートウェイを設定しておく(ip default-gateway 192.168.1.254
のような)ことで全ての外部向け通信を特定のアドレスに向けることが可能になるのですね。
お尋ねの正答選択肢のもう一方(認証で使用するポートが変更されている)を掘り下げると見えてきます。
設問の設定では
- スイッチが参照するRADIUSサーバの設定を確認している
- 設定されたサーバのポート番号がそれぞれ認証用:1801, アカウンティング用:1883となっている
- よってスイッチはこの設定を元に、宛先サーバのポート1801, 1883へRADIUS認証用のパケットを送信する
- 宛先となっているRADIUSサーバ側が、標準設定(デフォルト)のままだと、認証用:1812, アカウンティング用:1813で待ち受けるので、1801/1883ポートへパケットが送られても処理できない
- 処理できない=認証結果をスイッチに返さない
- 認証結果が返ってこない=スイッチがRADIUS認証を正しく行えない
という話なので、「サーバ側がデフォルト(標準)のポートを使う設定になっているのに、スイッチ側が標準とは異なるポートへアクセスするようにしたら認証に失敗するよね」ってだけのことかと思います。
デフォルトのSSHサーバ(ポート22番)に、意図的にポート2222とかでSSH接続しようとしても接続拒否される、というのと同じ話ですね。
以前の質問 https://mondai.ping-t.com/g/posts/189 が解決したのかどうかが個人的に気になっていますが、それはさておき。
宛先近くとは一体どういう意味なのでしょうか。
「意味が理解できない」ということなのですが、解説の冒頭にある
- 「標準アクセスリストには」で始まるブロック
- 「拡張アクセスリストには」で始まるブロック
についてどう理解されたかをお尋ねしても良いでしょうか?(解説で説明していることの繰り返しにならないようにするため)
私がループバックと聞くと一例として機器のアドレスが「127.0.0.1」になると思うのですが、
うーん、これって「ループバックアドレス」のことをおっしゃってますか?
https://tex2e.github.io/rfc-translater/html/rfc5735.html
127.0.0.0/8 - このブロックは、インターネットホストループバックアドレスとして使用するために割り当てられます。
で、質問の元になっている「OSPFのループバック」と言われているのは正しくは「Cisco IOS内の論理的なインターフェースであるLoopbackインターフェースに割り当てたIPアドレス」のことではないかと思います。
Loopbackインターフェースも物理インターフェース(GigabitEthernetなど)と同じように、任意のIPアドレスを割り当てることが可能なので、好きなように「1.1.1.1」とか「2.2.2.2」を使ってるだけだと思いますよ。
前半の質問だけならなんとか答えられそうです。
SSLの有効化がなぜポート80では出来ないのかがどこを調べても分からず、、、。
やろうと思えばできますよ、普通やらないだけで。解説にも
SSLでの接続時に使用するHTTPS(ポート443番)
とあるように、「インターネットの世界では特に指定がない場合、HTTPSはポート443、暗号化のないHTTPはポート80を使う」というのが標準(共通認識)なので、サーバ側が「443も80もHTTPS対応にするぜ!」ってやったとしても、クライアント(ブラウザ)が標準に従っている場合、暗号化なしでポート80に接続した場合、サーバが「暗号化通信じゃないのでNG」って接続拒否することになります。
そういうサーバを用意しても「誰もちゃんと繋ぎにこない…」ってなるだけなので、普通はやらない(標準に従う)ってだけのことです。
ポート443はhttpsでSSL有効化されてるからむしろそちらをSSLEngine onにしても素人目線では無駄かと思ってしまいます。
こっちの意図がよくわからないのですが、「ポート443だからと言って、暗号化が自動的に行われる(SSLEngine on
する必要がない)」ということはないので、ポート443側のVirtualHostにSSLEngine On
するのが「標準に従った設定」となりますよ、というぐらいでしょうか…
普通にmkdir でディレクトリを作る場合は、「/」要らないですよね?
設問が
ホームディレクトリに\workディレクトリを作成することができるコマンドはどれか
なので、「ホームディレクトリ」が確実に指定されてないとダメなんじゃないですかね? /
なしだと「現在のディレクトリ」になるので、ホームディレクトリであることが保証できないんじゃないかと。
おそらく mkdir ~\\work
の選択肢のことを聞かれてるのだと思うのですが、 ~
単体だと「ホームディレクトリ」の意味を持ちますが、~\work
だとホームディレクトリの意味が消え失せてしまうのですよね。ホームディレクトリの意味を残すためには ~/
としないとダメ、ってことなんですよね。
何が動作しているんでしょうね?
そもそもRA-RB / RB-RC / RB-RDはBGPで接続しているとはなっていますが、RA-RDは「直接接続していない」と解説にも記載があるので、「接続していないもの同士で何が動作しているか」はこの図からは全く読み取れないです。
逆に、「RAとRD間では何が動作しているの」かは重要なのか?と気になってしまいました。
初歩的ではないですが、規模によって有用性が感じられないかもしれませんね。
イメージしやすい一例で言えば「インターネットへの出口が2つある」構成ですかね。この場合、スタティックにデフォルトルートを登録すると、向けた側との接続が切れてしまうとせっかく2つ用意した出口のもう一つが使われなくなってしまいます。こう言う時、それぞれの出口となるルータからデフォルトルートを広告してもらうようにしておいて、その経路情報が一時的にでもなくならないように(OSPFの再計算が発生しないように)always
を使うとかかなと。
もう一つはイメージしにくいかもですが、「インターネット接続をデフォルトルートではなく個別の経路情報としてもらっている場合」とかですね。「自分がデフォルトルートとなるように広告しないといけないが、自分がデフォルトルートとして使用する経路がない」場合なんかが該当します。
こっちのパターンを理解するとしたら「必ずしもすべてのルータにとってデフォルトルートが存在するわけではない」というのがポイントですかねー。
こちらの分野に関する質問なのですが、各プレーンの役割については、
理解する際にはどのように覚えたらよろしいでしょうか?
ざっくり言います。
- コントロールプレーンは「学習する」機能と思ったらいいです。例えば、スタティックルーティングを設定してルータに覚えさせたり、受信したポートに紐づくMACアドレスを覚えるのもコントロールプレーンの話です。状況に応じて、受信したパケットやフレームを解析したりする必要があるので、基本的にCPUで処理されます。
- データプレーンは「学習内容に基づいて迅速にさばく」機能と思ったらいいです。いちいちCPUに「割り込み(今やってる処理を中断して別のことをさせる)」してるとCPU自体の負荷が高まり、学習機能に影響を及ぼすので、学習した内容は機械的に処理するようにがんばってます(これが各ベンダーの売りになる点)。例えば、MACアドレステーブルやルーティングテーブルを見なくても「この宛先MACアドレス(IPアドレス)はこのポートから出力する。必要なら送信もとMACアドレスなどを書き換える」「この送信もとIPアドレスは破棄することになってるので出力しない」と言う処理をやります。
- 簡単な判断基準は「それがパケット(フレーム)の転送に直接関わるか」です。例えばルーティングテーブルの更新処理は「学習」であること、「ルーティングテーブルが転送処理をするわけではない」ことから、コントロールプレーンの処理と言えます。また、802.1Qヘッダは「トランクポートへの出力時に実行する」処理なので、直接転送に関わるのでデータプレーンの処理と言えます。
ちなみに人間の例で言うと
- 手で触れたものがとても熱い
- 手が触れたままだと火傷する(経験的知識、学習ずみ)ことを思い出す
- 熱いので手を離す
って時に、2をなくすことで高速に処理できるようになっています。「反射」ってやつですね。
あとCCNPの範囲だと思いますが、NSF(Non Stop Forwarding)っていうデータプレーンとコントロールプレーンを切り離して処理する機能がありまして。これも人間で言うと「脳死してても心臓は動いてる」みたいな感じで、コントロールプレーンを担当するCPU関連に異常があっても、データプレーンを担当するラインカード(各種通信ケーブルが繋がってるボード)が以前コントロールプレーンの情報をもとに作成した転送処理パターンに基づいて、転送処理を継続するって動きをするものです。新しく学習はできないけど「こうする」って知ってる通りに動くって話ですね。
ちょっと確認したいのですが。
質問タイトルが「正解が間違っています」となっていますが、「正解は以下が正しいと考えます」と提示されているのは 正答とされているもののより厳密な記述 となっています。
そこからすると、「正答が間違っている」のではなく「正答選択肢の記述では失敗する場合がある」と言いたいのでしょうか?
言い方を変えると「問題ID:3344の選択肢の中には正解がないと言いたいのか違うのか」がよくわからないです。
選択形式の問題の解答としては「提示された選択肢の中から適切なものを選ぶ」のも試験対策としては必須のスキルですし、正答とされている選択肢で意図的に手を加えず問題の意図通りに実行できるのであれば、それは特に問題ないのではないかと思います。もちろん、実行する環境次第ではおっしゃっているシェル展開で失敗する場合もありますが、それは問題ID:3447などで学習してますし、この問題で再学習するほどのことではないのではと思っています。
例えば逆に、選択肢に以下の二つ
zypper install "emacs*"
zypper install emacs*
があったとして、「実行時のディレクトリにファイル名がemacsで始まるファイルがあるかどうか」と言う言及がなかったらどっちも正解ってなりません?厳密なやり方を知っているのは素晴らしいと思うのですが、選択肢の中に「問題の意図通りの結果が得られるコマンド」があるのであればそれは別に不適切ではないと思いますよ。
そこで,正解としては
sed
などを使った以下のようなコマンドのほうが適切と考えます.
うーん、まぁそうかもしれませんがそれって選択肢の中にありませんよね?
tr
コマンドの学習のための問題に対して「tr
以外の方法が適切」みたいな言及はちょっと違うかなーと思いました。
なお、参考URL一読やネット検索をトライしましたが、該当例を見つけられませんでした。
どう言う検索ワード使いました?
私検索したら一発目の1番上にそれらしいの出てきましたが。
https://qiita.com/Takashi_Nishimura/items/da5551e6a4cb4b64f055
作成時は「どのテーブルに紐づくインデックスか」を指定する必要があるのに対して、削除、変更時は「どのインデックスに対しての操作か」と言う指定になるので、紐づくテーブルの情報は不要ってだけだと思いますよ。
関連するテーブルが異なる同名のインデックスが作れるなら話は違いますが。