Tuntapインターフェイスの奇妙な動作

Tuntapインターフェイスの奇妙な動作

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.govtap0のインターフェイスが正しいことを確認できます。

これにより、出力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.100srcがあるように見えるtap0にパケットを正常に注入しましたが、169.253.2.50カーネルは応答しません。

私は経験上、FreeBSDと最も似たネットワーク動作を示すmacOS Catalinaを使用しています。

関連情報