0x01 前言
下面这篇文章介绍了我使用服务器进行PPPoE拨号的设置方法,我的想法是通过服务器会网络进行管控,以此填补家里没有网管型交换机和专业路由器的遗憾
DHCP也是基础服务之一,因为去掉了原有的极路由3,所以在服务器上配置DHCP服务是必不可少的。
0x02 准备
要让其他电脑通过DHCP服务器获取IP,那么我们需要准备一个可用的网络端口,以便接上交换机。
因为我的DHCP服务是运行在KVM虚拟机上的,所以我需要将服务器上的一个网络端口分配这台虚拟机:
#立即将实体网卡enp2s0f0以直接映射的模式添加到名为base的虚拟机 virsh attach-interface base direct enp2s0f0 --current #将实体网卡enp2s0f0以直接映射的模式添加到名为base的虚拟机的这一操作写入配置文件 virsh attach-interface base direct enp2s0f0 --config
这一操作不需要重启虚拟机,添加完成后就可以在虚拟机里看到新增的设备。但要注意的是:虚拟机里的MAC地址是虚拟出来的,并不是硬件原有的MAC地址。
准备好网络端口,现在要为这个端口添加一个IP,这个IP就是DHCP的网关IP。先确定目标网卡在系统内的名称:
[root@base ~]# ip addr #系统内部环路 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever #硬件映射,用于PPPoE 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:61:bc:27 brd ff:ff:ff:ff:ff:ff #硬件映射,用于DHCP 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:9e:4b:87 brd ff:ff:ff:ff:ff:ff inet 10.1.1.1/24 brd 10.1.1.255 scope global eth1 valid_lft forever preferred_lft forever #PPPoE程序虚拟出来的网卡 5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3 link/ppp inet 113.89.193.57 peer 113.89.192.1/32 scope global ppp0 valid_lft forever preferred_lft forever
我刚才映射到base这台虚拟机里的网卡名为eth1,现在需要给他添加一个配置文件。我使用10.1.1.0/24这个网段,请依据你的实际情况进行修改:
#编辑文件 [root@base ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1 #添加一下内容,请将内容按照实际情况进行修改 TYPE=Ethernet NAME=eth1 DEVICE=eth1 ONBOOT=yes IPADDR=10.1.1.1 #重启网络服务 [root@base ~]# systemctl restart network
请在此确认你的这个网卡是否已经有设定好的IP地址。
0x03 安装
DHCP服务通过yum即可进行简单的安装:
[root@base ~]# yum install dhcp -y
因为安全所需,安装完成后还需要绑定网卡。在不绑定网卡的情况下是监听所有传入数据包的,如果像我将PPPoE拨号服务也设置在同一设备上,在没有防火墙的情况下,外部设备也能获取到内网IP。
#将文件复制到指定位置 [root@base ~]# cp /usr/lib/systemd/system/dhcpd.service /etc/systemd/system/ #用vim打开dhcpd.service文件 [root@base ~]# vim /etc/systemd/system/dhcpd.service #在这一行的最后添加网卡名称 ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid eth1 #重新加载服务列表 [root@base ~]# systemctl --system daemon-reload #重启DHCP服务 [root@base ~]# systemctl restart dhcpd.service
0x04 配置
在DHCP的说明文档里你可以找到配置文件的样板:
#使用locate搜索文件 [root@base ~]# locate dhcpd.conf.example #查看文件 [root@base ~]# cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
因为我的网络架构比较简单,所以配置文件也比较简单。在设置好IP段的前提下,还需要给打印机、PS4、Wi-Fi路由器等等的设备设置固定IP。配置文件如下:
#打开并修改文件 [root@base ~]# vim /etc/dhcp/dhcpd.conf #本地域名 option domain-name "terenceHome.local"; #DNS服务器,我本地有DNS缓存服务器,请根据你的实际情况进行修改 option domain-name-servers 10.1.1.1; #默认IP释放时间 default-lease-time 600; #最大IP释放时间 max-lease-time 7200; #设定IP与电子掩码 subnet 10.1.1.0 netmask 255.255.255.0 { #设定IP段 range 10.1.1.101 10.1.1.150; #设定网关 option routers 10.1.1.1; } #固定IP设定, host hiwifi.t.com { #硬件MAC地址 hardware ethernet d5:ee:07:2d:6b:0f; #固定IP地址 fixed-address 10.1.1.2; }
如果有多台需要固定IP的设备,就只能手动添加了。
0x05 结语
DHCP还有其他很有趣的功能,后期我了解和实践过后在写文章进行记录。