NAT ETH1 端口 5000 到 PPP0 的流量

NAT ETH1 端口 5000 到 PPP0 的流量

我有一台运行 Linux 变体的 Digi i.MX6UL。我已将ETH1Advantech EKI-6332GN 路由器 (169.254.0.5)连接到(169.254.0.1) 端口。我有一台运行 Windows Mobile 6.5 的 Zebra MC67 (169.254.0.3) 手持式 (HH) 设备,使用 Wi-Fi 连接到路由器。 MC67 可以 ping 通 6UL,6UL 也可以 ping 通 MC67。 6UL 在 VZW 网络上还有一个静态 IP (166.155.85.213)。我现在需要的是 NAT,用于将 MC67 通过 Wi-Fi ( ETH1) 路由到 的所有 TCP 端口 5000 流量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

让我们看看我的理解是否正确。

您在 Zebra MC67 手持设备(简称 HH)上有一个应用程序想要连接到端口 5000 上的已知 Internet 地址(例如 1.2.3.4)。

HH 通过路由器(充当交换机)连接到 LAN 网段,并且还连接到该 LAN 网段的是 Digi i.MX6UL(简称 6UL),它也具有 PPP 连接作为第二个接口。可通过此接口访问地址 1.2.3.4。

它是否正确?

第一步是删除链接本地地址 (169..*),因为这些不可路由。

因此,要么为每个设备分配一个静态地址(这需要在每个设备上进行配置),要么在某处运行 DHCP 服务器,例如在路由器上或在 6UL 上。 (每个 LAN 网段只能有一个 DHCP 服务器)。

在 6UL 上运行会更方便,因为这样 6UL 也可以宣布自己为该网段的网关。如何设置 DHCP 服务器的具体细节取决于您运行的 Linux 版本。

从私有 IP 范围中选择一个地址,例如 192.168.43.0/24。

查看 PPP 端点,它有一个公共 IP 地址,但我们刚刚分配了私有 IP 地址。因此,第二步您必须在 6UL 上设置 NAT(这种形式也称为 MASQUERADE):启用 IPV4 转发,添加必要的iptables规则。有很多教程,例如这个。确保适应您的接口名称等。

如果 PPP 也使用私有 IP 地址,则不需要第二步;在这种情况下,您只需确保 LAN 网段使用的地址范围不会与 PPP 后面使用的地址范围发生冲突。

现在,LAN 网段中的所有计算机都应该能够到达 PPP 链路后面的所有计算机,无论在哪个端口上。

相关内容