arashi1977さんの助け合いフォーラム投稿一覧
消去法で考えた方が簡単な気がします。
提示されてるMDMではPOST
についてはこう記載されています。
HTTP の POST メソッドは、サーバーにデータを送信します。リクエストの本文の型は Content-Type ヘッダーで示されます。
PUT と POST との違いは、 PUT がべき等であることです。一度呼び出しても複数回呼び出しても成功すれば同じ効果になる(副作用がない) のに対して、 同じ POST に成功すると、複数回の注文を行うような、追加の効果が出ます。
指定したファイルを保存するリクエストをPOSTで実行すると保存よりも新規追加の動作(指定したファイルではなく新たな別のファイルが作成される)になってしまいますし、それ以外のメソッドは設問に合致しないので、PUTの方がより適切ということなのではないかなと思います。
mainはnginx設定全体を意味するコンテキストで、mainの中のhttpコンテキストがHTTPサーバとしての動作を定義するんじゃなかったでしたっけ?
mainの中にはeventsとかmailとかさらに個別の機能ごとのコンテキストがあるので、mainのような一番上のものでは不適切なのではないかと。
コマ問ってWEB問題集の中の問題に対応してるはずなので、nginxの問題について再確認してみると良いかもしれません。
そうですね。ルーティングテーブル上
172.16.1.0 [110/13] via 192.168.3.2 ...
172.16.2.0 [110/3] via 192.168.3.2 ...
って書いてあるので、
- まずネクストホップが192.168.3.0/30の宛先なので RouterD
- RouterDへはT3リンクなので、コストが2
- 考えやすいように
172.16.2.0
の方(RouterD直接接続)をみることにする - ルーティングテーブルの
[110/3]
(/の右がコストの合計)から、RouterB-D間のT3分のコスト「2」を引くと残りが「1」 - よって172.16.2.0/24へはコスト1(おそらくFastEthernet)で接続していると判断できる。
という話です。172.16.1.0/24のほうも考え方は同じです。
解説の誤記なんじゃないですかね。
・FIBにはネクストホップのIPアドレスとMACアドレスが載っている
ネクストホップやMACアドレスは隣接テーブルに載っている情報なので誤りです。
選択肢は「Nexthop IP Address AND MAC Address」ですが、MACアドレスは載ってないので間違いとされているのだと思うので、本来は解説は
ネクストホップのMACアドレスは隣接テーブルに載っている情報なので誤りです。
としたかったんじゃないかなと。
使用できない場合、それは、どの様な理由からでしょうか。
SD-Access詳しくないので間違ってるかもですが、単にDNA Centerが自動で構成するUnderlayをIS-ISでやるからじゃないでしょうか?
https://www.ciscolive.com/c/dam/r/ciscolive/global-event/docs/2022/pdf/BRKENS-2502a.pdf
こんな感じです。
応答:DNSサーバが生きているかどうかの話
解決:DNSサーバが応答してくれて、でもゼロ回答だった
身近なもので例えるとこんな感じです。
- 本屋に書籍の取り扱いの有無を問い合わせようと電話したのだが繋がらなかったので、別の書店に電話した(1軒目で応答がないので2軒目に問い合わせた)
- 繋がった2軒目に問い合わせたが「聞かれたISBNでは該当するものがなかった」と言われたので、問い合わせをやめた(ISBN番号から書籍情報が見つからなかった=解決できなかった)
DNS問い合わせ時のホスト名が上記のISBN番号だと思っていただければ。
解説のここがポイントですね。
OSPFは帯域幅のみをメトリックの構成要素として使用します。
OSPFは帯域幅が大きいものの優先度をあげ、低いものは優先度を下げてどのリンクを通るのが最適かを選択します。そうすると、「T1=1.544Mbps(1544Kbps)」と比べて56Kbpsでは27倍もの差があるので、「そんな帯域幅の狭いリンクは使えない(正確にいうと、より帯域幅が広いリンクが優先される)」と判断しているだけですね。
違いますねー。Pythonの公式ドキュメントに違いが書いてあります。
https://docs.python.org/ja/3/tutorial/modules.html
この操作は、import の対象となるモジュール名をローカルな名前空間内に取り入れることはありません (従って上の例では、 fibo は定義されません)。
モジュールで定義されている名前を全て import するという変型もあります:
なんのこっちゃ?って感じかもしれませんが単純です。
import
したら「importしたパッケージを(パッケージ名指定で)使えるようになる」
from XXX import ZZZ
したら「fromのXXXパッケージの中からZZZを自分のものとして使えるようになる」
って違いです。
まだ説明がわかりにくいかもしれませんね。こういうのだとどうでしょう?
$ python3
Python 3.11.4 (main, Jun 7 2023, 00:42:15) [Clang 14.0.3 (clang-1403.0.22.14.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
◾️versionというオブジェクトはないので何も表示できない
>>> print(version)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'version' is not defined
◾️sysモジュールにはversionが存在するので、importして「sys.version」とすると参照可能になる
>>> import sys
>>> dir(sys)
['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__', '_base_executable', '_clear_type_cache', '_current_exceptions', '_current_frames', '_debugmallocstats', '_framework', '_getframe', '_getquickenedcount', '_git', '_home', '_stdlib_dir', '_xoptions', 'abiflags', 'addaudithook', 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix', 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exception', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth', 'get_int_max_str_digits', 'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'orig_argv', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'platlibdir', 'prefix', 'ps1', 'ps2', 'pycache_prefix', 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'set_int_max_str_digits', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdlib_module_names', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info', 'warnoptions']
>>> print(sys.version)
3.11.4 (main, Jun 7 2023, 00:42:15) [Clang 14.0.3 (clang-1403.0.22.14.1)]
◾️しかし相変わらずversionというオブジェクトは存在しないので、直接は使えない。
>>> print(version)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'version' is not defined
◾️sysモジュールからversionを内部的に使えるように取り込んでしまえば直接参照可能になる
>>> from sys import version
>>> print(version)
3.11.4 (main, Jun 7 2023, 00:42:15) [Clang 14.0.3 (clang-1403.0.22.14.1)]
◾️しかし、取り込んでないオブジェクト(platform)は、importしたsys経由でしか参照できない
>>> print(platform)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'platform' is not defined
>>> print(sys.platform)
darwin
◾️めんどくさいのでsysの中身を全部取り込んでしまえ
>>> from sys import *
◾️platformも直接使えるようになった
>>> print(platform)
darwin
◾️取り込んでないversion_infoオブジェクトもワイルドカードでまとめて読み込んだので、指定してないけど参照できるようになった。
>>> print(version_info)
sys.version_info(major=3, minor=11, micro=4, releaselevel='final', serial=0)
関数が返す値は変わらない
ってことなので、CREATE OR REPLACE FUNCTION sample_func(TEXT) ...
の文の実行についての話ではなく、作成された関数を実行( SELECT sample_func()
)した際の話ではないでしょうか?
実行例を見てくださいってことですが、sample_func()
のパラメータに同じ「佐藤」を渡して実行した時に、データの状態によっては返ってくる値って変わりますよね。WHERE句の条件が同じでもSELECT文実行時のテーブル状態が変われば異なる値になるのは当然かと。
逆に言えば、この関数は「いちいちSELECT文全体を入力しなくても、渡した引数をWHERE staff=
にセットして実行してくれる」関数を作ったと言えるかなと。たとえば「日付」を渡したら指定した日付の売り上げを集計して返してくれる関数作ったとして、日付を「今日」にして実行したら開店直後と閉店間際では同じ日付を指定してるのに返ってくる値って変わりますよね。そういう意味じゃないですかね?
以下のコンフィグ行に関する話ですよね。
ip address 192.168.20.18 255.255.255.240
255.255.255.240
ってことは、/28なので16個ずつのアドレス領域に分かれるんですよね。(ここはCCNAのアドレス関連の他の問題の解説や参考をご確認いただければと)
ということは、
0-15, 16-31, 32-47 ...
というかたまりになるのですが、ネットワークアドレスはそのアドレス範囲の先頭が該当するので、↑の例だと「0, 16, 32 ...」がネットワークアドレスになります。なので、192.168.20.16はネットワークアドレスとして適切です。
この選択肢が「ネットワークアドレス→IPアドレス」であればご指摘通りではありますが (^^;
CCNAレベルの話ですが、解説の
BとEはTunnel0インターフェースに割り当てるIPアドレスです。直接接続するインターフェースの両端は同じネットワークアドレスに属するアドレスを使用する必要があります。
が理由ですね。ぶっちゃけ 1.1.3.1/24
と 1.1.3.3/24
とかでも良いんです。Tunnel0(直接接続になるリンク)の両端に割り当てるのに適切なアドレスがどれかを選ぶだけの話です。
解説の1行目が全てです。
listen_addressesパラメータは、クライアントからの接続要求を受け付けるPostgreSQLサーバ自身のIPアドレスを指定します。
自分自身のアドレスを指定するわけですが、設問の冒頭に
IPアドレス192.168.0.50のPostgreSQLサーバが、リモートからのTCP/IP接続を受け付けるため
って書いてあるので、「リモートから192.168.0.50(=自分のアドレス)で待ち受ける」設定なので問題ないです。
「待ち受ける=受信に使用する自分のアドレス」であって、「接続してくるクライアント」のアドレスではないですよ。
サーバBのフレームにVLANタグをつけることはそもそも可能でしょうか。
サーバのOSや使用するNIC(と、ドライバ)次第じゃないですか?Windows10ですらこんなことできるんですし。
https://qiita.com/a-hiroyuki/items/edaac161103f2e2cfbc4
問題制作者側のミスなのでしょうか?
ミスだったら解説での解き方も成立しないと思うのですが、解説の説明は確認されてますか?
「故障ノードをクラスタノード間通信用ネットワークから切り離す」のは正しい対応と認識しておりました。
この根拠となる資料や情報があると嬉しいです。
故障ノードの故障の仕方にもよりますけど、基本的にクラスタノード間通信用ネットワークを切断すると「対向ノードの状態が確認できない(サービス停止している可能性がある)」と判断してアクティブになるかと思います。その場合、二重アクティブによるスプリットブレインとなるかと思います。
切り離すならサービス提供用ネットワークかなと思います。
そのうちのSPT(送信元ツリー)用のJoinというのはFHRからRPに送られることで送信元ツリーが作成されるという説明が他サイトやChatGPTでありました。
その辺りの詳細(他サイトのURLやChatGPTへの質問と解答の内容とか)があるとよりわかりやすいのですが…
で、ここで言うSPTっていうのが問題の方でもあまりはっきり言及されていないので微妙ですが、初期のツリー構築の話だとすると多分ここのことじゃないですかね。
https://www.cisco.com/c/ja_jp/td/docs/switches/lan/catalyst2960x/software/15_2_6_e/configuration_guide/b_1526e_consolidated_2960x_cg/b_1526e_consolidated_2960x_cg_chapter_01011.html#GUID-F6A7759F-29A2-4264-8031-7E50A10BBBD9
ホストがマルチキャスト グループに加入すると、直接接続されたルータは RP に PIM 加入メッセージを送信します。RP はマルチキャスト グループを追跡します。マルチキャスト パケットを送信するホストは、そのホストのファースト ホップ ルータによって RP に登録されます。その後、RP は、ソースに加入メッセージを送信します。この時点で、パケットが共有配信ツリー上で転送されます。
PIM-SMは
- IGMP Joinを投げたホストがいるLHRからRPに向けてPIM Joinが飛ぶ(共有ツリーができる)
- ソース(送信者)がグループにパケットを投げたら、FHRがRPにPIM Registerを投げる
- PIM Registerを受け取ったRPはソースに向かってJoinを投げる(ソースからRPへのSPTができる)
- ある程度ソース→レシーバにパケットが流れると、FHR-LHR間のSPTができる(RPからFHRへRegister Stopが飛ぶのでRPを経由しなくなる)
という流れなので、PIM Joinが飛ぶとしたら「LHR→RP」もしくは「RP→FHR」となるかと思います。
もしよければ「他サイト」や「ChatGPT」の情報も共有いただけると(私が間違ってるかもしれないので)助かります。
あれ?OSPFのINIT状態ってHello交換する前だから、show ip ospf neighbor
で何も表示されなくてもおかしくないのではないでしょうか?Helloを相互に交換できてない状態ではINITのままなので、表示されないのが自然かと思います。
参考にもこう書いてありますし。
INIT・・・Helloパケットを受信し、相手を認識した状態
2WAY・・・お互いに認識した状態(DROTHER同士は経路情報を直接交換しないので「2WAY」状態でコンバージェンス)
もしTTL 1 で疎通可能なのであれば、なぜeBGPでループバックインターフェース間のピア設定をする際にTTL 2以上にする必要があるのか疑問に感じまして。
TTLについて聞きたいのかeBGPピアリング時のTTLをどう設定するのかと、話題が二つあるようなのでコメントの仕方が悩ましいですね。
加えて、どの問題IDに関連するものかがわからないので、解説や参考に疑問の解消ポイントが記載されているかが確認できないのも…
それはそれとして。
単純な話をするとeBGPはデフォルトで「直接接続した相手」とピアを張ることになるので、直接接続していないアドレス(=対向ルータのLoopback)は「TTL=1」以内にいないと言うことでピアリングに失敗するんです。この挙動については以下のドキュメントが参考になるかと思います。
https://community.cisco.com/t5/tkb-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/7-19-webcast-quot-%E5%88%9D%E7%B4%9A%E8%80%85%E5%90%91%E3%81%91-bgp%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%81%A8cisco%E3%83%AB%E3%83%BC%E3%82%BF%E3%81%AE%E5%8B%95%E4%BD%9C-quot-q-a%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/ta-p/3163961
TTL=1のパケットを送信しようとするルータは、参照したルートが「C」だったなら、パケットを送信します。それ以外の「S」や「O」を参照したなら、パケットを送信しません。