linux网络服务[DHCP动态主机配置协议]——————固定地址分配、超级作用域

1.固定地址分配

客户端虽然使用dhcp服务器在获取ip,但是我们希望他每一次获取到的IP都是固定的IP。

能够实现的就是服务器端,服务器可以为固定的客户保留固定的IP。

在服务器的配置文件中之名给谁留哪一个就可以了。

1)查看客户机的MAC地址:

[root@client1 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.100  netmask 255.255.255.0  broadcast 172.25.254.255
        inet6 fe80::5054:ff:fe00:50b  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:00:05:0b  txqueuelen 1000  (Ethernet)
        RX packets 321  bytes 36823 (35.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1633  bytes 105635 (103.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# eth0的mac地址就是52:54:00:00:05:0b

2)编写服务端的dhcp配置文件:

[root@server ~]# vim /etc/dhcp/dhcpd.conf

# set.
host fantasia {
  hardware ethernet 52:54:00:00:05:0b; # 写入指定用户网卡的mac地址
  fixed-address 172.25.5.120; # 而且没有在地址池中
}

3)重启服务端dhcp服务:

[root@server ~]# systemctl restart dhcpd.service

4)重启客户端的eth0网卡:

[root@client1 ~]# systemctl restart network

5)查看客户端网络:

[root@client1 ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.5.120  netmask 255.255.255.0  broadcast 172.25.5.255
        inet6 fe80::5054:ff:fe00:50b  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:00:05:0b  txqueuelen 1000  (Ethernet)
        RX packets 619  bytes 65254 (63.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2270  bytes 161949 (158.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 这时指定的固定网络IP就给了指定的用户。

2.超级作用域

2.1 原理

在一个局域网中,DHCP服务器给客户机分配网络资源时,客户机增多使得网络资源不够了。

C类的IP地址有数量限制,不会超过253个,如何突破253个限制?

DHCP服务器可以为单个物理网络上的客户端提供多个作用域租约地址。

我们需要DHCP给局域网的主机即分配原来的网段,又分配另外的网段,他们就不能进行通信了。这样单纯的DHCP服务器就不能实现了。

实际中我们是使用带有DHCP功能的路由器,就可以实现功能。

在这里插入图片描述
如图所示:

  • 客户端1有200个,客户端2有100个。
  • 让路由器分配两个网段,5网段与254网段。
  • 而这两类虽在同一个局域网但不可通信。
  • 我们就需要路由器的路由转发,进行转发。
  • 但是只有一根网线连在路由器上,这就需要单臂路由的功能。
  • 单臂路由,在路由器的一个网卡上设定两个网段的IP地址,就可以路由转发了。

2.2 实现超级作用域

实验准备环境:

  • 三台虚拟机
  • 一台需要作为路由器和dhcp服务器
  • 另外两台是不同的网段的客户机。

1)两台客户端设置为dhcp模式:

[root@client1 ~]# nmtui    
   ┌───────────────────────────┤ Edit connection ├───────────────────────────┐
   │                                                                         │ 
   │         Profile name eth0____________________________________           │ 
   │               Device eth0 (52:54:00:00:05:0B)________________           │ 
   │                                                                         │ 
   │ ═ ETHERNET                                                    <Show>    │ 
   │                                                                         │ 
   │ ═ IPv4 CONFIGURATION <Automatic> # dhcp模式                    <Show>    │ 
   │ ═ IPv6 CONFIGURATION <Automatic>                              <Show>    │ 
   │                                                                         │ 
   │ [X] Automatically connect                                               │ 
   │ [X] Available to all users                                              │ 
   │                                                                         │ 
   │                                                           <Cancel> <OK>
  • 先不要重启网络

2) 服务端配置单臂路由,设定为网卡的配置文件:

[root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens3

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens3
UUID=dad3a8f8-0ab2-4d81-ba35-e31f9135af6c
DEVICE=ens3
ONBOOT=yes
DNS1=114.114.114.114
IPADDR0=172.25.5.10 # 第一个网段的IP
PREFIX0=24
IPADDR1=172.25.254.10 # 另一个网段的IP
PREFIX1=24
GATEWAY=172.25.5.250
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

3)重启服务器网络:

[root@server network-scripts]# ip a
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:b2:1b:71 brd ff:ff:ff:ff:ff:ff
    inet 172.25.5.10/24 brd 172.25.5.255 scope global ens3 # 网络1设定成功
       valid_lft forever preferred_lft forever
    inet 172.25.254.10/24 brd 172.25.254.255 scope global ens3 # 网络2设定成功
       valid_lft forever preferred_lft forever
    inet6 fe80::4608:756c:3af9:e967/64 scope link 
       valid_lft forever preferred_lft forever

4)打开内核路由功能:

[root@server network-scripts]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 # 默认为0,修改为1打开
[root@server network-scripts]# sysctl -p # 刷新
net.ipv4.ip_forward = 1

5)修改服务器的dhcp配置文件:

  • 注释之前的网段声明,主机声明等
[root@server ~]# vim /etc/dhcp/dhcpd.conf

shared-network 5-254 {
  subnet 172.25.5.0 netmask 255.255.255.0 { # 网段1
    option routers 172.25.5.10; # 网关是路由器的同网段ip
    range 172.25.5.50 ;# 给一个ip,保证了另一个虚拟机在另一个网段
  }
  subnet 172.25.254.0 netmask 255.255.255.0 { # 网段2
    option routers 172.25.254.10; # 网关是路由器的同网段ip
    range 172.25.254.50 ; # 给一个ip,保证了另一个虚拟机在另一个网段
  }
}

6)重启dhcp服务:

[root@server ~]# systemctl restart dhcpd.service 

7)其他两个测试机获取网络:

  • 客户端1:
[root@client1 ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.5.50  netmask 255.255.255.0  broadcast 172.25.5.255
        inet6 fe80::5054:ff:fe00:50b  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:00:05:0b  txqueuelen 1000  (Ethernet)
        RX packets 3274  bytes 265700 (259.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3589  bytes 273894 (267.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 客户端2:
[root@client2 ~]# ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.50  netmask 255.255.255.0  broadcast 172.25.254.255
        inet6 fe80::8c34:d014:f74f:7b31  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::4608:756c:3af9:e967  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:31:00:ab  txqueuelen 1000  (Ethernet)
        RX packets 2981  bytes 3583848 (3.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 297  bytes 28075 (27.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

8)实现通信(实现通信成功):

[root@client2 ~]# ping 172.25.5.50
PING 172.25.5.50 (172.25.5.50) 56(84) bytes of data.
64 bytes from 172.25.5.50: icmp_seq=1 ttl=63 time=0.720 ms
64 bytes from 172.25.5.50: icmp_seq=2 ttl=64 time=1.20 ms
64 bytes from 172.25.5.50: icmp_seq=3 ttl=64 time=0.389 ms
64 bytes from 172.25.5.50: icmp_seq=4 ttl=64 time=0.382 ms
64 bytes from 172.25.5.50: icmp_seq=5 ttl=64 time=0.360 ms
64 bytes from 172.25.5.50: icmp_seq=6 ttl=64 time=0.400 ms
^C
--- 172.25.5.50 ping statistics ---
6 packets transmitted, 6 received, +1 errors, 0% packet loss, time 5003ms
rtt min/avg/max/mdev = 0.360/0.575/1.203/0.307 ms

3.DHCP中继

后续更新………………


版权声明:本文为mango_kid原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。