Help us understand the problem. What is going on with this article?

CentOS7でDHCPサーバの構築&クライアントからの接続を試してみる

はじめに

CentOS7で2つのサーバを用意し、DHCPサーバ・クライアントとして動作させてみます。

  • testvm1: DHCPサーバ
    • eth1 192.168.99.1/24
    • eth2 192.168.100.1/24
  • testvm2: DHCPクライアント
    • eth1 192.168.99.2/24
    • eth2 192.168.100.2/24 ←このeth2をDHCPでIPアドレス取得するように変更します

DHCPサーバの設定・起動

  1. dhcpパッケージのインストール

    [root@testvm1 ~]# yum install -y dhcp
    
  2. dhcpd.confの編集

    [root@testvm1 ~]# cat /etc/dhcp/dhcpd.conf
    ddns-update-style  none;         Dynamic DNSのON/OFF
    default-lease-time 28800;        割り当てIPアドレスの有効期間
    max-lease-time     86400;        割り当てる最大有効期間
    
    subnet 192.168.100.0 netmask 255.255.255.0 {    サブネット192.168.100.0/24に関する設定
        authoritative;                              異なるサブネットのIPアドレスを要求してきたときの動作(DHCP-NAKを返すか、無視するか)
        range 192.168.100.101 192.168.100.199;      割り当てるIPアドレス範囲 
        option subnet-mask    255.255.255.0;        配布するサブネット情報
        option routers        192.168.100.254;     配布するデフォルトゲートウェイ情報
        option domain-name-servers 192.168.100.1;   配布するDNSサーバ情報
        option domain-name    "test.com";           配布するドメイン名情報
    }
    
  3. dhcpdの起動

    [root@testvm1 ~]# systemctl start dhcpd
    

    起動すると/var/log/messagesに以下のようなメッセージが出力される

    eth2(192.168.100.1/24)でリッスンされる
    Jan 13 01:48:49 testvm1 dhcpd: Listening on LPF/eth2/08:00:27:43:9b:ce/192.168.100.0/24
    Jan 13 01:48:49 testvm1 dhcpd: Sending on   LPF/eth2/08:00:27:43:9b:ce/192.168.100.0/24
    Jan 13 01:48:49 testvm1 dhcpd:
    
    eth1(192.168.99.1/24)は設定していないため以下のように出力される
    Jan 13 01:48:49 testvm1 dhcpd: No subnet declaration for eth1 (192.168.99.1).
    Jan 13 01:48:49 testvm1 dhcpd: ** Ignoring requests on eth1.  If this is not what
    

DHCPクライアントからの接続確認

  1. DGCPクライアントのeth2の設定ファイルを変更して、NICを再起動

    [root@testvm2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2
    NM_CONTROLLED=yes
    BOOTPROTO=dhcp
    ONBOOT=yes
    DEVICE=eth2
    [root@testvm2 network-scripts]# ifdown eth2
    Device 'eth2' successfully disconnected.
    [root@testvm2 network-scripts]# ifup eth2
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
    
  2. IPアドレスを確認
    192.168.100.101が設定されているのが確認できる

    [root@testvm2 ~]# ip a
    4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:98:ac:e1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.101/24 brd 192.168.100.255 scope global noprefixroute dynamic eth2
       valid_lft 28074sec preferred_lft 28074sec
    inet6 fe80::a00:27ff:fe98:ace1/64 scope link
       valid_lft forever preferred_lft forever
    
  3. DHCPサーバ側でtcpdumpによる通信を確認していると以下のやり取りが確認できる

    [root@testvm1 ~]# tcpdump -nlSvi eth2 dst port 67 or dst port 68
    tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
    
    ----DHCPクライアントのeth2(MACアドレス:08:00:27:98:ac:e1)からDHCPディスカバー(ブロードキャストでDHCPサーバを探す)----
    02:20:29.173395 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:98:ac:e1, length 300, xid 0xcab0ba6d, Flags [none]
          Client-Ethernet-Address 08:00:27:98:ac:e1
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Discover ←★DHCPディスカバー
            Hostname Option 12, length 7: "testvm2"
            Parameter-Request Option 55, length 19:
              Subnet-Mask, BR, Time-Zone, Classless-Static-Route
              Domain-Name, Domain-Name-Server, Hostname, YD
              YS, NTP, MTU, Option 119
              Default-Gateway, Classless-Static-Route, Classless-Static-Route-Microsoft, Static-Route
              Option 252, NTP, RP
    ----DHCPサーバからDHCPクライアントへDNCオファー(IPアドレス192.168.100.101やDNSサーバなどを指定)----
    02:20:30.175255 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.100.1.bootps > 192.168.100.101.bootpc: BOOTP/DHCP, Reply, length 300, xid 0xcab0ba6d, Flags [none]
          Your-IP 192.168.100.101
          Client-Ethernet-Address 08:00:27:98:ac:e1
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Offer ←★DHCPオファー
            Server-ID Option 54, length 4: 192.168.100.1
            Lease-Time Option 51, length 4: 28800
            Subnet-Mask Option 1, length 4: 255.255.255.0
            Domain-Name Option 15, length 8: "test.com"
            Domain-Name-Server Option 6, length 4: 192.168.100.1
            Default-Gateway Option 3, length 4: 192.168.100.254
    ----DHCPクライアントへDHCPサーバへDHCPリクエスト(IPアドレス192.168.100.101を指定)----
    02:20:30.176446 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 08:00:27:98:ac:e1, length 300, xid 0xcab0ba6d, Flags [none]
          Client-Ethernet-Address 08:00:27:98:ac:e1
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Request ←★DHCPリクエスト
            Server-ID Option 54, length 4: 192.168.100.1
            Requested-IP Option 50, length 4: 192.168.100.101
            Hostname Option 12, length 7: "testvm2"
            Parameter-Request Option 55, length 19:
              Subnet-Mask, BR, Time-Zone, Classless-Static-Route
              Domain-Name, Domain-Name-Server, Hostname, YD
              YS, NTP, MTU, Option 119
              Default-Gateway, Classless-Static-Route, Classless-Static-Route-Microsoft, Static-Route
              Option 252, NTP, RP
    ----DHCPサーバからDHCPクライアントへDNC-ACK(IPアドレス192.168.100.101やDNSサーバなどを指定)----
    02:20:30.181847 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.100.1.bootps > 192.168.100.101.bootpc: BOOTP/DHCP, Reply, length 300, xid 0xcab0ba6d, Flags [none]
          Your-IP 192.168.100.101
          Client-Ethernet-Address 08:00:27:98:ac:e1
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: ACK ←★DHCP-ACK
            Server-ID Option 54, length 4: 192.168.100.1
            Lease-Time Option 51, length 4: 28800
            Subnet-Mask Option 1, length 4: 255.255.255.0
            Domain-Name Option 15, length 8: "test.com"
            Domain-Name-Server Option 6, length 4: 192.168.100.1
            Default-Gateway Option 3, length 4: 192.168.100.254
    
  4. DHCPサーバで上で、割り当て中のIPアドレス確認
    DHCPサーバ上では以下のファイルから割り当て中のIPアドレスの情報が確認できます

    [root@testvm1 ~]# cat /var/lib/dhcpd/dhcpd.leases
    lease 192.168.100.101 {
    starts 3 2020/01/15 12:16:41;
    ends 3 2020/01/15 20:16:41;
    cltt 3 2020/01/15 12:16:41;
    binding state active;
    next binding state free;
    rewind binding state free;
    hardware ethernet 08:00:27:98:ac:e1;
    client-hostname "testvm2";
    }
    server-duid "\000\001\000\001%\256\206g\010\000'C\233\316";
    
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした