问题描述
我有问题,因为我想将自己生成的数据包发送到GCP上的vm实例。我正在使用带有欺骗性源地址的以下代码:
packet = IP(src="77.7.7.7",dst="MY-VM-IP")/UDP(sport=RandShort(),dport=53)/DNS(rd=1,qd=DNSQR(qname="google.com"))
import time
while True:
send(packet)
time.sleep(1)
尽管当我不更改源IP时,我仍可以在VM上看到带有TCP转储的数据包。 我该如何运作?我在VM上启用了IP转发,并将FW设置为允许。
解决方法
根据文档1,只要发送数据包的VM将IP forwarding
设置为ON
,就有可能。
您还需要确保正在处理流量的VM具有允许该操作的Ingress FW规则。
我刚刚测试了以下内容,并且有效:
- 创建了VM A1,并允许来自任何地方的FW规则。
- 创建了另一个启用IP转发的VM B1。
- 运行上面的代码以生成数据包并将其从B1发送到A1。
- 我可以通过tcpdump看到到达A1的数据包。