Linux 변형을 실행하는 Digi i.MX6UL이 있습니다. ETH1
어드밴텍 EKI-6332GN 라우터(169.254.0.5)를 (169.254.0.1) 포트에 연결했습니다 . Windows Mobile 6.5를 실행하는 Zebra MC67(169.254.0.3) 핸드헬드(HH) 장치가 Wi-Fi를 사용하여 라우터에 연결되어 있습니다. MC67은 6UL을 ping할 수 있고, 6UL은 MC67을 ping할 수도 있습니다. 6UL에는 VZW 네트워크에 고정 IP(166.155.85.213)도 있습니다. 지금 필요한 것은 ETH1
모든 TCP 포트 5000 트래픽을 Wi-Fi를 통해 MC67로 라우팅하는 NAT입니다 PPP0
.
root@ccimx6ulsbc:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:04:F3:15:87:9D
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:19766 (19.3 KiB)
eth1 Link encap:Ethernet HWaddr 00:04:F3:15:87:9C
inet addr:169.254.0.1 Bcast:169.254.0.255 Mask:255.255.255.0
inet6 addr: fe80::204:f3ff:fe15:879c%lo/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:54 errors:0 dropped:0 overruns:0 frame:0
TX packets:10699 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4766 (4.6 KiB) TX bytes:1855108 (1.7 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1%1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:107545 errors:0 dropped:0 overruns:0 frame:0
TX packets:107545 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:8700743 (8.2 MiB) TX bytes:8700743 (8.2 MiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:166.155.85.213 P-t-P:0.0.0.0 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:281028 errors:9591 dropped:0 overruns:0 frame:0
TX packets:347128 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:91846595 (87.5 MiB) TX bytes:99025969 (94.4 MiB)
wlan0 Link encap:Ethernet HWaddr 00:04:F3:15:87:9E
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan1 Link encap:Ethernet HWaddr 02:03:7F:D7:00:01
inet addr:192.168.46.30 Bcast:192.168.46.255 Mask:255.255.255.0
inet6 addr: fe80::3:7fff:fed7:1%lo/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6666 errors:0 dropped:1 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1897472 (1.8 MiB)
root@ccimx6ulsbc:~# ip route list
default dev ppp0 proto static scope link metric 700
169.254.0.0/24 dev eth1 proto kernel scope link src 169.254.0.1
192.168.46.0/24 dev wlan1 proto kernel scope link src 192.168.46.30
root@ccimx6ulsbc:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default * 0.0.0.0 U 700 0 0 ppp0
169.254.0.0 * 255.255.255.0 U 0 0 0 eth1
192.168.46.0 * 255.255.255.0 U 0 0 0 wlan1
답변1
제가 이해한 것이 맞는지 확인해 보겠습니다.
포트 5000(예: 1.2.3.4)의 알려진 인터넷 주소에 연결하려는 Zebra MC67 휴대용 장치(간단히 HH)에 애플리케이션이 있습니다.
HH는 라우터(스위치 역할)를 통해 LAN 세그먼트에 연결되며, 이 LAN 세그먼트에도 Digi i.MX6UL(줄여서 6UL)이 연결되어 있으며, 이 LAN 세그먼트에도 두 번째 인터페이스로 PPP 연결이 있습니다. 이 인터페이스를 통해 주소 1.2.3.4에 액세스할 수 있습니다.
맞습니까?
첫 번째 단계는 링크 로컬 주소(169...*) 라우팅할 수 없기 때문입니다.
따라서 각 장치에 고정 주소(각 장치에 대한 구성이 필요함)를 할당하거나 라우터나 6UL과 같은 어딘가에서 DHCP 서버를 실행하십시오. (LAN 세그먼트당 DHCP 서버는 하나만 있을 수 있습니다.)
6UL에서 실행하는 것이 더 편리할 것입니다. 왜냐하면 6UL이 이 네트워크 세그먼트의 게이트웨이로 스스로를 선언할 수도 있기 때문입니다. DHCP 서버를 설정하는 방법에 대한 구체적인 세부 정보는 실행 중인 Linux 버전에 따라 다릅니다.
192.168.43.0/24와 같은 개인 IP 범위에서 주소를 선택합니다.
PPP 엔드포인트를 보면 공용 IP 주소가 있는데 방금 개인 IP 주소를 할당했습니다. 따라서 두 번째 단계로 6UL에서 NAT를 설정해야 합니다(이 형식은 MASQUERADE라고도 함). IPV4 전달을 활성화하고 필요한 iptables
규칙을 추가합니다. 다음과 같은 많은 튜토리얼이 있습니다.이것. 인터페이스 이름 등을 조정하십시오.
PPP가 개인 IP 주소도 사용하는 경우 이 두 번째 단계는 필요하지 않습니다. LAN 세그먼트에서 사용하는 주소 범위가 PPP 뒤에 사용되는 주소 범위와 충돌하지 않는지 확인하기만 하면 됩니다.
이제 LAN 세그먼트의 모든 컴퓨터는 포트에 관계없이 PPP 링크 뒤에 있는 모든 컴퓨터에 연결할 수 있습니다.