1
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?

AI声づくり技術研究会Advent Calendar 2024

Day 9

ラズパイを使ってルーターをとりあえず作る話

Last updated at Posted at 2024-12-16

みなさんルーターは未知な技術で作られていると思っている方いると思います。なのでルーターの仕組み?を開設しつつiptablesで作ろうと思います。

環境

  • Ubuntu 24.04

必要なもの

今回私はラズパイで作ろうと思っているので、以下の機材を用意してください。

  • ラズパイ
  • USB - LAN(要するにUSBからLANに変換するもの大体二千円弱で売っています)
  • 気力
  • スイッチングハブ

依存関係をインストール

sudo apt install iptables-persistent

netplanの設定

networks:
  eth0: # グローバルなネットワークに接続している方のNIC
    dhcp4: true # DHCPで今回は自動的に割り当ててもらうようにしたが、固定にしてもよい
  eth1: # ローカル側(スイッチングハブにつなげている方)
    dhcp4: false
    addresses:
    - 172.16.70.254/24

これの後反映しましょう

sudo netplan apply

Iptablesの設定(マスカレード)

sudo iptables -t nat -A POSTROUTING -s 172.16.70.0/24 -o eth0 -j MASQUERADE

eth0の部分ですが、グローバルなネットワークに接続しているNICを指定してください。

iptablesの永続化

再起動が起きた際に今の編集データが消えるので保存しましょう

sudo iptables-save | sudo tee /etc/iptables/rules.v4

カーネルパラメータで転送を有効にする

デフォルトではipv4のフォワーディングが無効になっているので有効にしてあげてください。

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

このコマンドを実行するだけで反映できます。

ルーターの完成と早速利用する!

スイッチングハブに手持ちの端末のLANを接続させてください。
次に以下のように設定してください。
IPアドレス: 172.16.70.1/24
サブネットマスク(任意): 255.255.255.0
デフォルトゲートウェイ: 172.16.70.254

もしも、、、

github.comなどにアクセスができなかった場合、MTU値が最適ではない可能性があります。なのでTCP MSSクランプという技術を用いて解決させてください。

sudo iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

最後に

結構簡易的なルーターだと思います。これを発展させる形でDHCPサーバを建てたり、ファイアーウォールを有効にしたりポートフォワードを有効することで本物のルーターに近くなります。

ではまたさようならー

1
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
1
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?