[问题] iptables可以做到桥接吗?

楼主: uorol (′‧ω‧‵)   2019-09-10 00:31:21
Dear all
小弟最近在玩Raspberry,
想要透过板子来做两台电脑的桥接功能
爬文之后暂时用brctl可以做到两个interface的桥接,
但是实作上还有一些不太优雅的地方.
想问问有没有人有相关的经验可以分享
[目标]
想要使不同 interface 上面的 Device A 可以跟 Device B 进行沟通
Device A <========> Raspberry <========> Device B
eth0 eth1
* 分配 ip 给两台 Device 是透过 DHCP 来完成
[尝试做法I]
把 Device A 跟 Raspberry 配到 子网域 A (192.168.100.0)
192.168.100.100 192.168.100.1 (eth0)
把 Device B 跟 Raspberry 配到 子网域 B (192.168.111.0)
192.168.111.100 192.168.111.1 (eth1)
用 iptables 加入 forward 规则
=> 理论可行...?
但是需要修改 Device A/B 的 routing rule,
否则会走 default gateway, 就不会透过 eth0/1进行沟通
因为不是全部的 Device 都有权限修改 routing table,
就放弃此作法了...
[尝试做法II]
把 Device A 跟 Raspberry 配到 子网域 A (192.168.100.0)
192.168.100.100 192.168.100.1 (eth0)
把 Device B 跟 Raspberry 配到 子网域 A (192.168.100.0)
192.168.100.101 192.168.100.2 (eth1)
用 iptables 加入 forward 规则
=> Device A/B 没办法互相 ping 到
应该是 default routing rule 第一条 rule,
把 192.168.100.0 的 broadcast 全部丢给 eth0 了...
[尝试做法III]
把 Device A 跟 Raspberry 配到 子网域 A (192.168.100.0)
192.168.100.100 192.168.100.1 (eth0)
把 Device B 跟 Raspberry 配到 子网域 A (192.168.100.0)
192.168.100.101 192.168.100.2 (eth1)
等两台 Device 配到 ip 后
用 brctl 加入一个 bridge br0
然后将 eth0 跟 eth1 加入 br0
把 eth0 / eth1 重设 ip 为 0.0.0.0
br0 分配 ip 为 192.168.100.3
=> Device A 可以 Ping 到 Device B, 也可以 Ping 到 Raspberry
不过接下来 eth0 跟 eth1 的 DHCP 貌似就失效了...
比较暴力的方法就是当其中一边断线之后我就把 interface 全部干掉重来
不过这样也太不优雅了 xd
不知道有没有其它建议? 或者有没有比较推荐的文章可以阅读
谢谢!
作者: wens (文思)   2019-09-10 06:31:00
方法3: 你都挂成 br0 了,当然 dhcp 也是用 br0 去请求啊就算你是 static ip 也是让 br0 挂IP,不是他附属的接口
作者: Bencrie   2019-09-10 09:00:00
同楼上。原 po 你 bridge 都弄好了就不要管 eth0/eth1iproute2 的命令:ip l a br0 type bridgeip a a 192.168.100.1/24 dev br0ip l s eth0 master br0;ip l s eth1 master br0ip l s up br0最后 dhcpd 接口用 br0
楼主: uorol (′‧ω‧‵)   2019-09-10 10:51:00
感谢楼上两位, 因为我有一边是用p2p wlan去连接看了一下log应该是wpa尝试用原先的interface去沟通可能我得想办法把wpa里面带的interface也改成br0....XD
作者: deadwood (T_T)   2019-09-12 00:34:00
建立br0接口并加入两张网卡为成员以后,你的两个device设定同个网段的IP就该通了,br跟ethx其实不需要设定IP有需要从Rpi上面发DHCP才需要设定br0的IP才对另外拟用iptable做的是路由而不是桥接

Links booklink

Contact Us: admin [ a t ] ucptt.com