WAN ポート経由でインターネットにアクセスするように 4G モジュールを構成する

WAN ポート経由でインターネットにアクセスするように 4G モジュールを構成する

Linux ボードをスイッチまたはルーターとして構成し、ルーターと同様のインターネット アクセス機能を提供します。ここでは、4G ネットワーク カードがインターネットにアクセスするための WAN として使用されます。

1. ブリッジを使用してインターネットにアクセスする

1. 4G モジュールをデフォルト ゲートウェイとして設定する

まず、4G モジュールをデフォルトのルーティング ゲートウェイとして設定します。

ここでは、最初に 4G モジュールをルーティング モードで設定する必要があります。4G モジュール ルーティング モードとネットワーク カード モードの違いは、ダイヤルアップが成功した後、ルーティング モードで usb0 ネットワーク カードに割り当てられる IP アドレスは LAN IP (192.168.xx) であるのに対し、割り当てられる IP アドレスは LAN IP (192.168.xx) であることです。ネットワーク カード モードでは、パブリック ネットワーク IP アドレス (10.21.26.197) が使用されます。

ボードの有線および無線ネットワーク接続を切断し、ping baidu.comテストに使用します。インターネットにアクセスできれば、4G モジュールのネットワーク構成は正常です。ip routeそれ以外の場合は、 4G モジュールをデフォルト ゲートウェイとして設定し、4G モジュールがダイヤルアップしてインターネットに正常にアクセスできることを確認する必要があります

2. ブリッジを作成する

参考: https://blog.csdn.net/duapple/article/details/127001192?spm=1001.2014.3001.5501

4G モジュールのネットワーク カードをusb0他のネットワーク ポートにブリッジします。ここのボードには 2 つのイーサネット ポートがありますが、実験ではネットワーク ポートを 1 つだけ使用するため、テスト用のコンピュータに接続するためにブリッジされるのは 1 つだけです。

brctl addbr br0
brctl addif br0 usb0
brctl addif br0 eth0
ifconfig eth0 0.0.0.0
ifconfig usb0 0.0.0.0
ifconfig br0 up

次に、br0 の IP が 4G モジュールと同じネットワーク セグメントに存在するように設定する必要があります。最初のステップでは、オンラインになると usb0 に LAN IP が存在します192.168.43.100ここで、br0 の IP は次のように構成できます。

ifconfig br0 192.168.43.100/24

次に、br0 ネットワーク カードをデフォルト ルートとして設定します。

ip route add default via 192.168.43.1 dev br0

その後、4G モジュール ゲートウェイに ping できるようになり192.168.43.1、さらに baidu.com にも ping できるようになります。

3. PCの設定

ここで、コンピュータはイーサネットを介して Linux ボードに接続されており、PC のイーサネットに適合したアドレスは br0 でネットワーク セグメントとして構成され、ゲートウェイ アドレスは 4G モジュールのゲートウェイ アドレスとして構成されます192.168.43.1DNS アドレスの設定114.114.114.114テストに影響を与えないように、ワイヤレス ネットワーク カードなど、インターネットにアクセスできる他のネットワーク アダプターを無効にするように注意してください。

画像-20221204215541670

現時点ではインターネットにアクセスできない可能性があります。まず Windows 上の Linux ボードの br0 ネットワーク カード アドレスに ping を実行し192.168.43.100、接続が確立された後にゲートウェイ アドレスに ping を実行します192.168.43.1次に、baidu.com に再度 ping を送信します。その後、ネットワーク全体が接続されます。最初にネットワークに到達できない理由は、アドレス学習が始まったばかりであるため、ネットワークが不安定になり、baidu.com ネットワークへの ping の繰り返しが断続的になったり、パケット損失が発生したりする可能性があります。安定したら大丈夫ですよ。

画像-20221204220057058 画像-20221204220142794 Windows でのネットワーク速度テストは Linux ボードでのテスト結果と似ていますが、4G は依然として遅すぎます。

4. まとめ

現時点では、ネットワーク ケーブルを使用して Linux ボードに接続し、IP を手動で設定している限り、Linux ボード上の 4G モジュールを使用してオンラインに接続できます。

2. NAT を使用してインターネットをサーフィンする

参考:https://codeantenna.com/a/4ZBrXkM9Zy

NAT を構成し、転送を完了するには、iptables を使用する必要があります。

1. iptables/netfilterの設定

NAT はユーザー空間のツールであるnetfilterカーネル モジュールによって完成され、この 2 つを一緒に使用する必要があります。iptables

1.1 ネットフィルター

まずカーネルで設定しますnetfilter

画像-20221206215159617 画像-20221206215159617 画像-20221206215159617 画像-20221206215159617

と を<*> IPv4 connection tracking support (required for NAT)表示するには、これをオンにする必要があることに注意してください-*- IPv4 NAT<*> iptables NAT support

構成が完了したら、カーネルを再コンパイルして書き込みます。

1.2 iptables

通常、このファイル システムは付属しています。そうでない場合は、クロスコンパイル ツールチェーンを使用して自分でコンパイルし、開発ボードに配置します。他のライブラリの導入を避けるためにlibmnl、クロスコンパイル設定にパラメータを追加します--disable-nftables

アドレス転送を構成するには、まず転送を有効にします。

echo "1" > /proc/sys/net/ipv4/ip_forward

次に、次のように設定します。

iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

ただ、エラーを報告しないでください。

2. 4Gモジュールの設定

4G モジュールがインターネットに正常にアクセスできることを確認する必要があります。

ここでは、4G モジュールをネットワーク カード モードとして設定します。4G モジュールを例に挙げるとquectel、AT コマンドは ですAT+QCFG="NAT",1。設定が完了したら、有効にするために再起動する必要があります。再起動し、ダイヤルアップが完了すると、4G モジュールにはパブリック ネットワーク IP と同様の IP アドレス (10 番目のセグメントの先頭のアドレス) が割り当てられます。

次に、usb04G モジュールのネットワーク カードをデフォルト ルートとして設定します。通常、上記のダイヤルアップが完了すると、システムは自動的にルーティング テーブルを構成します。

root@ATK-IMX6U:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.40.163.52    0.0.0.0         UG    0      0        0 usb0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 usb0
10.40.163.52    0.0.0.0         255.255.255.255 UH    0      0        0 usb0
183.230.126.224 10.40.163.52    255.255.255.255 UGH   0      0        0 usb0
183.230.126.225 10.40.163.52    255.255.255.255 UGH   0      0        0 usb0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

私のシステムは複数のルールで自動的に構成されています。

何も問題がなければping baidu.com成功とみなされます。

root@ATK-IMX6U:~# ping baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66: icmp_seq=1 ttl=48 time=59.1 ms
64 bytes from 110.242.68.66: icmp_seq=2 ttl=48 time=57.4 ms
64 bytes from 110.242.68.66: icmp_seq=3 ttl=48 time=55.5 ms
64 bytes from 110.242.68.66: icmp_seq=4 ttl=48 time=67.4 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 55.571/59.903/67.421/4.522 ms

ping が baidu と異なる場合は、/etc/resolv.conf次の内容を変更して追加します。

nameserver 114.114.114.114
nameserver 127.0.0.1

そうすればpingは問題ないはずです。

3. ネットワーク構成

4G モジュールのネットワーク構成に加えて、クライアントとクライアントに接続されるネットワーク ポートの構成も必要です。

3.1 Linux ネットワークポートの設定

Linux ボードをクライアントに接続するネットワーク ポート (eth0) は、ゲートウェイ アドレスを使用して構成する必要があります192.168.10.1そうしないと、クライアントはインターネットにアクセスできません。

3.2 クライアントのネットワーク構成

ここではクライアントは PC Windows を使用します。クライアント コンピュータと Linux ボードに接続されている IP は、同じネットワーク セグメントに設定する必要があります。たとえば192.168.10.200、ゲートウェイ アドレスは に設定する必要があります192.168.10.1現時点では、インターネットはすでに利用可能であり、qq ネットワークが利用可能です。

画像-20221206215159617

しかし、ping baidu は失敗し、ブラウザから baidu へのアクセスも失敗します。ここでは、DNS アドレスを に設定します114.114.114.114その後、baidu に再度 ping を実行したところ、すでに利用可能であることがわかり、ブラウザーのアクセスには問題ありませんでした。

C:\Users\28328>ping baidu.com

正在 Ping baidu.com [110.242.68.66] 具有 32 字节的数据:
来自 110.242.68.66 的回复: 字节=32 时间=58ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=79ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=73ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=55ms TTL=47

110.242.68.66 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 55ms,最长 = 79ms,平均 = 66ms

注: 同様に、テストへの影響を防ぐために、テスト中に外部ネットワークにアクセスできる他のネットワーク カードを無効にする必要があります。

おすすめ

転載: blog.csdn.net/duapple/article/details/128178394