
在我的應用程式將資料包注入虛擬介面後source 100.64.0.77
,destination 192.168.1.95
該utun2
資料包將被轉發到該en0
介面並按預期發送到其目的地。然而,當收到來自source 192.168.1.95
to 的回應資料包時,它是在介面上接收的。destination 100.64.0.77
en0
如何才能讓我的應用程式接收此回應資料包,utun2
以便我的應用程式能夠讀取此資料包?
utun2 的 ifconfig:
inet 100.64.0.77 --> 100.64.0.77 netmask 0xffffff00
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.254 UGSc en0
default link#10 UCSI utun2
100.64.0.77 100.64.0.77 UH utun2
127 127.0.0.1 UCS lo0
127.0.0.1 127.0.0.1 UH lo0
169.254 link#7 UCS en0 !
192.168.1 link#7 UCS en0 !
192.168.1 link#10 UCSI utun2
192.168.1.92/32 link#7 UCS en0 !
192.168.1.99 8c:a9:82:2e:d6:2e UHLWI en0 986
192.168.1.254/32 link#7 UCS en0 !
192.168.1.254 70:f1:96:86:e6:a0 UHLWIir en0 1196
224.0.0/4 link#7 UmCS en0 !
224.0.0/4 link#10 UmCSI utun2
224.0.0.251 1:0:5e:0:0:fb UHmLWI en0
255.255.255.255/32 link#7 UCS en0 !
255.255.255.255/32 link#10 UCSI utun2
答案1
對我來說看起來還不錯。如果您使用從 TUN 到 en0 的來源 NAT,則也需要使用反向路徑的 NAT 表。如果沒有NAT,封包只需要轉送即可。