[iptables] 如何用iptables管理桥接模式下的设备
场景:qemu虚拟机通过tap设备与host的物理网卡通过bridge桥接上网。
如下:
[root@host100 ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.001700010000 yes eth0 tap200-0
虚拟机里有一个client外连一个指定的tcp端口获取服务,因为它是不可配置的,所以它默认链接 169.254.169.254的1600端口。
配置根据不同的部署情况在host主机上做,方法是用DNAT,置换掉169.254.169.254:1600为指定的ip和端口。
通常情况下nat的配置这样写:
iptables -t nat -A PREROUTING -p tcp -d 169.254.169.254 -m tcp --dport 1600 -j DNAT --to-destination 192.168.7.129:10001
但是,并不好使。因为bridge的情况比较特殊(但是我并不知道为啥特殊。。。。)
所以,需要这样写:
iptables -t nat -A PREROUTING -p tcp -d 169.254.169.254 -m tcp --dport 1600 -m physdev --physdev-in tap200-0 -j DNAT --to-destination 192.168.7.129:10001
当时即使这样,依然也不一定好使。因为还需要另一个重要的配置:
echo 1 > /proc/sys/net/ipv4/ip_forward
至于这个配置的深层定义,我还没有理解。待续~~~
参考:http://bwachter.lart.info/linux/bridges.html
标签:
iptables
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 如何做好软件架构师
· 记录一次线上服务OOM排查
· 欧阳的2024年终总结,迷茫,重生与失业
· 在 .NET 中使用 Tesseract 识别图片文字
· Bolt.new 30秒做了一个网站,还能自动部署,难道要吊打 Cursor?
· 敏捷开发:如何高效开每日站会(Daily Stand-up Meeting)
· C#/.NET/.NET Core技术前沿周刊 | 第 20 期(2025年1.1-1.5)
2017-10-23 [daily][centos][sudo] sudo 报错