Tuntap 界面奇怪的行为

Tuntap 界面奇怪的行为

我有一个程序,它使用 tapcfg 来设置 tuntap 接口,并且该接口似乎在我指定的端点地址上正确设置了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数据包注入到 tap0 中,该数据包显示为具有 src 169.253.2.50,但内核从未响应。

我使用的是 macOS Catalina,根据我的经验,它的网络行为与 FreeBSD 最相似。

相关内容