Raspbian(Debian Strech)でDHCPのIPアドレス、DNSサーバーを指定する方法

DHCPサーバーからIPアドレスを取得して、ルーターやDNSサーバーを設定する方法をまとめました。

動作環境

実機:Raspberry Pi 3 B+
OS: Raspbian GNU/Linux 9 (stretch)”
microSD 16GB

前提条件

ルーターのDHCPでRaspberryPi3 B+のwlan0のMACアドレスに任意のIPアドレスを指定済み

やりたいこと

  • クライントPC(Windows10 64bit Professional)からWifi(wlan0)にSSHで接続する。
  • イントラネットのDNSサーバを参照しドメインの正引き、逆引きが出来るようにする。
  • IPv4のみ有効(IPv6は無効にする)

DHCPのIP取得とDNSサーバーの指定とIPv4固定(IPv6無効)にする方法

/etc/dhcpcd.confファイルに必要事項を記入する

追記例)
#vi /etc/dhcpcd.conf

#add wlan0 configuration
interface wlan0
static routers=192.168.11.1
static domain_name_servers=192.168.11.22 192.168.11.1 8.8.8.8
ip4only

※)#man dhcpcd.confコマンドにより必要なパラメータが確認できます。

注意)
/etc/resolv.confファイルを直接書き換えて場合、OS起動時に上書きされてしまいます。

dhcpcd.service(DHCPクライアントデーモン サービス)が起動して、設定ファイル(/etc/dhcpcd.confファイル)を参照して/etc/resolv.confファイルを書き換えてしまうからです。

OSの再起動後に、/etc/resolv.confファイルを確認すると設定が有効になっていることが確認できます。
# cat /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.11.22
nameserver 192.168.11.1
nameserver 8.8.8.8

ipconfigコマンドやipコマンドで設定が反映されていることを確認をする
# ifconfig
eth0: flags=4099<up,broadcast,multicast> mtu 1500
ether b8:27:eb:b0:bf:be txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</up,broadcast,multicast>

lo: flags=73<up,loopback,running> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</up,loopback,running>

wlan0: flags=4163<up,broadcast,running,multicast> mtu 1500
inet 192.168.11.24 netmask 255.255.255.0 broadcast 192.168.11.255
inet6 2405:6583:24c0:700:ba27:ebff:fee5:eaeb prefixlen 64 scopeid 0x0
inet6 fe80::ba27:ebff:fee5:eaeb prefixlen 64 scopeid 0x20 ether b8:27:eb:e5:ea:eb txqueuelen 1000 (Ethernet)
RX packets 788 bytes 75864 (74.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 674 bytes 194236 (189.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</up,broadcast,running,multicast>

ただし、inet6 の部分が表示されていることがわかります。
システム自体はipv6が有効になっているので、このように表示されます。

システムのipv6を無効化する方法

1. 設定ファイルのバックアップ
#cp /etc/sysctl.conf /etc/sysctl.conf.orig

2. sysctl.confファイルの編集
#vi /etc/sysctl.conf
ファイル下部に書きを追記
net.ipv6.conf.all.disable_ipv6 = 1

3. sysctl.confファイルを反映する
#sysctl -p
または
#reboot

ipv6が無効化されていることを確認する
#ipconfig
:
省略
:
wlan0: flags=4163<up,broadcast,running,multicast> mtu 1500
inet 192.168.11.24 netmask 255.255.255.0 broadcast 192.168.11.255
ether b8:27:eb:e5:ea:eb txqueuelen 1000 (Ethernet)
RX packets 2007 bytes 209436 (204.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1385 bytes 340677 (332.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0</up,broadcast,running,multicast>

コメント

  1. 通りすがり より:

    通りすがりのものですが、

    static domain_name_service

    ではなく、

    static domain_name_servers

    ではないかと思われます

タイトルとURLをコピーしました