%20%D0%BD%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%8B%D0%BB%D0%B0%D0%B5%D1%82%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D1%8B%20(RPi).png)
В настоящее время я нахожусь в середине проекта сети LTE. У меня есть два интерфейса wwan (wwan0.1 и wwan0.2) и два интерфейса Ethernet (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 я могу пинговать сервер в частной сети wwan0.1
- С RPi я могу пинговать сервер в публичной сети wwan0.2
- ПК1 и ПК2 получают IP-адрес от DNSMasq (через br0)
- С ПК1 я могу пинговать ПК2
- С ПК2 я могу пинговать ПК1
- С ПК1 и ПК2 я могу пропинговать RPi (192.168.1.1)
- С ПК1 и ПК2 я могу подключиться к RPi через SSH (192.168.1.1)
Однако следующее не работает:
- Я не могу выполнить ping ни в частной, ни в публичной сети с ПК1
- Я не могу выполнить ping ни в частных, ни в публичных сетях с ПК2
Вот моя текущая настройка
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
sysctl.conf
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-адреса с другой стороны.
Что-нибудь простое, например:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o wwan+ -j MASQUERADE
Если у вас есть полный контроль над wwan и его удаленной частью, можно представить, что удаленные устройства на частной части (wwan0.1) могли бы получать прямые маршруты к 192.168.1.0/24 через 10.16.ppp.ppp вместо использования NAT на RPi, но возможность сделать это будет зависеть от того, как реализована связь.