web-dev-qa-db-ja.com

なぜpingをブロードキャストしないのですか?

私はルーターとしてFreebsdを持っています。
ローカルネットワークはインターフェースsk0上にあります:inet 10.254.239.1 netmask 0xffffff00 broadcast 10.254.239.255
私のローカルネットワークには、FreebsdのDHCPサーバーからip(10.254.239.2)を取得するコンピューター(Windows 7)があります。

  • 正確なアドレス10.254.239.2へのpingは正常に機能します。

Freebsd自体からbradcast10.254.239.255にpingを実行しようとしても、何も起こりません。

--- 10.254.239.255 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
  • #arp -a言う:
    .。
    ? (10.254.239.255)sk0の(不完全)で期限切れ[イーサネット]
    .。

  • ファイアウォールはこのインターフェースですべてを許可します

どこを見ればいいですか?放送を機能させるにはどうすればよいですか?

3
Sergey

ホスト検出を実行する場合は、ブロードキャストpingを使用せず、特定のサブネットに対して可能な各順列にpingを実行するだけです。重そうに聞こえますが、実際には数秒かかります(括弧は重要です)。

$ time ( s=192.168.0 ; for i in $(seq 1 254) ; do ( ping -n -c 1 -w 1 $s.$i 1>/dev/null 2>&1 && printf "%-16s %s\n" $s.$i responded ) & done ; wait ; echo )
192.168.0.5      responded
192.168.0.11     responded
192.168.0.2      responded
192.168.0.254    responded
192.168.0.4      responded

real    0m1.317s
user    0m0.004s
sys 0m0.084s
10
Craig

ほとんどのオペレーティングシステムは、デフォルトでブロードキャストICMP pingを単に無視します セキュリティ上の理由から 「機能させる」ことはなく、他の種類のブロードキャストには影響しません。


FreeBSDでは、net.inet.icmp.bmcastechosysctlはこの機能を切り替えます。

8
user1686

この質問は非常に古いことは知っていますが、「ubuntubroadcastping」をグーグルで検索したときの上位の結果の1つです。

canLinuxホストからブロードキャストping要求(ICMPエコー要求)を非常に簡単に送信できます(オプション-b。 Microsoftは、何らかの理由でこれを許可していません。

Ubuntuホストから送信されたブロードキャストpingは次のとおりです。

ping -b 192.168.1.255
WARNING: pinging broadcast address
PING 192.168.1.255 (192.168.1.255) 56(84) bytes of data.
64 bytes from 192.168.1.247: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=0.960 ms (DUP!)
64 bytes from 192.168.1.202: icmp_seq=1 ttl=64 time=92.3 ms (DUP!)

ブロードキャストを許可するには、-bオプションに注意してください。ご覧のとおり、Ciscoスイッチ、自分のUbuntuホスト、Appleラップトップ)など、ネットワーク上のいくつかのホストが応答しました。

そして、はい、他の人が以前に言ったように、ブロードキャストpingはネットワークをスキャンするのにひどいです。一部のホストは単にエコー要求を無視します。この目的のためのはるかに優れたツールがあります(例:nmap)。

1
Damien Daco