ubuntu dhcp server?ubuntu设置ip地址
在一个局域网中(没有dhcp服务)用docker搭建一个dhcp服务器
1、使用的镜像
sudo docker pull networkboot/dhcpd
2、测试的局域网拓扑结构如下:h为 DHCP服务器,ovs交换机s1、s2、s3各连着一台等待分配ip地址的主机。
3、h DHCP服务器通过一对暴露于root namespace的veth pair相连,具体操作如下
3.1、生成交换机s1、s2、s3
sudo ovs-vsctl add-br s1sudo ovs-vsctl add-br s2sudo ovs-vsctl add-br s3
3.2、创建veth pair即 v1-v2
sudo ip link add v1 type veth peer name v2
3.3、**up
sudo ip link set dev v1 upsudo ip link set dev v2 up
3.4、给v1配置ip及子网掩码
sudo ifconfig v1 192.168.1.254 netmask 255.255.255.0
3.5、生成DHCP服务器,监听v1,挂载本地data文件夹,data里面中只有dhcpd.conf文件
sudo docker run-it\--rm--net host\--init\--name=dhcpServer1\-v~/emxbook/docker-dhcpd/data:/data\networkboot/dhcpd v1
dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0{option routers 192.168.1.1;option subnet-mask 255.255.255.0;option domain-name"emx.local";option domain-name-servers 8.8.8.8;range 192.168.1.2 192.168.1.100;}
3.5、将v2连接到交换机上
sudo ovs-vsctl add-port s1 v2
3.6、交换机s1、s2、s3彼此相连
sudo ovs-vsctl add-port s1 s1p1sudo ovs-vsctl set Interface s1p1 type=patchsudo ovs-vsctl set Interface s1p1 options:peer=s2p1sudo ovs-vsctl add-port s2 s2p1sudo ovs-vsctl set Interface s2p1 type=patchsudo ovs-vsctl set Interface s2p1 options:peer=s1p1sudo ovs-vsctl add-port s1 s1p2sudo ovs-vsctl set Interface s1p2 type=patchsudo ovs-vsctl set Interface s1p2 options:peer=s3p1sudo ovs-vsctl add-port s3 s3p1sudo ovs-vsctl set Interface s3p1 type=patchsudo ovs-vsctl set Interface s3p1 options:peer=s1p2
3.7、创建主机h1、h2、h3,并将其连接到交换机上,其中ubunut:5是添加了基本net-tools、isc-dhcp-client,创建的时候记得使用--cap-add=NET_ADMIN
sudo docker run-itd--network=none--name=h1--cap-add=NET_ADMIN ubuntu:5sudo docker run-itd--network=none--name=h2--cap-add=NET_ADMIN ubuntu:5sudo docker run-itd--network=none--name=h3--cap-add=NET_ADMIN ubuntu:5sudo ovs-docker add-port s1 eth1 h1sudo ovs-docker add-port s2 eth1 h2sudo ovs-docker add-port s3 eth1 h3
3.8、可以使用floot-light控制交换机s1、s2、s3交换机(选择)
sudo ovs-vsctl set-controller s1 tcp:127.0.0.1:6653sudo ovs-vsctl set-controller s2 tcp:127.0.0.1:6653sudo ovs-vsctl set-controller s3 tcp:127.0.0.1:6653
4、使用dhclient eht1向DHCP服务器申请
4.1、申请ip之前
4.2、申请ip(服务器端界面)
4.3申请ip之后,h1(192.168.1.38):
同理,h2(192.168.1.39):
h3(192.168.1.40):
5、测试
5.1、h1 ping h2(192.168.1.39):
5.2、h2 ping h3(192.168.1.40):
6、最后拓扑结构图,ip分配之后的拓扑结构:DHCP服务器(192.168.1.6)、h1(192.168.1.38)、h2(192.168.1.39)、h3(192.168.1.40)
7、代码汇总参考
sudo ovs-vsctl add-br s1sudo ovs-vsctl add-br s2sudo ovs-vsctl add-br s3sudo ip link add v1 type veth peer name v2sudo ip link set dev v1 upsudo ip link set dev v2 upsudo ifconfig v1 192.168.1.6 netmask 255.255.255.0sudo docker run-it\--rm--net host\--init\--name=dhcpServer\-v~/emxbook/docker-dhcpd/data:/data\networkboot/dhcpd v1sudo ovs-vsctl add-port s1 v2sudo ovs-vsctl add-port s1 s1p1sudo ovs-vsctl set Interface s1p1 type=patchsudo ovs-vsctl set Interface s1p1 options:peer=s2p1sudo ovs-vsctl add-port s2 s2p1sudo ovs-vsctl set Interface s2p1 type=patchsudo ovs-vsctl set Interface s2p1 options:peer=s1p1sudo ovs-vsctl add-port s1 s1p2sudo ovs-vsctl set Interface s1p2 type=patchsudo ovs-vsctl set Interface s1p2 options:peer=s3p1sudo ovs-vsctl add-port s3 s3p1sudo ovs-vsctl set Interface s3p1 type=patchsudo ovs-vsctl set Interface s3p1 options:peer=s1p2sudo docker run-itd--network=none--name=h1--cap-add=NET_ADMIN ubuntu:5sudo docker run-itd--network=none--name=h2--cap-add=NET_ADMIN ubuntu:5sudo docker run-itd--network=none--name=h3--cap-add=NET_ADMIN ubuntu:5sudo ovs-docker add-port s1 eth1 h1sudo ovs-docker add-port s2 eth1 h2sudo ovs-docker add-port s3 eth1 h3sudo ovs-vsctl set-controller s1 tcp:127.0.0.1:6653sudo ovs-vsctl set-controller s2 tcp:127.0.0.1:6653sudo ovs-vsctl set-controller s3 tcp:127.0.0.1:6653
如何在 Ubuntu/Debian Linux 中设置 DHCP 服务
步骤 1:在 Ubuntu中安装 DHCP服务器
1、运行下面的命令来安装 DHCP服务器包,也就是 dhcp3-server。
$ sudo apt install isc-dhcp-server
2、安装完成后,编辑/etc/default/isc-dhcp-server使用 INTERFACES选项定义 DHCPD响应 DHCP请求所使用的接口。
比如,如果你想让 DHCPD守护进程监听 eth0,按如下设置:
INTERFACES="eth0"
同样记得为上面的接口配置静态地址。
步骤 2:在 Ubuntu中配置 DHCP服务器
1、 DHCP配置的主文件是/etc/dhcp/dhcpd.conf,你必须填写会发送到客户端的所有网络信息。
并且 DHCP配置中定义了两种不同的声明,它们是:
parameters-指定如何执行任务、是否执行任务,还有指定要发送给 DHCP客户端的网络配置选项。
declarations-定义网络拓扑、指定客户端、为客户端提供地址,或将一组参数应用于一组声明。
2、现在打开并修改主文件,定义 DHCP服务器选项:
$ sudo vi/etc/dhcp/dhcpd.conf
在文件顶部设置以下全局参数,它们将应用于下面的所有声明(请指定适用于你情况的值):
option domain-name"tecmint.lan";
option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
default-lease-time 3600; max-lease-time 7200;
authoritative;
3、现在定义一个子网,这里我们为 192.168.10.0/24局域网设置 DHCP(请使用适用你情况的参数):
subnet 192.168.10.0 netmask 255.255.255.0
{
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
option domain-search"tecmint.lan";
option domain-name-servers 192.168.10.1;
range 192.168.10.10 192.168.10.100;
range 192.168.10.110 192.168.10.200;
}
步骤 3:在 DHCP客户端上配置静态地址
1、要给特定的客户机分配一个固定的(静态)的 IP,你需要显式将这台机器的 MAC地址以及静态分配的地址添加到下面这部分。
host centos-node
{
hardware ethernet 00:f0:m4:6y:89:0g;
fixed-address 192.168.10.105;
}
host fedora-node
{
hardware ethernet 00:4g:8h:13:8h:3a;
fixed-address 192.168.10.106;
}
保存并关闭文件。
2、接下来,启动 DHCP服务,并让它下次开机自启动,如下所示:
------------ SystemD------------
$ sudo systemctl start isc-dhcp-server.service
$ sudo systemctl enable isc-dhcp-server.service
------------ SysVinit------------
$ sudo service isc-dhcp-server.service start
$ sudo service isc-dhcp-server.service enable
3、接下来不要忘记允许 DHCP服务(DHCP守护进程监听 67 UDP端口)的防火墙权限:
$ sudo ufw allow 67/udp
$ sudo ufw reload$ sudo ufw show
步骤 4:配置 DHCP客户端
1、此时,你可以将客户端计算机配置为自动从 DHCP服务器接收 IP地址。
登录到客户端并编辑以太网接口的配置文件(注意接口名称/号码):
$ sudo vi/etc/network/interfaces
定义如下选项:
auto eth0 iface eth0 inet dhcp
保存文件并退出。重启网络服务(或重启系统):
------------ SystemD------------
$ sudo systemctl restart networking
------------ SysVinit------------
$ sudo service networking restart
另外你也可以使用 GUI来在进行设置,如截图所示(在 Fedora 25桌面中)设置将方式设为自动(DHCP)。
此时,如果所有设置完成了,你的客户端应该可以自动从 DHCP服务器接收 IP地址了。
就是这样了!在本篇教程中,我们向你展示了如何在 Ubuntu/Debian设置 DHCP服务器。在反馈栏中分享你的想法。如果你正在使用基于 Fedora的发行版,请阅读如何在 CentOS/RHEL中设置 DHCP服务器。
Ubuntu18.04 部署简单DHCP服务器
DHCP是局域网中主机获取IP地址的关键协议。它确保网络客户端在开机后能自动获取IP地址、子网掩码和DNS等信息,从而实现正常的网络访问。
本文通过Ubuntu 18.04虚拟机演示了简易DHCP服务器的部署,以验证服务器配置的正确性。部署环境包括Ubuntu 18.04 DHCP服务器和Win7虚拟机客户端。
Ubuntu 18.04 DHCP服务器使用isc-dhcp-server软件进行安装。
配置服务器涉及两个主要文件夹:/etc/dhcp和/etc/default/isc-dhcp-server。在服务器配置文件中,指定IP地址为静态地址。
配置完成,重启isc-dhcp-server服务。Win7客户端重启网络适配器,验证DHCP服务功能。
若需分配固定IP给客户端,可在配置文件中添加相关代码。
客户端主机的MAC地址可通过特定命令查看。
验证结果,确保客户端成功获取所需网络参数。