ICMP

2016-03-24 11 views
0

RFC 950、ページ11とアドレスマスクを取得する方法:ICMP

識別するビットの32ビットマスクに設定 アドレスマスクフィールドでそれを返すべきアドレスマスク要求を受信したゲートウェイ 要求を受信したサブネットのサブネットとネットワーク。

ホストアドレスマスクを取得し、ローカルゲートウェイやその他のIPにICMPアドレスマスク要求パケットを作成したいとします。私はtcpdump -i eth0 icmpを使用して、ICMP address mask requestパケットが送信されているのを見つけました。しかし、私は何の応答も見つかりませんでした。何か悪いですか?メインのコードは次のようになります。その主な機能(ホスト、ネットワーク構成時に自分のローカルネットワークマスクを見つけるには)動的ホスト構成プロトコル(DHCP RFCWikipedia)に包含されているように

struct icmp  *picmp; 

/* ICMP header */ 
picmp = (icmp_t *)send_buf; 
picmp->icmp_type = ICMP_MASKREQ; // Address Mask Request 
picmp->icmp_code = 0; 
picmp->icmp_id = pid; 
picmp->icmp_seq = npkt++; 

len = 12; // ICMP header length 
picmp->icmp_cksum = 0; 
picmp->icmp_cksum = in_cksum((u_short *)picmp, len); 

sendto(sock_fd, send_buf, len, 0, pr->p_addr, pr->addr_len); 
+1

私はほとんどのルータが実際にこのサービスを実装していないと思います。クライアントは一般的にDHCPを使用してこれらの日を取得します。ICMP方式はBOOTPとDHCPが設計されるまでの残りの日です。 – Barmar

+0

ありがとう! DHCPを使用すると、アドレスマスクを取得できますか?私はDHCPに精通していません。 – hel

+0

DHCPを使用していない場合、どのようにネットワーク設定を初期化していますか? – Barmar

答えて

0

アドレスマスクは、廃止されました。ほとんどのコンシューマ向けルータではおそらく実装されていません。 RFC 6918で正式に廃止されました。

ルーターに構成情報を照会する場合は、トポロジーを学習するために、適切なプロトコルはSimple Network Management Protocol(SNMP RFC,Wikipedia)です。これはかなり複雑なプロトコルなので、使用する場合は、事前に実装された実装を探してください(ライブラリとCLIインタフェースの両方があります)。しかし、ルータは一般にクライアントの認可を必要とするため、ランダムなインターネットルータには照会できません。家庭用ルータを一元的に管理することは珍しいので、コンシューマ向けルータがまったく実装しているかどうかはわかりません。

+0

ええ、私はSNMPを考えました。しかし私のLANでは、ルータはSNMPをサポートしていないようです。 – hel

+0

私はコンシューマ向けルータではほとんど必要がないと言いました。ネットワーク管理は通常、エンタープライズクラスのルータを使用する大規模な組織にのみ必要です。 – Barmar

関連する問題