arashi1977さんの助け合いフォーラム投稿一覧
ここは解説の通りなんですね。例えば直結した R1-R2 において、 R1 側で R1(config)#cdp holdtime 30
ってすると、R2側ではこんな感じで
R1 の Sending 時間経過後にいきなり Holdtime が変わって見えます。
■ 変更前
R2#sh cdp nei
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
R1 Gig 0/1 131 R B Gig 0/0
Total cdp entries displayed : 1
■ 変更後
R2#sh cdp nei
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
R1 Gig 0/1 29 R B Gig 0/0
Total cdp entries displayed : 1
https://learningnetwork.cisco.com/s/article/cisco-discovery-protocol-cdp-x をみていただきたいのですが
- CDP Frame Format にある通り、送信する CDP Frame には Time-to-Live のフィールドがあり、そこが「受信した情報をどれだけの時間保持して良いか」を通知する値になっている
- 上記の値は
cdp holdtime {sec}
で指定できるSpecifies time limit for which a receiving device should hold information before discarding. Default 180 sec
ですので、ご認識の通り
もし解答通りなら、接続先のホールドタイムを指定できることになるかと思います
接続先のホールドタイムを指定することができる、という挙動で間違いありません。
参考URLの hosts deny にはデフォルト値として「何も拒否しない」と書かれています。
Default: hosts deny = # none (i.e., no hosts specifically excluded)
よって
hosts allowに書かれていないアドレスは接続拒否されると考えてよいことにはなりませんか。
は「なりません」といえますので、「以外からのアクセスを拒否したい」を達成するためには hosts deny
の設定が必須ですね。
少なくとも解説の実行例の通りにはなるようですね。
$ docker run --rm --name postgres -e POSTGRES_PASSWORD=postgres -d postgres
720321aa6c7d2cefb46d37adecc3938d34ea2daaff4958b49b309a8186f1edf3
$ docker exec -it postgres psql -U postgres
psql (17.2 (Debian 17.2-1.pgdg120+1))
Type "help" for help.
postgres=# CREATE SEQUENCE sample_seq CACHE 5 NO CYCLE;
CREATE SEQUENCE
postgres=# SELECT setval('sample_seq', 100);
setval
--------
100
(1 row)
postgres=# SELECT currval('sample_seq');
currval
---------
100
(1 row)
postgres=#
この状態で setval() で再度シーケンスの「現在値」を変更したら同じように設定後の「現在値」を返してくれます。
postgres=# SELECT setval('sample_seq', 200);
setval
--------
200
(1 row)
postgres=# SELECT currval('sample_seq');
currval
---------
200
(1 row)
nextval() を呼ぶかどうかが問題なのではなく「シーケンスを作成後に現在値が未設定の場合」に currval() を呼ぶと「現在値がないのでエラーになる」ということです。現在値を設定するには、「nextval() により初期値を取得する」か「setval() により任意の現在値を設定する」かのいずれかだということですね。
■ nextval() で初期化
postgres=# CREATE SEQUENCE sample_seq2 CACHE 5 NO CYCLE;
CREATE SEQUENCE
postgres=# SELECT currval('sample_seq2');
ERROR: currval of sequence "sample_seq2" is not yet defined in this session
postgres=# SELECT nextval('sample_seq2');
nextval
---------
1
(1 row)
postgres=# SELECT currval('sample_seq2');
currval
---------
1
(1 row)
■ setval() で任意の値を設定
postgres=# CREATE SEQUENCE sample_seq3 CACHE 5 NO CYCLE;
CREATE SEQUENCE
postgres=# SELECT currval('sample_seq3');
ERROR: currval of sequence "sample_seq3" is not yet defined in this session
postgres=# SELECT setval('sample_seq3', 35306);
setval
--------
35306
(1 row)
postgres=# SELECT currval('sample_seq3');
currval
---------
35306
(1 row)
どちらかというとデータの通り道を暗号化する印象
ここがよくわからなかったのですが、SSL/TLS によって暗号化されたデータが HTTPS 通信のエンドポイント間で受け渡しされているのであって、「通り道」を暗号化しているわけではないです。
逆に質問で申し訳ないのですが「データの通り道」とは具体的にどういうことをおっしゃっていますか?
SP となっているのは相手側なので、こちら側が Passive だと LACP 構成できないので、Active だというのは特に間違いないのではないでしょうか。
LACP って Passive-Passive だとネゴシエーションできないですよね?
今でもそうかはWindows管理やってないので自信ないですが、Windowsの「ドメイン」の管理においては
- ドメインに参加している「コンピュータ」の情報(コンピュータアカウント)
- ドメインで管理している「ユーザー」の情報(Sambaアカウント)
- 共有を提供している「サーバ上のユーザー」の情報(Linux アカウント)
が必要になるんですよね。
Windowsドメインの管理対象が pdbedit
で作成、編集されるものであり、共有にアクセス可能なユーザーはサーバ上の Linux ユーザーに紐づけられるのでそれも必要、という話かと。
クラスBは172.16.0.0/12 (172.16.0.0 ~ 172.31.255.255)
これは正しくは「クラスBプライベートアドレスの範囲」であって、「クラスBアドレス」ではないですね。
クラスBアドレスとは参考にもあるように「先頭の2ビットが 10 である、第2オクテット(16ビット)までがネットワーク部となるアドレス」のことですん。例えば以下のものがクラスBアドレス(とネットワークアドレス)です。
- 128.100.100.100(128.100.0.0/16)
- 172.20.10.20(172.20.0.0/16)
- 190.0.0.254(190.0.0.0/16)
で、この設問では以下のことを問われています。
クラスBアドレスを255.255.255.0を使用してサブネット化すると、使用できるサブネット数と1つのサブネット内で使用できるホスト数は
ネットワークアドレスが 16 ビットなものを 255.255.255.0(24 ビット)でサブネット化するということは、24-16 で 8 ビット分がサブネットに使われるものですので「サブネット256」、ホストアドレス部は32-24=8なので同様に8ビットで「ホストアドレス部254(ネットワークアドレスとブロードキャストアドレスの2を引いた)」となりますね。
キーポイントとしては
会社は今後、Webサイトを複数言語に対応させて、 世界中に 製品を販売していく予定である。
世界中のユーザー に対して、製品カタログを 高速に配信する にはどうすればよいか。
から「世界中に」「高速に」とある部分ですかね。この時点で世界各地にキャッシュされて高速に配信されることが期待される CloudFront が正解なのかなというのは想像はつくというのはご認識されていると思います。一方でこの問題の回答に対する疑問として「動的コンテンツ」を CloudFront で扱う理由がわからないということなのだと思うのですが、まず今は多くの CDN (Contents Delivery Network) で動的コンテンツの配信をサポートしています。参考 URL の1つ目もそうですが、他にもありますね。
https://aws.amazon.com/jp/cloudfront/dynamic-content/
https://www.cloudflare.com/ja-jp/learning/cdn/caching-static-and-dynamic-content/
https://www.stream.co.jp/blog/blogpost-36616/
https://learn.microsoft.com/ja-jp/azure/cdn/cdn-dynamic-site-acceleration
https://www.fastly.com/jp/blog/serving-truly-dynamic-content-with-a-modern-cdn-and-edge-first-delivery
理由としては本当にシンプルで「動的に生成するコンテンツのためにオリジンに取りに行っていては遅くて仕方がない」から、ですかね。いかにオリジンにデータをとりにいかず、ユーザーにはエッジからの配信だけで完了させるかが高速化のポイントなので、CloudFront を含む CDN がサポートしているのにその機能を使わないのはもったいないとも言えるかなって感じですね。
問題へリンクしてもらえれば問題文や選択肢を全部転記いただく必要がないので楽ですよ。
で、転記ミスでなければという前提ですが
プログラムの設定ファイルを格納するディレクトリとして適切なものは次のうちどれか。
設定ファイルは bin
じゃなくて etc
に格納するので別に何もおかしくないと思うのですが、 bin
が正解だと思った理由を教えていただけないでしょうか?
参考に記載がありますが、そもそも「(攻撃者が詐称している)情報が本当に正しいか」をチェックするのが目的なのですよね。そのために事前に「正しい情報」がスイッチに存在しているわけです。
IPアドレスとMACアドレスの対応は「DHCPスヌーピングバインディングデータベース」や、手動で作成したバインディングデータベースを使用して確認します。
つまり、
攻撃者が送るARPリプライの場合、MACアドレスは一致しますよね
バインディングデータベースに存在する情報と一致しない情報であれば不審なものとして扱う、ということなので、攻撃者が「俺は正しく回答してるよ」って言ってもスイッチとしては「俺の持ってる情報とは違うからその自己申告は信用しない」というものとご理解いただくのが良いかなと思います。
uniqコマンドはデフォルトだと「重複している行を表示」だと認識しており
あれ?解説や参考には、 uniq
コマンドの機能として
連続して重複した行を1行にまとめて表示する
と記載されているのですが、こちらについてはどのように理解されていますか?
また、問題文の「重複行を除き」は「重複した内容を出力しない」という意図かなと思っているので
重複していない行を表示
というのはちょっと違うかなぁと思います。(とはいえ、こういう誤認を避けるためには「除き」→「取り除き」の方が良いのかなとは思います)
手元の環境でやってみてもおっしゃるように元に戻らないのですが、実行したコマンドを省略せず記載していただくことは可能でしょうか?
$ echo X00 | sed "s/r/0/i"
X00
$ echo X00 | sed "s/0/r/i"
Xr0
$ echo X00 | sed "s/0/r/"
Xr0
$ echo 00r | sed "s/0/r/i"
r0r
$ echo 00r | sed "s/r/0/i"
000
念のための確認なのですが、お手元の環境で以下のSQLを実行したらどうなりますか?
select id from club where name IS NULL;
select id from club where name IS NOT NULL;
ここで 2
, 1, 3, 5, 7
が返ってくるので間違い無いですよね?
4 のようなことはできます。Ethernet 系のインターフェースでも指定可能ですよ。
「どのインターフェースから出力するか」の指定であって、ポイントツーポイントかは排除条件にならないです。
- 到達性はありますね。
- ネットワークルートでアドバタイズしたいかどうかは要件次第な気がしますね。例えば検証のためにホストルートではなくネットワークルートがアドバタイズしたいとか。