わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

Ubuntu 12.04 + isc-dhcp-server + dnsmasq

雷の影響で,HDDを取り替えてUbuntuを再インストールしたマシンには,LANのポートが2つあります.一つは対外接続(WAN側),もう一つはLANの構築(LAN側)として,ケーブルをつないで運用してきました.
DHCPサーバの設定をやり直し,ネットワークに関してはトラブル前とほぼ同じ環境ができています.今後,他のマシンでも効率良く作業できるよう,メモを残しておきます.

2つのIPアドレス設定

コマンドラインではなくGUIを使って,IPアドレスを設定します.
インストールを終え再起動して,ログインをします.画面右上のアイコンをマウスでクリックしていると,ネットワーク関連のメニューが見つかります.「接続を編集する...」を,クリックします.その後の設定は,WindowsIPアドレスを設定するのとほぼ同じです.
LAN側は,ゲートウェイアドレスを空欄にしておきます.

NAT(IPマスカレード)関連

LAN内外の通信の設定は,iptablesスクリプトファイルを使用します.
今回インストールし直したところ,LAN側がeth0,WAN側がeth1となっていたので,シェルスクリプトを編集し,eth0とeth1を交換しました(1箇所ずつ).残りは書き換えていません.

DHCPサーバ

sudo apt-get install isc-dhcp-serverを実行し,「ISC DHCP server」というのをインストールしました.

DNS

以下の手順どおりに実行しました.

1. /etc/NetworkManager/NetworkManager.conf の dns=dnsmasq を消す。
2. sudo apt-get install dnsmasq
3. /etc/dnsmasq.d/hoge
listen-address=127.0.0.1
cache-size=500
と書いた
4. sudo service network-manager restart
5. sudo service dnsmasq restart
6. /etc/resolv.conf の上部に「nameserver 127.0.0.1」があるか確認する。

dnsmasqのDNSキャッシュを有効にしたい(Ubuntu 12.04) - 憩いの場【Linux/Ubuntu】

…と言いたいのですが,実は先に「sudo apt-get install dnsmasq」をしてしまっていました.この場合,インストールしたdnsmasqでは,ポート番号53がふさがっているためサービスが起動できないというメッセージを出します.

LANからDNS

/etc/dhcp/dhcpd.confを編集します.はじめのほうの「option domain-name」と「option domain-name-servers」から始まる行は,先頭に「#」をつけておきます.
ネットワークの設定は,次のようにしました.192.68.77.1が,LANの中でのこのLinuxマシンのIPアドレスです.

subnet 192.168.77.0 netmask 255.255.255.0 {
   range 192.168.77.128 192.168.77.159;
   option domain-name-servers 192.168.77.1;
   option domain-name "(省略)";
   option routers 192.168.77.1;
   option subnet-mask 255.255.255.0;
   option broadcast-address 192.168.77.255;
   default-lease-time 21600;
   max-lease-time 43200;
}

これでLAN側にPCを接続して,対外アクセスが可能になった*1のですが,よく見ると,LAN側PCから外にアクセスするときには,名前解決ができていません*2
Linuxユーザのためのチップス: dnsmasqで簡易DNSサーバを読み,/etc/dnsmasq.confを編集…次のとおり設定しました.

interface=eth1
no-dhcp-interface=eth0
no-dhcp-interface=eth1

自分のLinuxマシンでは,eth1がLAN側,eth0がWAN側になるので,こうしています.
編集を終え,念のためsudo service dnsmasq restartで再起動.LAN側PCで,思うようにWebアクセスができるようになりました.

*1:Dropboxでファイルが入ってきたり,TeamViewerでマシンが見えるようになったりしました.

*2:ブラウザで,任意のWebページにアクセスができないのですが,そのURLのうちホスト名のところを,IPアドレスに変更すれば,アクセスできる状況を指します.なお,ホスト名からIPアドレスというのは,dnsmasqを入れたLinuxで「host ホスト名」を実行すれば得られます.