問題ID: 12280 キープアライブの未検出による「protocol is down」とは

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2014-2-18 14:24
takamoto463  長老 居住地: 大阪  投稿数: 177
いつもお世話になります。

解説の 「・キープアライブが検出できない」とデータリンク層が「down」である

についての質問です。

解説

データリンク層が「down」である場合、下記のいずれかが原因です。
・カプセル化タイプが一致していない
・clock rateの設定が正しくされていない
・キープアライブが検出できない


@network Cisco・アライド実機で学ぶ
◆キープアライブを止める(no keepalive)
http://atnetwork.info/ccna/no_keepalive.html


サイトで「no keepalive」コマンドでキープアライブ信号を止めているようなのですが、
そのサイトでは「no keepalive」することで、「up」に強制的にできるとあります。
(以下、サイトより抜粋)

(省略)
ルーターは、10秒間隔でキープアライブ(生存確認の信号)を送信していることが分かります。
Ciscoルータは、キープアライブで互いの生存を確認する仕組みを持っています。

 このキープアライブを止めることで、強制的にインタフェースがUPするようになるわけです。
しかし、実際の運用ネットワークにおいては、トラブル時の原因の追求の妨げになりますので、
実ネットワークでは、設定することは望ましくありません。「no keepalive」コマンドは、あくまで、
ネットワークの演習用に使用するように心がけましょう!



ルータ2台をクロスケーブルでつないで
「no keepalive」コマンドで相手方ルータがkeepaliveを止めている場合
解説にある
・キープアライブが検出できない
状態になると思うので
「protocol is down」でしょうか?

それとも、強制的に「UP」できるというサイトの通り
「protocol is up」が正しいのでしょうか?

「no keepalive」コマンドをした側のルータだけが、まさか「protocol is up」になったりは
しないですよね?

手持ちのルータが現在1台しかなく、GNS3でも
ネットワーク層以下の問題で検証できないので、
分かる方がいらっしゃれば、よろしくお願いします。
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014-2-18 21:35
ゲスト    投稿数: 0
簡単に1812と3725で試してみましたが、結局全部up/upになりました。

両方をクロスケーブルで接続した状態から

1812だけをno keepaliveすると
1812も3725もup/up

1812と3725両方をno keepaliveすると
1812も3725もup/up

3725だけをno keepaliveすると
1812も3725もup/up

----
C1812:Version 15.1(4)M7
C3725:Version 12.4(7h)
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-20 9:46
takamoto463  長老 居住地: 大阪  投稿数: 177
jupiter134様

おはようございます。
いつもご回答ありがとうございます。
そして、実験ありがとうございます。

すみません、少し突っ込んだ話なのですが、
キープアライブと「no keepalive」の関係は
どのようになっているのでしょうか?

「no keepalive」はキープアライブプロトコルの
送出を止めるもの?

キープアライブプロトコルを無視して
syslogにエラーを渡さない?

もし知ってらしたらご教示よろしくお願いします。

CCstudyより
なぜこういうことができるかというと、シスコ・ルーターのEthernetインターフェースは、独自の
キープアライブ・フレームを自分宛てに(10秒間隔で)送出して、そのフレームが確認できた
場合はEthernetインターフェースがupしているとみなしています。
そのキープアライブをそもそも止めちゃうことで、インターフェースをずっとupにするわけです。


この説明だと、そもそも生きていることを知らせる
キープアライブフレームが止まってしまうのだから、
死んだと認識して、逆にdownになる気がするのですが。。

このキープアライブプロトコルは、
相手に送って、ackを返してもらうような
類のものではないのでしょうか?

wiresharkでも見れない?ようですし。
自分で投げて、自分で受け取る。
だと、そもそも相手がつながってても
つながってなくてもupするでしょうし。

仕組みがよくわからなく。。
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014-2-20 21:22
ゲスト    投稿数: 0
仕組みまでは分かりませんが、Ciscoのドキュメントを読むと
次のようなものかなと自分では理解しました。

・no keepaliveはキープアライブの送信自体を止めるもの。

・キープアライブは宛先MACを自分自身にしたデータを送信する。
 自身に送るので、ケーブルの先にいる対向機器にデータを送る訳ではない。
 #IFから出ないと思うのでキャプチャとかも無理かと思います。
 #ドキュメントには「イーサネット回線上に送信し」とありますが、
 #ケーブル上にデータが乗る訳ではないと思います。

・イーサの場合のキープアライブは、通信相手の死活や途中回線の正常性を監視する
 ものではなく、自分自身のイーサハードorソフトの正常性を確認するもの。

最近は標準実装なのでお目にかかれませんが、以前はTCP/IPは後付けでパソコンに
インストールしていました。インストールの正常を確認する為にループバック(127.0.0.1)に
pingを打って確認するのですが、イーサのキープアライブはそれに近いかもしれません。

-----

> 「no keepalive」はキープアライブプロトコルの
> 送出を止めるもの?
>
> キープアライブプロトコルを無視して
> syslogにエラーを渡さない?

投入したIFで送出を止めるものだと思います。

> このキープアライブプロトコルは、
> 相手に送って、ackを返してもらうような
> 類のものではないのでしょうか?

自分自身に送るらしいので、相手がどうこうではないようです。

あれこれ調べて私自身勉強になりましたが、上記は間違った理解かもしれません。
その際はご容赦を。


【参考】
イーサネットのキープアライブ
http://www.cisco.com/cisco/web/support/JP/100/1008/1008203_gre-tunnel-keepalive-j.html#t3
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-2-21 10:50
takamoto463  長老 居住地: 大阪  投稿数: 177
jupiter134様

おはようございます。いつもご回答ありがとうございます。
こういう質問ができるのがこのサイトの利点ですね。

期限は本日までだったのですが、
jupiter134様やarashi1977様のご回答目当てで
また更新してしまいました。
今後ともよろしくお願いします。

リンク先、拝見しました。
Ciscoのドキュメントにしては分かりやすく、すごく参考に
なりました。

keepaliveというのは、各社・製品によって仕組みが
違うのですね。

Ciscoのイーサネットに限っては、
送信元・宛先を自分のMacアドレスで送出して、
ループバックのように確認する。

CisocoのHDLCプロトコルによるシリアル通信では
ルータ同士で、お互いにキープアライブパケットを送って
確認する。

IBMのBGPセッションの説明では
近隣者はキープアライブ・メッセージを送信することによってセッションの状態をモニターします。1
1 このキープアライブ・メッセージは、アプリケーション層にインプリメントされます。これは、多くのTCPインプリメンテーションで使用可能なキープアライブ・メッセージとは無関係です。
と、ありました。

難しくてよく意味は分かりませんが。


MACアドレスのループバックで、イーサネットアダプタのハードウェアの状態を確認するというのは納得ですが、

「回線の状態をチェックします」というのは
何をもって回線の状態と言っているのかはわからなかったです。


が、またひとつ曖昧な仕組みのついて
イメージできたので良かったです。

ありがとうございました。
今後ともよろしくお願いします。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.