當有人在他的 IP 位址上執行追蹤路由時,客戶端想要新增一個假躍點。他有兩個IP位址,一個介面(沒問題,虛擬介面解決了)。我應該如何進行?這可能嗎?我嘗試了 iptables 轉發,但它不會出現在追蹤路由中。我還沒有嘗試過其他方法(也許是某種橋接?)
以下是 Tracert 中顯示的目前路由: Person Making Traceroute -> 1.1.1.2
以下是計畫的追蹤路由結果: 執行追蹤路由的人員 -> 1.1.1.1(假跳) -> 1.1.1.2
更新:添加了一些格式以澄清這不是 xy 問題。我絕對願意接受任何解決方案,而不僅僅是 iptables(無論是正確的還是骯髒的黑客)
編輯:它只在一台主機上(Linux)。我也想做這個。它不一定是任何花哨的東西。 1.1.1.1 只需要顯示在路由追蹤上。
我的嘗試 - 不一定是正確的方法
更新:我嘗試將封包從 1.1.1.2 反彈到 1.1.1.1,然後對其進行修改以減少 TTL,然後將其轉發到 1.1.1.2(Postrouting -j SNAT --to 1.1.1.1)。
編輯:這是我嘗試過的規則,刪除了敏感資訊:
# Generated by iptables-save v1.4.21 on Mon May 18 15:13:18 2015
*nat
:PREROUTING ACCEPT [8:760]
:INPUT ACCEPT [8:760]
:OUTPUT ACCEPT [1:104]
:POSTROUTING ACCEPT [1:104]
-A POSTROUTING -p icmp -m icmp --icmp-type 8 -j SNAT --to-source 1.1.1.1
COMMIT
# Completed on Mon May 18 15:13:18 2015
# Generated by iptables-save v1.4.21 on Mon May 18 15:13:18 2015
*mangle
:PREROUTING ACCEPT [763:151106]
:INPUT ACCEPT [763:151106]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [299:39396]
:POSTROUTING ACCEPT [299:39396]
-A FORWARD -i eth0 -o eth0:0 -p icmp -m icmp --icmp-type 8 -j TTL --ttl-dec 1
COMMIT
# Completed on Mon May 18 15:13:18 2015
# Generated by iptables-save v1.4.21 on Mon May 18 15:13:18 2015
*filter
:INPUT ACCEPT [839:179066]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [303:40704]
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p udp -m udp --dport 33434:33523 -j ACCEPT
-A FORWARD -d 1.1.1.1/32 -o eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
# Completed on Mon May 18 15:13:18 2015
答案1
理論上,以下內容應該有效並實現您所尋求的目標。
- 在相關伺服器上建立一個新的虛擬介面並為其指派 IP 位址,http://linuxconfig.org/configuring-virtual-network-interfaces-in-linux
- 設定來源 IP 位址/接口,使其指向透過更改路由表在上一組中建立的新虛擬接口(實際上,它成為來源和目標之間的新路由器/網關),http://linux-ip.net/html/basic-changing.html
答案2
好吧,我能想到的唯一方法是在發起請求的主機上執行此操作。您可以在那裡新增附加介面並將其綁定到適配器,並新增路由以使其流經該介面。主要原因是,當交換器發現與 IP 1.1.1.2 綁定的 MAC 位址時,您的追蹤將結束。
如果您不想為此更改請求者主機,則需要進行網路更改,例如修改模仿附加躍點的路由器。