Linuxネットワークネームスペースを使用したインターネット接続

Linuxネットワークネームスペースを使用したインターネット接続

Ubuntu 17.1ディストリビューションでLinuxネームスペースを使用しようとしています。究極の目標は、アプリケーションがイントラネット有線接続の代わりに3Gモデムを介して特定のネットワークインターフェイスを使用できるようにすることです。マイコンピュータには3つのネットワークインターフェイスがあります。

enp0s25:
インターネット接続なしでInet 10.18.0.101イントラネットルーターに有線接続

wlp3s0:
ワイヤレス、リモート管理に使用され、本番環境inet 10.11.1.116では利用できません

enx8cae4cff1c86:
有線エミュレートされた4G USBモバイルモデムがついにinet 10.11.1.142にリリースされます。

wlp3s0 と enx8cae4cff1c86 は同じルータに接続されています。次のコードを使用してという名前空間を作成しました。移動する

ip netns add mobilens
ip link set dev enx8cae4cff1c86 netns mobilens
ip netns exec mobilens ifconfig enx8cae4cff1c86 10.1.1.10/24 up
ip netns exec mobilens ifconfig lo 127.0.0.1/8 up
ip netns exec mobilens route add default gw 10.1.1.1
ip netns exec mobilens dhcpcd enx8cae4cff1c86

また、次のエントリを使用して/etc/netns/mobilens/resolv.confファイルを作成しました。

nameserver 10.11.1.1
nameserver 8.8.8.8
search google.com

名前空間でifconfigを実行する

ip netns exec mobilens ifconfig

Return
inet 10.1.1.10 netmask 255.255.255.0
名前空間で使用された DNS サーバーに次のように問い合わせると

ip netns exec mobilens nmcli dev show | grep DNS

それは戻ってくる

IP4.DNS[1]: 10.11.1.1

この名前空間を使用してgoogle.comにpingしようとしましたが、解決されましたが失敗しました。

ip netns exec mobilens ping www.google.com

PING www.google.com (172.217.7.4) 56(84) バイトのデータ。
10.1.1.10(10.1.1.10)でターゲットホストに接続できません。 icmp_seq=1 10.1.1.10 (10.1.1.10) でターゲットホストに接続できません。
icmp_seq=3 ターゲットホストに接続できません。

この名前空間を介してインターネットにアクセスするにはどうすればよいですか?

編集1:名前空間でxtermを使用すると、テストが簡単になります。
私も使い始めました

dhclient -d enx8cae4cff1c86

名前空間のDHSCPサーバーの代わりに。
しかし、問題は残っています。私はこれがある程度ルーティングのためだと思います。以下は、ネームスペース外部インターフェイスのRouteコマンドの結果です。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         router.asus.com 0.0.0.0         UG    303    0        0 wlp3s0
10.11.1.0       0.0.0.0         255.255.255.0   U     303    0        0 wlp3s0
10.18.0.0       0.0.0.0         255.255.255.0   U     0      0        0 enp0s25
10.18.0.0       0.0.0.0         255.255.255.0   U     100    0        0 enp0s25

これは名前空間からのものです。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.1.1.1       0.0.0.0         UG    0      0        0 enx8cae4cff1c86
10.11.1.0       0.0.0.0         255.255.255.0   U     0      0        0 enx8cae4cff1c86
10.1.1.0       0.0.0.0         255.255.255.0   U     0      0        0 enx8cae4cff1c86

名前空間ルーティングに対する可能な修正に関する提案はありますか?

ベストアンサー1

[解決済み]
回避策は、デフォルトゲートウェイを変更することです。名前空間設定ファイルに次の行を追加しました。

ip netns exec mobilens ip route change default via 10.11.1.1 dev enx8cae4cff1c86

このステップだけでwww.google.comをpingできます。
ただし、管理 Wi-Fi 接続を無効にすると、ping で名前解決に関連するエラーが発生します。私は \etc\netns\mobilens\resolv.conf に以下を含むファイルを生成することでこの問題を解決しました

nameserver 10.11.1.1
nameserver 8.8.8.8
search google.com

これで、特定のドメインからインターネットにアクセスできるようになります。

おすすめ記事