web-dev-qa-db-ja.com

ネットワークが立ち上がるときに静的ARPエントリを追加する

Ubuntuサーバーのあるサブネット上にかなり馬鹿げたIPデバイスがあり、サーバーは各デバイスからストリーミングデータを受信します。サーバーにデータをストリーミングしているときにデバイスにARP要求が発行されると、要求が無視され、キャッシュエントリがタイムアウトし、サーバーがストリームの受信を停止するという問題が発生しました。

したがって、サーバーがこれらのデバイスにARPリクエストを送信するのを防ぐために、それぞれに静的なARPエントリを追加したいと思います。

arp -i eth2 -s ip.of.the.device mac:of:the:device

ただし、これらの「静的」ARPエントリは、ネットワークが無効または有効になっている場合、またはサーバーが再起動された場合に失われます。これらのエントリを自動的に追加するのに最適な場所はどこですか、できればインターフェースeth2が起動するたびにそれらを再追加する場所が望ましいでしょうか?

arpの出力を監視し、欠落しているキャッシュエントリを再度追加するスクリプトを記述する必要はありません。


編集して、最終的なスクリプトを追加します。

ファイルを作成しました

 /etc/network/if-up.d/add-my-static-arp

内容で:

#!/bin/sh

arp -i eth0 -s 192.168.0.4 00:50:cc:44:55:55
arp -i eth0 -s 192.168.0.5 00:50:cc:44:55:56
arp -i eth0 -s 192.168.0.6 00:50:cc:44:55:57

そして、明らかにそれを実行する許可を追加します:

chmod +x /etc/network/if-up.d/add-my-static-arp

また、これらのarpエントリは、ネットワークインターフェイスが起動されるたびに手動で追加または再追加されます。

5
jozzas

/etc/network/if-up.dのスクリプトを見てください。これらは、インターフェースがp stateになるたびに呼び出されます。必要なコマンドを使用してスクリプトを作成し、そこに配置できます。

9
Mr Shunz
/etc/ethers

このファイルには以下が含まれている必要があります。

mac    ip-address
2
crester