networking - GCP 不允许带有欺骗性 IP 地址的数据包 - 为什么?
问题描述
我有问题,因为我想将自己生成的数据包发送到 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 转储的数据包。我怎样才能让它工作?我在我的虚拟机上启用了 IP 转发,并将 FW 设置为允许。
解决方案
根据文档1,只要发送数据包的 VM 已IP forwarding
设置为,就有可能ON
。
您还需要确保接收流量的 VM 具有允许该流量的 Ingress FW 规则。
我刚刚测试了以下内容并且它有效:
- 创建了一个 VM A1,它允许来自任何地方的一切 FW 规则。
- 创建了另一个 VM,B1 并启用了 IP 转发。
- 运行上面的代码生成一个数据包并将其从 B1 发送到 A1。
- 我可以通过 tcpdump 看到到达 A1 的数据包。
推荐阅读
- dart - 将图像的一部分绘制到小部件上
- xml - XML 编辑器 Intellij - 找不到任何
- javascript - 如何在 PHP Web 应用上安全地使用 Firebase 身份验证
- wix - 检查 WiX 语法的正确性
- javascript - 显示和隐藏所有具有相同名称的 div
- javascript - 在 javascript 中使用正则表达式搜索数组
- powershell - 如何在powershell中使用get-process结果填充数组
- r - 在 Bitbucket 管道中停止闪亮的应用程序
- mysql - 在 order by 子句中有一个可为空的索引列会影响 MySQL 查询性能吗?
- c# - Unity 通过脚本设置播放器设置目标架构