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?

【2024年08月版】Linux 1台でルーティング体験メモ【初学者向け、教育資料、namespace】

Last updated at Posted at 2024-08-31

はじめに

Linux の namespace機能を使ってルーティングを体験するメモ

初学者向け

Linux 1台でできるので、お手軽にルーティングの基礎を学べます

環境準備

  • Ubuntu22.04などのLinuxを1台準備します
  • traceroute を利用します。コマンドがインストールされていないなら、インストールしてくだい
sudo apt install inetutils-traceroute

ルータ1つのパターン

  • 2つのPCを別々のセグメント(10.11.12.0/24, 10.21.22.0/24)に分けます
  • 2つのセグメント間にルータを入れます
  • セグメントのデフォルトゲートウェイをルータにします
  • 2つのPC間でルーターを経由してPingのやり取りができることを確認します
sudo ip --all netns delete

sudo ip netns add testns01
sudo ip netns add testns02
sudo ip netns add testgw01
sudo ip netns list
sudo ip link add testns01-veth0 type veth peer name testgw01-veth0
sudo ip link add testns02-veth0 type veth peer name testgw01-veth1
sudo ip link
sudo ip link set testns01-veth0 netns testns01
sudo ip link set testns02-veth0 netns testns02
sudo ip link set testgw01-veth0 netns testgw01
sudo ip link set testgw01-veth1 netns testgw01
sudo ip netns exec testns01 ip link
sudo ip netns exec testns02 ip link
sudo ip netns exec testgw01 ip link
sudo ip netns exec testns01 ip a add 10.11.12.1/24 dev testns01-veth0
sudo ip netns exec testns02 ip a add 10.21.22.1/24 dev testns02-veth0
sudo ip netns exec testgw01 ip a add 10.11.12.254/24 dev testgw01-veth0
sudo ip netns exec testgw01 ip a add 10.21.22.254/24 dev testgw01-veth1
sudo ip netns exec testns01 ip link set testns01-veth0 up
sudo ip netns exec testns02 ip link set testns02-veth0 up
sudo ip netns exec testgw01 ip link set testgw01-veth0 up
sudo ip netns exec testgw01 ip link set testgw01-veth1 up
sudo ip netns exec testns01 ip link set lo up
sudo ip netns exec testns02 ip link set lo up
sudo ip netns exec testgw01 ip link set lo up
sudo ip netns exec testns01 ping 10.11.12.254
sudo ip netns exec testns02 ping 10.21.22.254
sudo ip netns exec testgw01 ping 10.11.12.1
sudo ip netns exec testgw01 ping 10.21.22.1
sudo ip netns exec testns01 ip route add default via 10.11.12.254
sudo ip netns exec testns02 ip route add default via 10.21.22.254
sudo ip netns exec testns01 ip route show
sudo ip netns exec testns02 ip route show
sudo ip netns exec testgw01 sysctl net.ipv4.ip_forward=1
sudo ip netns exec testns01 ping 10.21.22.1
sudo ip netns exec testns02 ping 10.11.12.1
sudo ip netns exec testns01 traceroute 10.21.22.1
sudo ip netns exec testns02 traceroute 10.11.12.1

ルータ2つのパターン

  • 2つのPCを別々のセグメント(10.11.12.0/24, 10.21.22.0/24)に分けます
  • ルータ間を別のセグメント(10.31.32.0/24)で接続します
  • 2つのセグメント間に2つのルータを入れます
  • セグメントのデフォルトゲートウェイをルータにします
  • 2つのPC間でルーターを経由してPingのやり取りができることを確認します
sudo ip --all netns delete
sudo ip netns add testns01
sudo ip netns add testns02
sudo ip netns add testgw01
sudo ip netns add testgw02
sudo ip netns list
sudo ip link add testns01-veth0 type veth peer name testgw01-veth0
sudo ip link add testns02-veth0 type veth peer name testgw02-veth0
sudo ip link add testgw01-veth1 type veth peer name testgw02-veth1
sudo ip link
sudo ip link set testns01-veth0 netns testns01
sudo ip link set testns02-veth0 netns testns02
sudo ip link set testgw01-veth0 netns testgw01
sudo ip link set testgw01-veth1 netns testgw01
sudo ip link set testgw02-veth0 netns testgw02
sudo ip link set testgw02-veth1 netns testgw02
sudo ip netns exec testns01 ip link
sudo ip netns exec testns02 ip link
sudo ip netns exec testgw01 ip link
sudo ip netns exec testgw02 ip link
sudo ip netns exec testns01 ip a add 10.11.12.1/24 dev testns01-veth0
sudo ip netns exec testns02 ip a add 10.21.22.1/24 dev testns02-veth0
sudo ip netns exec testgw01 ip a add 10.11.12.254/24 dev testgw01-veth0
sudo ip netns exec testgw01 ip a add 10.31.32.10/24 dev testgw01-veth1
sudo ip netns exec testgw02 ip a add 10.21.22.254/24 dev testgw02-veth0
sudo ip netns exec testgw02 ip a add 10.31.32.11/24 dev testgw02-veth1
sudo ip netns exec testns01 ip link set testns01-veth0 up
sudo ip netns exec testns02 ip link set testns02-veth0 up
sudo ip netns exec testgw01 ip link set testgw01-veth0 up
sudo ip netns exec testgw01 ip link set testgw01-veth1 up
sudo ip netns exec testgw02 ip link set testgw02-veth0 up
sudo ip netns exec testgw02 ip link set testgw02-veth1 up
sudo ip netns exec testns01 ip link set lo up
sudo ip netns exec testns02 ip link set lo up
sudo ip netns exec testgw01 ip link set lo up
sudo ip netns exec testgw02 ip link set lo up
sudo ip netns exec testns01 ping 10.11.12.254
sudo ip netns exec testns02 ping 10.21.22.254
sudo ip netns exec testgw01 ping 10.11.12.1
sudo ip netns exec testgw02 ping 10.21.22.1
sudo ip netns exec testgw01 ping 10.31.32.11
sudo ip netns exec testgw02 ping 10.31.32.10
sudo ip netns exec testns01 ip route add default via 10.11.12.254
sudo ip netns exec testns02 ip route add default via 10.21.22.254
sudo ip netns exec testgw01 ip route add 10.21.22.0/24 via 10.31.32.11
sudo ip netns exec testgw02 ip route add 10.11.12.0/24 via 10.31.32.10
sudo ip netns exec testns01 ip route show
sudo ip netns exec testns02 ip route show
sudo ip netns exec testgw01 ip route show
sudo ip netns exec testgw02 ip route show
sudo ip netns exec testgw01 sysctl net.ipv4.ip_forward=1
sudo ip netns exec testgw02 sysctl net.ipv4.ip_forward=1
sudo ip netns exec testns01 ping 10.21.22.1
sudo ip netns exec testns02 ping 10.11.12.1
sudo ip netns exec testns01 traceroute 10.21.22.1
sudo ip netns exec testns02 traceroute 10.11.12.1

さいごに

かんたんでしたね

関連リンク

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?