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地址可通过特定命令查看。

验证结果,确保客户端成功获取所需网络参数。

阅读剩余
THE END