%20%E4%B8%8D%E8%BD%89%E9%80%81%E5%B0%81%E5%8C%85%20(RPi).png)
我目前正在進行 LTE 網路專案。我有兩個 wwan 介面(wwan0.1 和 wwan0.2)和兩個乙太網路介面(eth0 和 eth1)。這些介面的配置如下所示:
+-------------------------------------------------------------------------------------+
| Raspberry Pi |
| +------------------+ +-----+ +-----+ +-----+ |
+----------------+ | | +------------+ | | | | | | | +-------------------+ |
| PC 1 | | | | | | | | | | | | | WWAN0.1 (Private) | |
| DHCP |----+----+--| ETH0 | | | | | | | |<-->| Static | |
| 192.18.1.123 | | | | | | | E | | D | | I | | 10.16.ppp.ppp | |
+----------------+ | | +------------+ | | B | | N | | P | +-------------------+ |
| | | | T | | S | | | |
| | BR0 |<-->| A |<-->| M |<-->| R | |
| | | | B | | A | | O | |
+----------------+ | | +------------+ | | L | | S | | U | +-------------------+ |
| PC 2 | | | | | | | E | | Q | | T | | WWAN0.1 (Public) | |
| DHCP |----+----+--| ETH1 | | | S | | | | E |<-->| DHCP | |
| 192.18.1.169 | | | | | | | | | | | | | 10.xxx.xxx.xxx | |
+----------------+ | | +------------+ | | | | | | | +-------------------+ |
| +------------------+ +-----+ +-----+ +-----+ |
| |
+-------------------------------------------------------------------------------------+
以下作品:
- 從 RPi 我可以 ping 通專用網路 wwan0.1 上的伺服器
- 從 RPi 我可以 ping 通公共網路 wwan0.2 上的伺服器
- PC1 和 PC2 從 DNSMasq 分配一個 IP 位址(透過 br0)
- 從 PC1 我可以 ping PC2
- 從 PC2 我可以 ping PC1
- 從 PC1 和 PC2,我可以 ping RPi (192.168.1.1)
- 從 PC1 和 PC2,我可以透過 SSH 連接到 RPi (192.168.1.1)
但是以下方法不起作用:
- 我無法從 PC1 ping 私人或公共網路上的任何內容
- 我無法從 PC2 ping 私人或公共網路上的任何內容
這是我目前的設置
brctl
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0050b69c9bf5 no eth0
eth1
ebtables
Bridge table: filter
Bridge chain: FORWARD, entries: 4, policy: DROP
-p IPv4 -j ACCEPT
-p ARP -j ACCEPT
-j ACCEPT
--log-level info --log-prefix "EBFW" --log-ip -j CONTINUE
Bridge chain: INPUT, entries: 4, policy: DROP
-p IPv4 -j ACCEPT
-p ARP -j ACCEPT
-j ACCEPT
--log-level info --log-prefix "EBFW" --log-ip -j CONTINUE
Bridge chain: OUTPUT, entries: 4, policy: DROP
-p IPv4 -j ACCEPT
-p ARP -j ACCEPT
-j ACCEPT
--log-level info --log-prefix "EBFW" --log-ip --log-arp -j DROP
系統設定檔
net.ipv4.ip_forward=1
net.ipv4.conf.br0.bc_forwarding=1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
ip路由
default dev wwan0.2 scope link
10.16.ppp.ppp/30 dev wwan0.1 proto kernel scope link src 10.16.ppp.ppp
10.xxx.xxx.xxx/29 dev wwan0.2 proto kernel scope link src 10.xxx.xxx.xxx
10.10.124.0/24 dev wwan0.1 scope link
10.100.0.0/22 dev wwan0.1 scope link
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1
有人知道缺失的部分是什麼嗎?
乾杯,
李
答案1
您可能會錯過 NAT 部分,因為一側使用私人 IP 位址,另一側使用公用 IP 位址的 LAN 之間需要任何路由器路由。
就像這樣簡單的事:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o wwan+ -j MASQUERADE
如果您也完全控制了 wwan 及其遠端端,則可以想像專用部分 (wwan0.1) 上的遠端設備可以透過 10.16.ppp.ppp 接收到 192.168.1.0/24 的直接路由,而不是使用 NAT RPi,但這樣做的可能性取決於通訊的實現方式。