我目前正在进行一个 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(通过 br0)分配一个 IP 地址
- 从 PC1 我可以 ping PC2
- 从 PC2 我可以 ping PC1
- 从 PC1 和 PC2,我可以 ping 通 RPi (192.168.1.1)
- 从 PC1 和 PC2,我可以通过 SSH(192.168.1.1)连接到 RPi
但是下面的操作不起作用:
- 我无法从 PC1 ping 私有网络或公共网络上的任何内容
- 我无法从 PC2 ping 私有网络或公共网络上的任何内容
这是我当前的设置
控制寄存器
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
路由
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 地址的 LAN 和另一侧使用公共 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 的直接路由,而不是在 RPi 上使用 NAT,但这样做的可能性取决于通信的实施方式。