%EA%B0%80%20%ED%8C%A8%ED%82%B7(RPi)%EC%9D%84%20%EC%A0%84%EB%8B%AC%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%8C.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에서 개인 네트워크 wwan0.1의 서버에 ping을 보낼 수 있습니다.
- RPi에서 공용 네트워크 wwan0.2의 서버에 ping을 보낼 수 있습니다.
- PC1과 PC2는 DNSMasq에서 (br0을 통해) IP 주소를 할당받습니다.
- PC1에서 PC2에 ping을 보낼 수 있습니다.
- PC2에서 PC1에 ping을 보낼 수 있습니다.
- PC1과 PC2에서 RPi(192.168.1.1)를 핑할 수 있습니다.
- PC1과 PC2에서 SSH(192.168.1.1)를 통해 RPi에 연결할 수 있습니다.
그러나 다음은 작동하지 않습니다.
- PC1의 개인 또는 공용 네트워크에서 아무 것도 핑할 수 없습니다
- PC2의 개인 또는 공용 네트워크에서 아무 것도 핑할 수 없습니다
내 현재 설정은 다음과 같습니다.
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
한쪽의 개인 IP 주소와 다른 쪽의 공용 IP 주소를 사용하는 LAN 간의 라우터 라우팅이 필요하므로 NAT 부분을 놓칠 수 있습니다.
다음과 같이 간단합니다.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o wwan+ -j MASQUERADE
Wwan과 원격 측도 완전히 제어할 수 있는 경우 개인 부분(wwan0.1)의 원격 장치가 NAT를 사용하는 대신 10.16.ppp.ppp를 통해 192.168.1.0/24에 대한 직접 경로를 수신할 수 있다고 상상할 수 있습니다. 하지만 그렇게 할 수 있는 가능성은 통신이 어떻게 구현되는지에 따라 달라집니다.