2017-08-11 16 views
0

私は10Gイーサネット経由で別のマシンにUDP経由で通信する私のLinuxホスト上のアプリケーションを持っています。相手側のマシンはARP要求に応答しません。私は、プログラムのw /アウト特権的地位のARPテーブルにこの情報を取得する方法はありソケットに宛先MACアドレスを提供する方法

に、それはMACは、他の手段(異なるインタフェースを介して対処します取得することができるのですか?

私は上の私ができる知っています

私は「1.2.3.4 AA:BB:CC:DD」を追加できることを知っています。「sudo arp -s 1.2.3.4 AA:BB:CC:DD:EE:FF」 :EE:など/エーテル

にFF」私は特権のUSR /プロセスとして、私はSIOCSARPへのioctlを発行することができることを知って

。 0

これらのメカニズムはすべてsudo/rootアクセスが必要です。私は、アプリケーションに "CAP_NET_ADMIN"権限を与えることについて何かを読んだ。

私はこの機能を探しているため、エンドユーザーは上記のいずれかを行う必要はありません。もし私がsudo/rootを使っていれば、このネットワーク情報の必要性を判断するソケットを開くことができます。sudo/rootを使って私に提供する方法があります。

答えて

2

いいえ、ARP情報を非ルートとして編集することはできません。そうでなければ悪意のある攻撃者はARPテーブルを変更し、ネットワーク通信を完全に混乱させ、セキュリティを脅かす可能性があるため、これは理にかなっています。

問題を解決するには、ネットワーク構成を修正する必要があります。

+0

ええ、機能的なARPとICMPはいいですが、私は相手側のマシンを制御できません。それは第三者によって提供されています。私の質問では、私はより多くのことを考えていました。MAC情報を入力するパケットはありますか?それを知るためには、手動でMACをパケットにする唯一の方法はrootである必要がありますRAWソケット付き。 – Jotorious

関連する問題