システム管理者の最も重要なドメインの1つはネットワークです。
ネットワークについて知っておくべきことをすべて理解することは大きなトピックですが、自分の謙虚なLinuxコンピューターのネットワークスタックから学ぶことはたくさんあります。
基本的なネットワークコマンドを学ぶことは、デバイスが接続するネットワークをどのように認識しているか、共有プリンターやファイル共有、またはすべての中で最大のネットワークであるインターネットを見つける方法を理解するのに役立ちます。
この記事では、オープンソースを使用したネットワーク管理の基本について説明します。
[読むこともお楽しみいただけます:5つのLinuxネットワークトラブルシューティングコマンド]
ネットワークとは何ですか?
コンピューティングでは、ネットワークは通信できる2台以上のコンピューターの集まりです。
ネットワークがデバイス間の通信を容易にするためには、ネットワーク上のマシンがお互いを見つけることができなければなりません。
これを可能にするシステムはTCPとIPです。
伝送制御プロトコル(TCP)
通信には、それらの間のメッセージを転送する手段が必要であり、コンピューターは、イーサネットケーブル、電波、またはマイクロ波を介して伝送されるデジタル信号を使用して通信します。
この仕様は、正式にはTCPプロトコルとして定義されています。
インターネットプロトコル(IP)
ネットワーク上のコンピュータは、10.0.0.1や192.168.0.8などのIPアドレスを使用して自分自身と相互を識別します。
これらは通常、laptop
などのホスト名にもマッピングされます。 およびdesktop
またはdarkstar
またはpenguin
または各マシンに付ける名前。
この仕様は、正式にはIPプロトコルとして定義されています。
最小限のネットワーキング
可能な最も単純なネットワークは、単一ノードネットワークです。
これは不正行為のように見えるかもしれませんが、実際には、コンピュータが自分自身に対処する方法を知る必要があるという意味で、有効なネットワークです。
各コンピューターは、自分自身をlocalhost
と見なします 内部専用IPアドレスが127.0.0.1のノード。
これはping
で確認できます コマンド:
$ ping -c 1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.031 ms
localhost
指定は/etc/hosts
で定義されています ファイル:
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
CUPSプリントサーバーやサーバー管理システムCockpitなどの重要なサービスは、TCP / IP接続を介してインターフェイスを提供するため、内部IPアドレスを持つことは重要です。それらが実行されているマシンからそれらにアクセスするには、localhost
を使用できます。 プラスポート番号(たとえば、localhost:631
または127.0.0.1:631
)Webブラウザで。
基本的なネットワークの作成
シングルノードネットワークは一部のタスクに役立ちますが、ネットワークは通常 複数のコンピューターを指します。
LinuxとTCP/IPスタックは、ネットワークをシンプルにするために多くの作業を行いますが、自動設定では組織に必要なセットアップを行うのに十分でない場合、ネットワーク構成の作成方法を理解するのはシステム管理者の責任です。
まず、簡単に始めて、2台のコンピューターネットワークを作成してみてください。
自分でネットワークを構築することに慣れるために自動設定を排除するには、クロスオーバーケーブルと呼ばれる特別に配線されたイーサネットケーブルを使用してみてください。 。
クロスケーブルは、あるコンピューターからの送信信号を別のコンピューターの適切な受容体に接続します。

コンピューター間にルーターがないため、すべてのネットワーク管理は各マシンで手動で行う必要があります。これは、ネットワークの基本を学ぶための優れた入門演習です。
クロスケーブルを使用して2台のコンピューターを接続すると、外部ネットワークコントローラーを排除してガイダンスを提供できるため、どちらのコンピューターもネットワークを作成したり、ネットワークに参加したりすることはありません。
この簡単なセットアップでは、あなたが究極のネットワーキング機関です。
ネットワークを作成するには、最初に各コンピューターにIPアドレスを割り当てる必要があります。
自己割り当てIPアドレス用に予約されているブロックは169.254.x.xです。
Linuxでネットワークインターフェースを表示する
ネットワークを作成するには、ネットワークインターフェースが必要です。
イーサネットポートは通常、eth
という用語で指定されます プラス0
で始まる数字 、ただし、一部のデバイスは異なる用語で報告されます。
ip
を使用すると、コンピューター上のインターフェースを見つけることができます。 コマンド:
$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
link/loopback 00:00:00:00:00:00 brd ...
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
link/ether dc:a6:32:be:a3:e1 brd ...
3: wlan0: <BROADCAST,MULTICAST> ...
link/ether dc:a6:32:be:a3:e2 brd ...
この場合、eth0
正しいインターフェース名であることが判明しました。
ただし、en0
が表示されます またはenp0s1
または同様の場合もあるため、使用する前に必ずデバイス名を確認することが重要です。
Linuxで静的IPアドレスを割り当てる
通常、IPアドレスは、専用のDHCPサーバーまたは組み込みのDHCPサーバーを実行しているルーターから動的に割り当てられます。
ネットワークを介してアドレスのオファーをブロードキャストするのはDHCPサーバーの仕事です。
コンピュータがネットワークに接続されると、アドレスを要求します。
DHCPサーバーはそれに1つを割り当て、メディアアクセス制御(MAC)アドレスで識別されるネットワーク上のどのデバイスにどのアドレスが割り当てられているかを登録します。
これが、コンピュータがネットワーク上でお互いを見つける方法を知っている方法です。
ただし、この単純なネットワークの場合、IPアドレスを配布したりデバイスを登録したりするDHCPサーバーがないため、自分でIPアドレスを作成する必要があります。
コンピューターにIPアドレスを割り当てるには、ip
を使用します コマンド:
$ sudo ip address add 169.254.0.1 dev eth0
また、もう一方のコンピューターでは、今回はIPアドレスを1ずつ増やします。
$ sudo ip address add 169.254.0.2 dev eth0
これで、各コンピューターには、転送手段(クロスケーブル)とネットワーク上での検索方法(一意のIPアドレス)があります。
問題は、どちらのコンピュータもネットワークのメンバーであることを認識していないことです。
Linuxでのネットワークルートの設定
通常、外部ルーターは、ポイントAからポイントBに到達するためにネットワークトラフィックがたどる必要のあるパスを定義します。
これはルーティングテーブルと呼ばれます 、そしてそれは本質的にあなたのネットワークのための「都市地図」です。
作成した単純なネットワークの場合、ルーティングテーブルはまだ存在しません。
これはroute
で確認できます いずれかまたは両方のコンピューターでのコマンド:
$ route
Kernel IP routing table
Destination | Gateway | Genmask | Flags|Metric|Ref | Use | Iface
$
または、ip
を使用することもできます コマンド:
$ ip route
$
いずれにせよ、現在ルートが定義されていないため、意味のある出力はありません。
ただし、ip
を使用してルートを追加できます コマンド:
$ sudo ip route \
add 169.254.0.0/24 \
dev eth0 \
proto static
このコマンドは、169.254.0.0で始まり、169.254.0.255で終わるアドレス範囲へのルートをeth0
に追加します。 インターフェイス。
ルーティングプロトコルをstatic
に設定します 動的ルーティングの意図的なオーバーライドとして、管理者であるユーザーがルートを作成したことを示します。
route
を使用してルーティングテーブルを確認します コマンド:
$ route
Kernel IP routing table
Destination | Gateway | Genmask | ... | Iface
link-local | 0.0.0.0 | 255.255.255.0 | ... | eth0
または、ip
を使用します 別のビューのコマンド:
$ ip route
169.254.0.0/24 dev eth0 proto static scope link
隣人にpingを送信
ネットワークには次のものがあります:
- 輸送手段
- アドレス指定の手段
- ネットワークルート
これらのコンポーネントを配置すると、各コンピューターはlocalhost
以外のホストに到達できます。 。
ping
でテストしてください 。
たとえば、アドレス169.254.0.1が割り当てられたコンピュータから:
$ ping -c1 169.254.0.2
64 bytes from 169.254.0.2: icmp_seq=1 ttl=64 time=0.233 ms
--- 169.254.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms
やり取りした隣人を表示することもできます:
$ ip neighbour
169.254.0.2 dev eth0 lladdr e8:6a:64:ac:ef:7c STALE
ネットワークスイッチ
驚くほど高速なファイル転送には最適ですが、2ノードの有線ネットワークには他に多くのニーズはありません。
ここで、ネットワークのようなハードウェアスイッチ 入ってくる。
スイッチを使用すると、複数のイーサネットケーブルを接続でき、コンピュータからのメッセージを配信して、IPアドレスで識別される目的の宛先に送信します。
最近の多くの汎用ネットワークでは、物理ケーブル用の物理スイッチは実用的または望ましくないため、代わりにWiFiアクセスポイントが使用されますが、同じ原則が適用されます。
ルーター
ローカルネットワークは実際には多くのデバイスを接続しており、ネットワーク対応のデバイスが増えるにつれてその数は増えています。
ネットワークをインターネット(相互接続されたネットワークのネットワーク)に接続すると、その数は桁違いに増加します。
ネットワークを手動で構成することは実用的ではありません。そのため、日常のタスクはネットワーク上の特定のノードに割り当てられ、各コンピューターはデーモンを実行して、ネットワーク上の権限のあるサーバーから受信したネットワーク設定を設定します。
各タスクは通常、集中力と回復力を確保するために、大規模なネットワーク内の個別の専用サーバーに割り当てられます。
これらのタスクには次のものが含まれます:
- ネットワークに参加しているデバイスにIPアドレスを割り当てて追跡するためのDHCPサーバー
- redhat.comなどの登録済みドメイン名を209.132.183.105などのIPアドレスに変換するDNSサーバー
- 不要な着信トラフィックや禁止された発信トラフィックからネットワークを保護するファイアウォール
- ネットワーク上のトラフィックを効率的に転送し、他のネットワーク(インターネットなど)へのゲートウェイとして機能し、ネットワークアドレス変換(NAT)を実行するルーター
VyOSのようなオープンソースプロジェクトのおかげで、コモディティハードウェアで構築された独自のオープンソースルーターを実行することもできます。
[無料のチートシート:サーバーとネットワークを管理するためのLinuxユーティリティとコマンドのリストを入手してください。 ]
まとめ
ラボに実装するネットワークスキームが多いほど、現実の世界で発生する可能性のあるすべての問題をよりよく理解できます。
問題は個々のコンピューターやデバイスに起因する場合があります。ハードウェアとインフラストラクチャである場合もあれば、最適でない設計である場合もあります。
仮想マシンまたは実際のハードウェア(あるいはその両方)を使用してさまざまなネットワークトポロジを設定する練習をし、業界のオープンソースツールについて理解してください。
ネットワーキングは大きなトピックですが、ネットワークはいたるところにあります。
今それを学ぶことに投資してください、そしてそれは遅かれ早かれ、何らかの方法で配当を支払うでしょう。