tuntapインターフェイスを設定するためにtapcfgを使用するプログラムがありますが、インターフェイスは私が指定したエンドポイントアドレスに正しく設定されているようです169.253.2.100
。また、srcアドレスを192.168.1.50
。
ifconfigを使用すると、次のようになります。
tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether aa:b6:24:69:77:21
inet 169.253.2.100 netmask 0xffffff00 broadcast 169.253.2.255
media: autoselect
status: active
open (pid 3738)
ただし、ルーティングエントリを確認すると、次の結果が表示されます。
route get 169.253.2.100
route to: 169.253.2.100
destination: 169.253.2.100
interface: lo0
flags: <UP,HOST,DONE,LLINFO,WASCLONED,LOCAL,IFSCOPE,IFREF>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 16384 0
いいえ、インターフェイスは tap0 でなければなりません。
しかし、ルートを確認した後、次のことがわかり169.253.2.50
ました。
route get 169.253.2.50
route to: pptform.state.gov
destination: pptform.state.gov
interface: tap0
flags: <UP,HOST,REJECT,DONE,LLINFO,WASCLONED,IFSCOPE,IFREF>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 -18
確認されたDNSを無視すると、pptform.state.gov
tap0のインターフェイスが正しいことを確認できます。
これにより、出力ping 169.253.2.100
でループバックアクティビティが発生しますroute get 169.253.2.100
。 pingをすると、要求の169.253.2.50
タイムアウトが発生します。
何が問題なのか知っていますか?
私はできます。
sudo route change -host 169.253.2.100 -ifscope tap0
Password:
change host 169.253.2.100
しかし、変化は持続しないようです。
私のプログラムはwhohas 169.253.2.100
srcがあるように見えるtap0にパケットを正常に注入しましたが、169.253.2.50
カーネルは応答しません。
私は経験上、FreeBSDと最も似たネットワーク動作を示すmacOS Catalinaを使用しています。