LoginSignup
0
0

More than 1 year has passed since last update.

Raspberry piで作るSOHOルータ

Last updated at Posted at 2021-06-20

小さなネットを組むことになったのですが、定番商品のRTX1210がなかなか手に入らない。そこで、入手が容易なラズパイをルータに仕立ててみました。

構成

本体はラズパイ4, 4GB版を使いました。インターフェースはUSB イーサネットドングルを追加して、無線LAN(wlan0),Ethernet x2(eth0,eth1)としています。

  • wlan0は、外部ネットワーク接続用としてNAPTを構成する。ネットワークはDHCPクライアント設定。
  • eth1は、ルータセグメント(192.168.YY.0/24)接続用とする。ネットワークはstatic設定(192.168.YY.XX)。
  • eth0は、スタブセグメント(192.168.XX.0/24)として端末接続用とし、dhcpサーバの管理対象とする。ネットワークはstatic設定(192.168.XX.1)。
    [Raspberry Pi  wlan0(dhcp)]-----(外部ネットワーク)
    [                  eth0(1)]-----(192.168.XX.0/24)
    [                 eth1(XX)]-----(192.168.YY.0/24)--[(ZZ) Router]--(192.168.ZZ.0/24)
    

設定

インターフェースの設定

かつては/etc/networkに設定していたようですが、現在は/etc/dhcp.confに設定する。

/etc/dhcp.conf
interface eth0
    static ip_address=192.168.XX.1/24
    static routers=
    static domain_name_servers=
    static domain_search=
interface eth0
    static ip_address=192.168.YY.XX/24
    static routers=
    static domain_name_servers=
    static domain_search=

DHCPサーバの設定

インストール
sudo apt-get install isc-dhcp-server

配布情報の例、あとDNSのリゾルバ情報も追加する。

/etc/dhcp/dhcpd.conf
subnet 192.168.XX.0 netmask 255.255.255.0 {
    range 192.168.XX.100 192.168.XX.199;
    option routers 192.168.XX.1;
    ignore declines;
}

対象インターフェース

/etc/default/isc-dhcp-server
INTERFACES="eth0"

DHCPサーバの自動起動

#起動
systemctl start isc-dhcp-server
#チェックしてよければ
systemctl enable isc-dhcp-server

interfaceの固定アドレス設定が完了するまで起動を遅らせる。

/etc/init.d/isc-dhcp-server
#startの記述の直前に以下を挿入
sleep 10

ルーティング

IPv4のルーティング機能を有効化する

/etc/sysctl.conf
net.ipv4.ip_forward=1

静的経路を適宜設定する。

shell
# 192.168.ZZ.0/24あてのGWが192.168.YY.ZZの場合
route add -net 192.168.ZZ.0 netmask 255.255.255.0 gw 192.168.YY.ZZ

pingなど打って問題なければ、rc.localの末尾などに上記記述を追加

NATの設定

こちらの記事が参考になります。
https://edosha.hatenablog.jp/entry/2017/07/06/134439

dns サーバ設定

sudo apt install dnsmasq -y

/etc/dnsmasq
domain-needed
bogus-priv
no-resolv
server=8.8.8.8
server=8.8.4.4
interface=eth0

sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq

まとめ

ラズパイは情報を得やすいのが良いですね。
特に注意する点は、interfaceの設定が完了するまで、dhcpサーバや経路の設定を遅らせるところです。これを忘れると、テストではうまくいっても、再起動するとうまくいかないという症状がでることがあります。

参考記事

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