初めに
このガイドでは、FreeBSD, Red Hat, Linux, macOSの各オペレーティングシステムでネットワークカードにIPアドレスを設定する方法、スタティックルートの設定、hostsファイルの編集、およびpingとtracerouteコマンドの使用方法について説明します。
ネットワークカードにIPアドレスを設定する方法:スタティックとDHCP
FreeBSD
設定ファイル
/etc/rc.conf
IPv4アドレスの設定方法
ifconfig em0 inet 192.168.1.100 netmask 255.255.255.0
IPv6アドレスの設定方法
ifconfig em0 inet6 2001:db8::100 prefixlen 64
DHCPの設定方法
ifconfig em0 inet dhcp
設定ファイルの編集例
echo 'ifconfig_em0="inet 192.168.1.100 netmask 255.255.255.0"' >> /etc/rc.conf echo 'ifconfig_em0_ipv6="inet6 2001:db8::100 prefixlen 64"' >> /etc/rc.conf echo 'ifconfig_em0="DHCP"' >> /etc/rc.conf
Red Hat (RHEL, CentOS)
設定ファイル
/etc/sysconfig/network-scripts/ifcfg-<interface>
IPv4アドレスの設定方法
nmcli con mod <connection_name> ipv4.addresses 192.168.1.100/24 nmcli con up <connection_name>
IPv6アドレスの設定方法
nmcli con mod <connection_name> ipv6.addresses 2001:db8::100/64 nmcli con up <connection_name>
DHCPの設定方法
nmcli con mod <connection_name> ipv4.method auto nmcli con up <connection_name>
設定ファイルの編集例(スタティック)
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=none DEVICE=eth0 ONBOOT=yes IPADDR=192.168.1.100 PREFIX=24 IPV6ADDR=2001:db8::100/64 EOF
設定ファイルの編集例(DHCP)
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=dhcp DEVICE=eth0 ONBOOT=yes EOF
Linux (一般的なディストリビューション)
設定ファイル
/etc/network/interfaces
(Debian系)/etc/netplan/*.yaml
(Ubuntu 18.04以降)
IPv4アドレスの設定方法
Debian系 (Debian, Ubuntu 16.04まで)
IPv4アドレスの設定方法
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
IPv6アドレスの設定方法
ifconfig eth0 inet6 add 2001:db8::100/64
設定ファイルの編集例
cat <<EOF >> /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 iface eth0 inet6 static address 2001:db8::100 netmask 64 gateway 2001:db8::1 EOF
Ubuntu 18.04以降 (Netplan)
sudo nano /etc/netplan/01-netcfg.yaml
設定ファイルの編集例
network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] dhcp6: no addresses: [2001:db8::100/64] gateway6: 2001:db8::1
編集後に次のコマンドで適用します。
sudo netplan apply
macOS
設定ファイル
- 設定ファイルは特定の場所に保存されません。
networksetup
コマンドを使用します。
IPv4アドレスの設定方法
sudo networksetup -setmanual "Ethernet" 192.168.1.100 255.255.255.0 192.168.1.1
IPv6アドレスの設定方法
ネットワークインターフェースの確認
networksetup -listallnetworkservices
スタティックルートの設定
FreeBSD
スタティックルートの追加
route add -net <ネットワーク> <ゲートウェイ>
例
route add -net 192.168.2.0/24 192.168.1.1 route add -net 2001:db8::/64 2001:db8::1
設定ファイル
- /etc/rc.conf
設定ファイルの編集例
echo 'static_routes="net1 net2"' >> /etc/rc.conf echo 'route_net1="-net 192.168.2.0/24 192.168.1.1"' >> /etc/rc.conf echo 'route_net2="-net 2001:db8::/64 2001:db8::1"' >> /etc/rc.conf
Red Hat (RHEL, CentOS)
スタティックルートの追加
ip route add <ネットワーク> via <ゲートウェイ>
例
ip route add 192.168.2.0/24 via 192.168.1.1 ip -6 route add 2001:db8::/64 via 2001:db8::1
設定ファイル
- /etc/sysconfig/network-scripts/route-<インターフェース名>
設定ファイルの編集例
cat <<EOF > /etc/sysconfig/network-scripts/route-eth0 192.168.2.0/24 via 192.168.1.1 2001:db8::/64 via 2001:db8::1 EOF
Linux (Debian系)
スタティックルートの追加
ip route add <ネットワーク> via <ゲートウェイ>
例
ip route add 192.168.2.0/24 via 192.168.1.1 ip -6 route add 2001:db8::/64 via 2001:db8::1
設定ファイル
/etc/network/interfaces
設定ファイルの編集例
cat <<EOF >> /etc/network/interfaces up ip route add 192.168.2.0/24 via 192.168.1.1 up ip -6 route add 2001:db8::/64 via 2001:db8::1 EOF
macOS
スタティックルートの追加
sudo route -n add <ネットワーク> <ゲートウェイ>
例
sudo route -n add 192.168.2.0/24 192.168.1.1 sudo route -n add -inet6 2001:db8::/64 2001:db8::1
永続的なスタティックルートの設定
macOSでは、永続的なルートを設定するためにスクリプトを作成し、それを自動的に実行するように設定します。
スクリプト例
#!/bin/bash sudo route -n add 192.168.2.0/24 192.168.1.1 sudo route -n add -inet6 2001:db8::/64 2001:db8::1
スクリプトの保存と実行権限の付与
sudo mv <スクリプト名> /usr/local/bin/ sudo chmod +x /usr/local/bin/<スクリプト名>
スクリプトの自動実行設定
/etc/rc.local
を作成または編集してスクリプトを追加します。
hostsファイルの編集
FreeBSD, Red Hat (RHEL, CentOS), Linux (Debian系), macOS
hostsファイルの場所
/etc/hosts
エントリの追加
<IPアドレス> <ホスト名> [エイリアス]
例
192.168.1.100 myserver 192.168.1.101 myserver2 myserver2.example.com 2001:db8::100 myipv6server
pingコマンドの使用方法
IPv4でのpingコマンド
基本的な使用法
ping <IPアドレスまたはホスト名>
IPv6でのpingコマンド
FreeBSD, Linux, macOS
ping6 <IPv6アドレスまたはホスト名>
例
ping6 2001:0db8:85a3:0000:0000:8a2e:0370:7334 ping6 example.com
Red Hat系 (RHEL, CentOS)
ping -6 <IPv6アドレスまたはホスト名>
例
ping -6 2001:0db8:85a3:0000:0000:8a2e:0370:7334 ping -6 example.com
tracerouteコマンドの使用方法
IPv4でのtracerouteコマンド
FreeBSD, Linux, macOS
基本的な使用法
traceroute <IPアドレスまたはホスト名>
例
traceroute 192.168.1.1 traceroute example.com
Red Hat系 (RHEL, CentOS)
traceroute -6 <IPv6アドレスまたはホスト名>
例
traceroute -6 2001:db8::1 traceroute -6 example.com
まとめ
IPアドレスの設定:スタティック
- FreeBSD:
/etc/rc.conf
ファイルを編集し、ifconfig
コマンドで設定 - Red Hat:
/etc/sysconfig/network-scripts/
内の設定ファイルを編集し、nmcli
コマンドで設定 - Linux (Debian系):
/etc/network/interfaces
ファイルを編集し、ifconfig
またはip
コマンドで設定 - Linux (Ubuntu 18.04以降):
/etc/netplan/*.yaml
ファイルを編集し、netplan apply
で適用 - macOS:
networksetup
コマンドを使用してネットワーク設定
IPアドレスの設定:DHCP
- FreeBSD:
ifconfig <インターフェース> inet dhcp
または/etc/rc.conf
で設定 - Red Hat:
nmcli
コマンドまたは/etc/sysconfig/network-scripts/ifcfg-<interface>
ファイルを編集 - Linux (Debian系):
dhclient
コマンドまたは/etc/network/interfaces
ファイルを編集 - Linux (Ubuntu 18.04以降):
netplan
ファイルを編集macOS:networksetup
コマンドを使用してDHCPを設定
スタティックルートの設定
- FreeBSD:
route add
コマンドおよび/etc/rc.conf
- Red Hat:
ip route add
コマンドおよび/etc/sysconfig/network-scripts/route-<インターフェース名>
- Debian系:
ip route add
コマンドおよび/etc/network/interfaces
- macOS:
route -n add
コマンドおよびスクリプトを用いた自動実行設定
hostsファイルの編集
- すべてのOS:
/etc/hosts
ファイルを編集し、IPアドレスとホスト名のエントリを追加
pingコマンドの使用方法
- IPv4:
ping <IPアドレスまたはホスト名>
- IPv6:
ping6 <IPv6アドレスまたはホスト名>
またはping -6 <IPv6アドレスまたはホスト名>
(特にRed Hat系)
tracerouteコマンドの使用方法
- IPv4:
traceroute <IPアドレスまたはホスト名>
- IPv6:
traceroute6 <IPv6アドレスまたはホスト名>
またはtraceroute -6 <IPv6アドレスまたはホスト名>
(特にRed Hat系)
以上でFreeBSD, Red Hat, Linux, macOSでのネットワーク設定に関して包括的に記載してました。