Linuxバリアントを実行するDigi i.MX6ULがあります。ETH1
Advantech 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セグメントには2番目のインターフェイスとしてPPP接続があります。このインターフェイスを介してアドレス1.2.3.4にアクセスできます。
そうですか?
最初のステップはリンクローカルアドレスです(169。。.*) ルーティングできないからです。
したがって、各デバイスに固定アドレス(各デバイスの設定が必要)を割り当てるか、ルーターや6ULなどのどこかでDHCPサーバーを実行します。 (LANセグメントごとに1つのDHCPサーバーしか存在できません。)
6ULで実行する方が便利です。これは、6ULがこのネットワークセグメントのゲートウェイとして自分自身を宣言する可能性があるためです。 DHCPサーバーを設定する方法の詳細は、実行しているLinuxのバージョンによって異なります。
192.168.43.0/24などのプライベートIP範囲からアドレスを選択します。
PPPエンドポイントを見ると、パブリックIPアドレスがありますが、ちょうどプライベートIPアドレスを割り当てました。したがって、2番目のステップとして6ULでNATを設定する必要があります(この形式はMASQUERADEとも呼ばれます)。 IPV4転送を有効にし、必要なiptables
ルールを追加します。以下のチュートリアルがたくさんあります。これ。インターフェース名などを調整してください。
PPPがプライベートIPアドレスも使用している場合、この2番目のステップは必要ありません。 LANセグメントで使用されるアドレス範囲がPPPの後に使用されるアドレス範囲と競合しないことを確認するだけです。
LANセグメント内のすべてのコンピュータは、ポートに関係なくPPPリンクの背後にあるすべてのコンピュータに接続できるようになりました。