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
不知道有沒有其它建議? 或者有沒有比較推薦的文章可以閱讀
謝謝!