ネットワークエンジニアは、おそらくネットワークインフラストラクチャの検討と計画に多くの時間を費やしています。
特定のケーブルを物理的に使用するだけでなく、ルーティングテーブルを論理的に使用して、コンピューターをリンクする方法を計画します。 。
ネットワーク計画を立てるときは、紙の上で理論化したすべてのリンクを実装する必要があります。
場合によっては、Linuxコンピューターを使用している場合は、いくつかのルートを追加する必要があります。 社内の他のネットワークにリンクするため。
Linuxでのルートの追加 非常にシンプルで費用がかかりません: Network Managerを使用できます デーモン(最近のディストリビューションを実行している場合)または ifconfig one 。
このチュートリアルでは、Linuxマシンに新しいルートを簡単に追加する方法を学習します。 物理ネットワークにリンクするためです。
前提条件
Linuxマシンにルートを追加するには、管理者権限が必要です。
確認するために、「 sudo」を実行できます 」コマンドの後に「-v 」オプション(キャッシュされた資格情報を更新するため)。
$ sudo -v
sudo権限をお持ちでない場合は、UbuntuまたはCentOSでの管理者権限の取得に関する専用の記事をご覧ください。
ipを使用してLinuxにルートを追加
Linuxでルートを追加する最も簡単な方法は、「ip route add」コマンドを使用してから、到達するネットワークアドレスと、このルートに使用するゲートウェイを使用することです。
$ ip route add <network_ip>/<cidr> via <gateway_ip>
# Example
$ ip route add 10.0.3.0/24 via 10.0.3.1
デフォルトでは、ネットワークデバイスを指定しない場合、最初のネットワークカード 、ローカルループバックは除外され、選択されます 。
ただし、特定のデバイスが必要な場合は、コマンドの最後に追加できます。
$ ip route add <network_ip>/<cidr> via <gateway_ip> dev <network_card_name>
例として、2つのLANネットワークが相互に通信できるようにしたいとします。
ネットワークトポロジには、3つの異なるLinuxマシンがあります:
- 10.0.2.2/24を搭載した1台のUbuntuコンピューター IPアドレス;
- 10.0.3.2/24を備えた別のUbuntuコンピューター IPアドレス;
- 2つのネットワークの単純なルーターとして機能する1台のRHEL8コンピューター。

最初のコンピューターは他のコンピューターにpingを実行できません。これらは同じサブネット内にありません。最初のコンピューターネットワークの場合は10.0.2.0、2番目のコンピューターネットワークの場合は10.0.3.0です。

2つのホストは同じサブネットの一部ではないため、pingコマンドはデフォルトゲートウェイに移動します。
マシンですでに定義されているルートを表示するには、「ipルート」を使用します 引数なしの」コマンド。 「ipr」コマンドを省略形として使用することもできます。
$ ip r

これは、Linuxコンピューターのルーティングテーブルです。すべてのコンピューターにルーティングテーブルがあります。ルーターはたまたまそれよりもはるかに多くのルートを管理していますが、基本的に同じルーティング構文を使用しています。
では、どのようにそれを読むのですか?
この出力を理解するには、上から下に読む必要があります:
- デフォルト 、ネットワークコールは、ローカルのデフォルトゲートウェイである 10.0.2.1に転送されます。
- なし あなたの呼び出しは10.0.2.0/24ネットワークのためです。この場合、デフォルトの物理リンク(物理的にはCATネットワークケーブル)を介してローカルネットワークに送信されるだけです。
- そうでない場合 あなたの呼び出しは169.254.0.0/16ネットワークのためです。この場合、デフォルトの物理リンクを使用してローカルネットワークにも送信されます。
注 : 知ってますか? 169.254.0.0/16アドレスはAPIPA(自動IPアドレスアドレス指定用)と呼ばれます 。これは、ネットワーク上のDHCPサーバーに到達できなかったシステムによって使用されるデフォルトのIPです。
私たちの場合、 10.0.3.2/24を呼び出すために IPアドレス、通話は 10.0.2.1に転送されます ルーター。
しかし、ルーターは10.0.3.0/24ネットワーク宛ての通話を転送できますか?
ルーターでの単純な「ipr」コマンドでヒントを得ることができます。

ご覧のとおり、ルーターは10.0.2.0/24ネットワークにのみリンクされていますが、これは明らかに問題です。
Linuxルーターにルートを追加するには、「 ip route add」を使用します。 」コマンド。
$ sudo ip route add 10.0.3.0/24 via 10.0.3.1

これで、最初のコンピューターで2番目のコンピューターにpingを実行すると、そこに到達できるようになります。

すばらしい、あるLinuxコンピューターから別のコンピューターへのルートを正常に追加しました!
Ubuntuに永続的なルート構成を追加する
Ubuntuには、3つの方法があります Linuxマシンに永続的なルートを追加する方法:
- ネットワークマネージャーに追加できます 構成ファイル;
- Netplan YAMLを編集できます 構成ファイル;
- ルートを「/etc / network / interfaces」に追加できます 古いUbuntuディストリビューションを使用している場合は、」ファイル。
NetworkManagerの使用
ネットワークマネージャーへの永続的なルートを追加するには、「/ etc / NetworkManager/system-connections」にある接続ファイルに移動する必要があります。

「有線接続」を編集します 」ファイルを追加し、「 route1 ネットワーク構成のIPv4部分の「」プロパティ。

ルートは次のように定義する必要があります:ネットワークIPアドレス、CIDR、デフォルトゲートウェイ、最後にネクストホップ。
変更を適用するには、ネットワーク接続を再起動し、「route-n」コマンドを実行してルートを確認します。
$ sudo nmcli connection reload

すばらしい、Linuxサーバーへの永続的なルートを追加しました!
ネットプランの使用
NetplanはUbuntu専用ですが、単純なYAMLファイルを使用してネットワークを構成する場合に非常に便利です。
Netplanを使用して永続的なルートを追加するには、「/ etc/netplan」構成ファイルに次のセクションを追加します。
$ sudo vi /etc/netplan/<configuration_file>.yaml

変更を適用するには、「apply」引数を指定して「netplan」コマンドを実行する必要があります。
$ sudo netplan apply

おめでとうございます。Netplanを使用してネットワークを構成しました 。 Netplanとその目的について詳しく知りたい場合は、専用のドキュメントをご覧ください。
/ etc / network/interfacesの使用
ifupとifdownを使用してディストリビューションに永続的なルートを追加するには、「/ etc / network / interfaces」ファイルを編集して、次のセクションを追加します。
$ sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.0.2.2
netmask 255.255.255.0
up route add -net 10.0.3.0 netmask 255.255.0.0 gw 10.0.2.1
RHELに永続的なルート構成を追加する
前のセクションでルートを追加することにより、ディストリビューションがルートを永続化するためのファイルを作成した可能性があります。
ただし、そうでない場合は、サーバーを再起動するときにルートを維持するために追加する必要があります。
RHELおよびCentOSディストリビューションでは、「 route-
$ sudo vi /etc/sysconfig/network-scripts/route-enp0s3

nmcliを使用してLinuxにルートを追加する
Linuxでルートを追加する別の方法は、「nmcli」ユーティリティを使用し、「modify」コマンドを使用してIPV4ルートを追加することです。
$ sudo nmcli connection modify <interface_name> +ipv4.routes "<network_ip> <gateway_ip>"
注 :ネットワークマネージャーに関する完全な記事が必要ですか? NetworkManagerを使用したネットワークの設定に関する完全な記事があります。
たとえば、前のセクションのインフラストラクチャを使用して、ルートを追加するには、次のコマンドを実行します。
$ sudo nmcli connection modify enp0s3 +ipv4.routes "10.0.3.0/24 10.0.3.1"
変更はライブで行われないため、「nmcliリロード」を使用してディスクからネットワーク接続をリロードする必要があります 」コマンド。
$ sudo nmcli connection reload

すごい!これで、最初のネットワークと2番目のネットワークの間にルートができました。
結果として、最初のコンピューターから2番目のコンピューターにpingを実行できるようになります。

ネットワークグラフィカルインターフェースを使用したルートの追加
ターミナルでコマンドを実行することに興味がない場合は、幸いなことに、グラフィカルインターフェイスを使用してLinuxにルートを追加する方法があります。
Ubuntu、Debian、RHELのいずれを使用していても、GNOMEで同じネットワークパネルを共有しているため、違いはありません。
画面の右上隅にある小さなネットワークアイコンを探してクリックします。

「有線接続」をクリックします 」と入力し、「有線設定」を探します その下の」パネル。

パネルが開いたら、「有線」を探します 」セクションをクリックし、そのすぐ横にある小さな歯車をクリックします。

「有線 」パネルには、さまざまなパラメータが表示されます。現在のIPv4アドレス、現在のMACアドレス、オプションのIPv6アドレス、およびリンク速度。

「IPv4 」タブには、現在設定されているIPが表示されます(ほとんどの場合、コンピューターがLinuxルーターとして機能するために2つ)。
そのすぐ下に「ルート」が表示されます " セクション。そこで、前のセクションの入力を指定できます。

完了したら、[適用]をクリックします ウィンドウの右上隅にある「」青いボタン。
変更を適用するには、ネットワークを再起動する必要があります。 「オン/オフ」トグルをクリックすると、これを実現できます。 ネットワークパラメータの「有線」ウィンドウで。

終わり!
グラフィカルインターフェイスを使用してLinuxにルートを正常に追加しました。これで、コンピューターが相互に通信できるようになります。
Linuxでのインターネット問題のトラブルシューティング
場合によっては、ローカルネットワークの外部のWebサイト(たとえば8.8.8.8)にアクセスできるようにするために、Linuxにルートを追加することをお勧めします。
例として、192.168.178.1/24にある「インターネット」にリンクされたローカルルーターがあるとします。
現在のルートを調べることは、インターネットWebサイトにアクセスできない理由を推測するための簡単な方法です。
思考プロセスは非常に簡単です:
- サブネットの一部に到達しようとしているIPですか?
- はいの場合、ルートなしで到達できるはずです。すべてがARPプロトコルとイーサネットによって処理されます。
- そうでない場合は、コンピューターからインターネットにリクエストを転送できるルーターへのルートが必要です。
ただし、ルートは2車線の高速道路であることに注意してください。外部IPに到達できる必要がありますが、外部IPはあなたに到達できる必要があります。
結果として、ルートはローカルネットワークアーキテクチャで正しく定義する必要があります。ダイアグラムは千の言葉よりも役立つので、ここにそれを理解する方法があります。

インターネットの問題のトラブルシューティングを行うときは常に、ルートを検討する必要があります。自分のコンピューターから到達しようとしているコンピューターへのルートはありますか?
私とターゲットの間のコンピューターまたはルーターは、私の通話を処理するように構成されていますか?
ネットワークの一部に到達することは素晴らしいことですが、ネットワークのこの部分は私に返事を返すことができますか?
上記の図では、ルーターがGoogleから回答を受け取る場合がありますが、ルーターはそのリクエストをどう処理するかを知っている必要があります。ローカルホームネットワークでは、ほとんどのリクエストがNATプロトコルを使用して転送されるため、心配する必要はありません。 (ネットワークアドレス変換プロトコルの略)。
結論
このチュートリアルでは、さまざまなLinuxディストリビューションに新しいルートを簡単に追加する方法を学びました。
現在、他のトピックに関しては、いくつかのツールがLinux上で共存しているため、ネットワーク構成が少し複雑になることがあります。
ただし、発生する可能性のあるほとんどのオプションをリストしました。オプションを忘れた場合は、コメントを残してください。
Linuxシステム管理に興味がある場合 、ウェブサイトの専用セクションをご覧ください。