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版权协议,转载请附上原文出处链接和本声明。