0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux Networking】Linux Networkingの概要整理

Last updated at Posted at 2025-11-30

はじめに

本記事は、Coursera の Network Principles in Practice: Linux Networking モジュール「Introduction to Linux Networking」で学んだ内容を整理した学習記録です。

Linux Networking の前提知識

LinuxはPCだけに使うOSではない。
Linuxには膨大な機能群があり、用途によって使う部分が異なる。

利用用途 Linux内の機能例
PCのOS GUI / ファイル管理 / 標準アプリ
ネットワークOS iproute2 / netfilter / bridge / VLAN / tunnel

📌 Linuxのネットワーク機能Linux Data Plane
→ Forwarding / NAT / VLAN / Bridge / Load Balancing などが含まれる

Linux Networking Utilities

Linux kernel にあるネットワーク機能(Linux Data Plane)を操作するのがNetworking Utilities

パッケージ 役割
iproute2 ネットワーク設定 & 制御
net-tools ifconfig / arp / route など
iptables NAT / Filtering
tc トラフィック制御
ipvsadm L4ロードバランシング

Netlinkとは?

  • ユーザ空間 ⇔ kernel の プロセス間通信のプロトコル
  • Networking Utilitiesは Netlinkでカーネルに命令している
[User Space] ip / tc / iptables ...
      ↓ Netlink
[Kernel]   Linux Data Plane(処理実行)

ip linkとは

Linuxのネットワークデバイスを操作するコマンド
https://manpages.ubuntu.com/manpages/xenial/man8/ip-link.8.html

よく使うサブコマンド

コマンド 目的
show デバイス一覧の表示
set 状態変更(up/down, MAC変更)
add 仮想デバイスの作成(bridge, vlan…)
delete デバイスの削除

使用例

ip link show
ip link set dev eth0 up
ip link add name mybridge type bridge
ip link delete dev eth0.2

Troubleshooting Tools

ツール 目的
ping 疎通確認 & RTT測定
tshark パケットキャプチャ(CLI版Wireshark)
scapy Pythonでパケット生成・操作

tshark の例

# インターフェース指定
tshark -i eth1

# ARPだけ見る
tshark -i eth1 -f "arp"

📌 -f は「キャプチャフィルタ(事前)」
📌 -Y は「表示フィルタ(後処理)」

Bridge(L2スイッチ)をLinuxで作る

やること

Host1 → Switch → Host2 に L2通信(MACベース) を流す

前提

Bridgeはスイッチの役割をする仮想デバイスですが、接続するポートが無いと動作しません。
ここでは下記のようにコンテナが作成され、各エンドポイントがlinkされている前提で進めています。

Host1 (eth1) ──┐
       (eth1)
    [ Switch コンテナ ]
             (eth2)
Host2 (eth2) ──┘

実行コマンド

# Linuxカーネル上にBridgeデバイスを作成
# switch用のコンテナで実行
ip link add name mybridge type bridge # Bridgeの作成
ip link set mybridge up # Bridgeの起動

ip link set eth1 master mybridge # eth1をBridgeに接続
ip link set eth2 master mybridge # eth2をBridgeに接続

→ Linux 上で 仮想スイッチ ができた状態
→ bridge が L2スイッチとしてFlood/Broadcastを行うためhost1 から送信されたパケットがhost2に届く

VLAN

共有ネットワーク(L2) を論理的に分割する技術

ip link add link eth0 name eth0.2 type vlan id 2
ip link set eth0.2 up

link eth0 は親、eth0.2 は VLAN専用の仮想インターフェースとして作成される
📌 eth0.2 に流れたパケットには VLAN ID 2 のタグが付与される

Geneve / VXLAN(Tunnel技術)

L3 の上に L2 の通信を乗せる(=トンネリング)
→物理ネットワークの制約を超えて、L3上に仮想L2ネットワークを作れる

ip link add name gen0 type geneve id 55 remote 1.2.3.4

カプセル化のイメージ

┌──────────────────────────────┐
│ Outer IP Header   ← L3 (WAN通過用)  
│ Geneve/VXLAN Header
│ Inner Ethernet Frame  ← 本当はL2! (MAC, VLAN, ARPなど)
└──────────────────────────────┘

📌 “L2パケットをL3で運ぶ” → Overlay Network
📌 L2 over L3 と呼ばれる


参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?