如何实现外部主机访问GNS3桥接接口内的虚拟防火墙?
如何实现外部主机访问GNS3桥接接口内的虚拟防火墙?
看起来你遇到的是典型的跨网段流量转发问题,结合你的拓扑和测试结果,我来一步步帮你解决:
1. 开启Ubuntu服务器的IP转发功能
默认情况下,Ubuntu会禁用IP转发(也就是不让流量在不同网卡接口之间跳转),这就是为什么你的笔记本流量到了服务器就被丢弃的核心原因。
- 临时生效(重启后失效):在服务器上执行以下命令:
echo 1 > /proc/sys/net/ipv4/ip_forward - 永久生效:编辑
/etc/sysctl.conf文件,找到net.ipv4.ip_forward=1这一行,去掉前面的注释符号#,然后执行下面的命令让配置立即生效:sysctl -p
2. 调整防火墙(iptables/ufw)的转发规则
即使开启了IP转发,Ubuntu的默认防火墙规则可能还是会拦截跨接口的转发流量,需要手动放行:
如果用原生iptables:
先查看当前的转发规则:
iptables -L FORWARD -v
如果看到有DROP类型的规则,添加以下两条规则允许双向转发:
# 允许从笔记本所在网段(192.168.1.0/24)到GNS3虚拟网段(192.168.122.0/24)的流量 iptables -A FORWARD -i enp9s0 -o virbr0 -j ACCEPT # 允许从虚拟网段回到笔记本网段的回程流量 iptables -A FORWARD -i virbr0 -o enp9s0 -j ACCEPT
如果用ufw防火墙:
编辑/etc/default/ufw文件,找到DEFAULT_FORWARD_POLICY="DROP"这一行,把它改成:
DEFAULT_FORWARD_POLICY="ACCEPT"
然后重启ufw让配置生效:
ufw reload
3. 给Palo Alto虚拟防火墙配置回程路由
现在你的防火墙只能ping通服务器和virbr0,它不知道怎么把回包发送到笔记本所在的192.168.1.0/24网段,所以需要添加一条静态路由:
- 登录Palo Alto防火墙的管理界面
- 进入网络 > 静态路由页面
- 添加一条新的静态路由:
- 目标网段:
192.168.1.0/24 - 下一跳地址:
192.168.122.1(也就是virbr0的IP) - 选择防火墙连接到virbr0的那个接口
- 目标网段:
- 保存并提交配置
完成以上三步后,你再从笔记本ping虚拟防火墙,或者从防火墙ping笔记本,应该就能正常通了。
备注:内容来源于stack exchange,提问作者Zach




