Ubuntu ARP応答の設定

Ubuntu ARP応答の設定

arp応答を有効にする設定が何であるかを知りたいです。

2つのインターフェースを持つUbuntuシステムがあります。 1 つはプライベート LAN に接続されたイーサネット、もう 1 つはパブリック インターネットに接続された Wi-Fi です。プライベートLANからインターネットに接続するためにコンピュータが一時的に必要だったため、プライベートLANのアドレスをWiFiネットワークLANにマッピングするようにSNATを設定しました。

編集:アドレスを再翻訳するためにDNATも設定したという事実については言及していません。

8.8.8.8にpingを送信するとアウトバウンドヒットが発生しますが、戻ってきたときにWiFiルーターはNATアドレス(192.168.7.33)を「所有者」を知らないため、arp要求を送信します。

ハードウェアアドレスがイーサネットリンクに関連付けられているハードウェアアドレスであるところで実行しましたsudo arp -v -i wlp1s0 -s 192.168.7.33 84:7b:eb:35:a4:e0(また、「pub」の後に同じコマンドを実行しましたが、まだ送信されませんでした)。今私のarpテーブルにあります...:

Address                  HWtype  HWaddress           Flags Mask        Iface
192.168.7.33             ether   84:7b:eb:35:a4:e0   CM                    wlp1s0

しかし、Ubuntuボックスはまだarpに応答しません。

   19:26:59.542278 IP 192.168.7.33 > google-public-dns-a.google.com: 19:27:51.477054 IP 192.168.7.33 > 8.8.8.8: ICMP echo request, id 3312, seq 2692, length 64
19:27:51.493773 ARP, Request who-has 192.168.7.33 tell 192.168.7.254, length 46

最初のメッセージはGoogleへのpingで、2番目のメッセージは192.168.7.33でルーターを見つけることです。

この記事を参照してください。 要求されたIPアドレスが他の(無効になった)インターフェイスに関連付けられている場合、LinuxはARP要求メッセージに応答しません。、カーネルのIPルーティングテーブルを確認しました。

sudo ip route show table local
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 192.168.3.0 dev enp0s31f6  proto kernel  scope link  src 192.168.3.12 
local 192.168.3.12 dev enp0s31f6  proto kernel  scope host  src 192.168.3.12 
broadcast 192.168.3.255 dev enp0s31f6  proto kernel  scope link  src 192.168.3.12 
broadcast 192.168.7.0 dev wlp1s0  proto kernel  scope link  src 192.168.7.117 
local 192.168.7.117 dev wlp1s0  proto kernel  scope host  src 192.168.7.117 
broadcast 192.168.7.255 dev wlp1s0  proto kernel  scope link  src 192.168.7.117 

この質問では、ユーザーはそのアドレス(自分のNATとは異なります)へのルートを設定したため、ルートを追加しましたが、まだARPはありません。

パス-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.7.254   0.0.0.0         UG    600    0        0 wlp1s0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp1s0
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 enp0s31f6
192.168.7.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp1s0
192.168.7.33    192.168.3.10    255.255.255.255 UGH   0      0        0 enp0s31f6

コンピュータがARP要求に応答できるようにUbuntuに変更できる設定はありますか?そうでなければ、私たちが答えなかった理由を調べるために、次にどこを見なければなりませんか?

編集2:NATを設定する方法は次のとおりです。

sudo iptables -t nat -A POSTROUTING -s 192.168.3.10 -j SNAT --to-source 192.168.7.33
sudo iptables -t nat -A PREROUTING -d 192.168.7.33 -j DNAT --to-dest 192.168.3.10

編集3:DNAT / SNATから最も仮面舞踏会への変更はより簡単でスケーラブルです。

ベストアンサー1

ARP応答が自動的に有効になります。/procまたは の一部の項目を使用して機能をオフにすることもできますが、/sys検索する必要があります。

あなたが持っているのはかなり標準的なNATケースです。 NATの設定方法など、最も重要な情報は提供していませんが、通常は次のように行われます。

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT 
iptables -P FORWARD DROP
iptables -F FORWARD 
iptables -t nat -F
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

これにより、転送、iptablesルールの消去、デフォルトのポリシー設定、チェーンフィルタリングの設定が可能になり、から〜FORWARDまでの$INTIFすべてのパケットが許可されますが、反対方向の場合は$EXTIF接続トラッカー()でnf_conntrack追跡する必要があります。最後に転送されるすべてのパケットはインターフェイスに存在するアドレスMASQUERADEDと共に提供されるため、そのアドレスが変更されても常に正しいアドレスを使用します。SNAT追加のパスは必要ありません。必要に応じて、送信元アドレスで転送を制限できます。

$INTIFは内部インターフェイス(LAN)、$EXTIFは外部インターフェイス(WLAN)です。 Ubuntuが使用するツール(systemdなど)を使用して、それを継続的に作成できます。

これはデフォルトで機能し、操作は必要ありません。接続トラッカーDNATは、追加のルールなしでパケットを正しいアドレスに返し、それをLANに転送し、LANインターフェイス(送信する場所)からARPを送信します。

あなたの設定は多少異なると思います。これにより、間違った場所に興味深いARPが表示されます。

おすすめ記事