作者uorol (′‧ω‧‵)
看板Linux
標題[問題] iptables可以做到橋接嗎?
時間Tue Sep 10 00:31:21 2019
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
不知道有沒有其它建議? 或者有沒有比較推薦的文章可以閱讀
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.32.204 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1568046683.A.EA9.html
1F:→ wens: 方法3: 你都掛成 br0 了,當然 dhcp 也是用 br0 去請求啊 09/10 06:31
2F:→ wens: 就算你是 static ip 也是讓 br0 掛IP,不是他附屬的介面 09/10 06:31
3F:推 Bencrie: 同樓上。原 po 你 bridge 都弄好了就不要管 eth0/eth1 09/10 09:00
4F:→ Bencrie: iproute2 的命令:ip l a br0 type bridge 09/10 09:02
5F:→ Bencrie: ip a a 192.168.100.1/24 dev br0 09/10 09:02
6F:→ Bencrie: ip l s eth0 master br0;ip l s eth1 master br0 09/10 09:03
7F:→ Bencrie: ip l s up br0 09/10 09:04
8F:→ Bencrie: 最後 dhcpd 介面用 br0 09/10 09:05
9F:→ uorol: 感謝樓上兩位, 因為我有一邊是用p2p wlan去連接 09/10 10:51
10F:→ uorol: 看了一下log應該是wpa嘗試用原先的interface去溝通 09/10 10:52
11F:→ uorol: 可能我得想辦法把wpa裡面帶的interface也改成br0....XD 09/10 10:55
12F:→ deadwood: 建立br0介面並加入兩張網卡為成員以後,你的兩個device 09/12 00:34
13F:→ deadwood: 設定同個網段的IP就該通了,br跟ethx其實不需要設定IP 09/12 00:35
14F:→ deadwood: 有需要從Rpi上面發DHCP才需要設定br0的IP才對 09/12 00:36
15F:→ deadwood: 另外擬用iptable做的是路由而不是橋接 09/12 00:39