Raspberry Piをルーター&DHCPサーバーにしようとしてできなかった話
自分用のログなので悪しからず.
事の発端
今まで使っていたBuffalo製のルーターが壊れたので新しいものを買うことになったのですが,違う会社のルーターも使ってみるかということでNEC製のルーターを買いました.
これが大外れでPPTPサーバーの機能はないしログ出力もない.というわけでこれはブリッジ専用機にしてRaspberry Piをルーター&DHCPサーバーにすることにしました.こうすればWebサーバーにするときも楽そうだしPPTPサーバーも簡単に追加できそうですからね.
とりあえず以下のような構成にしたい.
(the Internet) | | (Raspberry Pi) | | (ゴミルーター)←ブリッジモード | |←無線 (PC, iPad, etc..)
…というわけでRaspberry Piのデータを全部消してあれこれやったのですがうまくいってません.以下そのログ.
初期設定
Raspbianの公式サイトにOSのイメージファイルがそのまま置いてあるのでこれをSDカードに展開します. SSHを使ってusername:pi password:raspberry でログインできるはず. SoftPerfect Wi-Fi Guardとかを使えばRaspberry PiのIPはわかる.
rootのパスを変更し,さらにユーザーを追加.visudo で追加した一般ユーザーがsudo出来るようにする.その後piは削除.SSHではrootにはアクセスできないので注意.
$ sudo passwd root $ sudo adduser [username] $ visudo (new userに切り替えて) $ sudo userdel -r pi
アップデートと必要なソフトだけインストールする.DHCPサーバーはdnsmasqを使う予定.
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt install vim dnsmasq dnsutils netfilter-persistent
あれこれの設定
IPは次のようにしたい.(よくわかってない)
Raspberry Piのthe Internet側のIPは192.168.122.1,LAN側のIPは192.168.122.2
DHCPの割り当て範囲は192.168.122.10-30
とりあえずRaspberry PiのIP固定をする.
/etc/network/interface
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.122.1 network 192.168.122.0 netmask 255.255.255.0 broadcast 192.168.122.255 gateway 192.168.0.1 auto eth1 iface eth1 inet static address 192.168.122.2 netmask 255.255.255.0 gateway 0.0.0.0
eth0がthe Internet側,eth1がLAN側(ゆくゆくはブリッジモードのルーターにつなぐ側) gatewayがよくわかってないのでここがなんか問題な気がする.要見直し.
次にiptablesの設定.
$ sudo iptables -A FORWARD -i eth1 -s 192.168.122.0/24 -m conntrack --ctstate NEW -j ACCEPT $ sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT $ sudo iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -j MASQUERADE $ sudo iptables-save $ sudo /etc/init.d/netfilter-persistent save $ sudo /etc/init.d/netfilter-persistent restart
dnsmasqの設定.とりあえずデフォルトの設定ファイルが長いので別のファイルも設定ファイルにするように設定.
/etc/dnsmasq.conf
conf-file=/etc/dnsmasq.more.conf
/etc/dnsmasq.more.conf
interface=eth1 dhcp-range=192.168.122.10,192.168.122.30,12h dhcp-option=option:dns-server,192.168.122.2,8.8.8.8 dhcp-option=option:router,192.168.0.1 dhcp-leasefile=/var/lib/misc/dnsmasq.leases log-dhcp
これ大丈夫なんですかね.logは/var/log/syslogに出るはず. 最後に起動時にdnsmasqをロードするように設定
$ sudo systemctl dnsmasq enable
参考:
ここまでやって再起動. eth0とthe Internet,eth1を適当なPCにつないだけどダメっぽかった. ログは読んだけどよくわからなかった.
とりあえずここまで.