在一个局域网中(没有dhcp服务)用docker搭建一个dhcp服务器?

作者&投稿:佟廖 (若有异议请与网页底部的电邮联系)
在公司局域网如何架设DHCP服务器~

很详细的Windows 2008 Server下搭建DHCP与WINS服务器教程

看你的需求了。不一定要DHCP服务。事实上,有些企业为了更严格地管理IP,甚至禁用DHCP服务。静态IP也是常用的管理方法。
当然,有了DHCP服务,可以大大减轻网络管理员的工作量,不必每次都要手工给移动或新增的电脑分配合适的IP地址。

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


两台电脑处于同一局域网之中,但处于不同的网段之内,能互ping,但是不能...
我的电脑选择“属性”,然后单击“计算机名”选项卡单击“网络 ID”按钮,开始“网络标识向导”:单击“下一步”,选择“本机是商业网络的一部分,用它连接到其他工作着的计算机”;单击“下一步”,选择“公司使用没有域的网络”;单击“下一步”按钮,然后输入你的局域网的工作组名,再次单击“下一步”按钮,最后单击...

局域网的计算机无法访问,说没有权限
分析如下:首先对方必须设置了共享。共享有两种设置方式:a、登录时不需用户名验证的。b、登录时需要输入用户名和密码的。第一种的设置方法:1、开启guest账户。2、gpedit.msc打开组策略---计算机配置---windows设置---安全设置---本地策略---安全选项,找到“网络访问---本地账户的共享和安全模式”...

为什么在同一个局域网内,我的电脑不能上网,别人的电脑就可以上网_百 ...
首先你需要连接你的主机和宽带路由器,在IE或其他浏览器中敲入说明书中的路由器地址,输入用户名和密码后进入路由器的控制界面。通常情况下,新买的设备,在说明书中会有地址和用户名密码的说明,按照上面填写就是了。需要说明的是,通常SOHO级的路由器会有一个WAN(广域网)接口,3-6个LAN(局域网...

在局域网中两台电脑之间网络不通的原因有哪些?
局域网中两台电脑之间网络不通的原因:1、路由器或DHCP服务器设置不正确,两台电脑没有获取同一网段的IP。2、交换机设置不正确(傻瓜型交换机不用任何设置),可能是两个接电脑端口分别划了不同的VLAN,或两个端口上面做了隔离。3、网线有问题。4、网卡或IP设置不对。解决方法:1、确保两台电脑接到...

局域网中,只有一台电脑打不开一个网站(常用网站打开正常),IE中没有禁...
正常,因为多数浏览器底层是一样的,就是共用相同基础模块。如果存在防火墙,关闭试试看。有些控件比病毒还讨厌,麻烦点儿的就是重新安装浏览器(先卸载,再安装)。最麻烦的当然是重新安装系统。很多时候,杀毒程序比病毒还厉害,尤其是安装多个杀毒软件。所以最好安装一键还原,并在还原后更新所有的应用...

最近在网吧局域网中发现了一个192.168.1.253的ip,但没有这个机器,然后...
你需要确实两点:1.是否内网有ARP欺骗(如果有ARP,什么IP都是有可能出现的)2.地址是否完全按网络规划来划分IP的(也就是说是否有终端机自己单独更改了IP,但他的协议有点问题,所以你没法找到它)你需要做以下几点:1.检查一下是不是有网管型(如二层)交换机,这些交换机同样是有一个独立IP的.2.对所有...

局域网中有一个私有IP地址被无故占用,网络中总有一个莫须有的私有地址...
根据你说的情况,我觉得应该是ARP病毒或者是受到了ARP攻击.它通过发送一个错误的IP地址与MAC地址的映射信息到你的局域网中.当主机上线时,它会把自己的IP--MAC地址的映射信息广播至整个局域网,其他主机收到ARP数据包后把这个映射信息存到本机的ARP缓存中.在你的局域网中,通过发送192.168.1.12--MAC...

局域网中有的电脑不能共享
局域网中有的电脑不能共享是因为设置不正确。具体设置如下:1、所有电脑都连上同一个路由器。2、右击桌面网络---属性---更改高级共享设置3、选择 公共网络---选择以下选项:启动网络发现---启动文件和打印机共享---启用共享以便可以访问网络的用户可以读取和写入公用文件夹中的文件(可以不选)---关...

怎么解决局域网中有些电脑能上网,有些不能上网的问题
1、你的局域网是否有DHCP服务器,也就是说你的IP是自动获取还是手动配置,如果局域网中有DHCP服务器那么应该是自动获取IP地址,如果没有DHCP服务器,那么就要手动配置IP地址了。如果不清楚你可以询问网管。2、看网卡驱动程序是否正常,右击“我的电脑”-“属性”-“硬件”-设备管理器,打开“设备管理...

我公司的电脑,现在是局域网,其中一台没有办法上网,请大家帮忙解决_百度...
的小型局域网(约20-200台工作站)设计的。 1.8 IP地址及子网掩码 1.8.1 什么是IP地址 1.在以TCP\/IP为通信协议的网络上,每一台主机都有一个唯一的IP地址(它的功能就像门牌号);此IP地址不但可以用来辨识每一台主机,其中也隐含着网络的路径信息。例如:192.168.0.1 2.IP地址和域名地址不是任意分配的,那将...

克孜勒苏柯尔克孜自治州15313526938: 网络连接出现问题(DHCP未开启),怎么解决? -
漆陆可杰: 这上面显示的意思是你所在的局域网内没有DHCP服务器. DHCP服务器一定要在一台电脑上开启的服务,如果有用它也没事,只要手动配置IP就OK了,像现在的路由器上面都有DHCP的功能,可能你没有开启这个功能吧.

克孜勒苏柯尔克孜自治州15313526938: 是不是每一个网络都有DHCP服务器啊? -
漆陆可杰: 这要看情况.如果局域网中的电脑是手动指定IP的话,那么该网中可能就只有一个DNS服务器而没有DHCP服务器.因为DHCP服务器是用来分配IP地址的,既然手动指定了那就用不着它了.但是DNS服务器肯定要有,一般来说手动指定IP下面的首选DNS就是服务器的地址.同理,如果电脑是自动分配IP地址的话,那肯定是局域网中至少有一台DHCP服务器.这时候通常情况下DHCP服务器也扮演着DNS服务器的角色.一般说来这些服务器都在公司的机房或专门用于放置服务器的地方,而且通常有一个公网IP直接连接到INTERNET.希望我的回答能对你有所帮助.

克孜勒苏柯尔克孜自治州15313526938: 局域网内电脑自动私有ip地址怎么处理 -
漆陆可杰: 那是因为电脑没能获取到有效的IP地址.可能的原因是局域网内没有DHCP服务器或路由器上DHCP服务没有开启.解决的方法是在局域网中安装一个DHCP服务器,或开启路由器上的DHCP服务,或者按路由器上的设置给你这台电脑手动指定IP地址、网关、DNS.

克孜勒苏柯尔克孜自治州15313526938: 网络连接一直是"正在获取网络IP地址"的原因 -
漆陆可杰: 局域网内没有DHCP服务器.单机上网是猫没有或没开DHCP功能. 没有局域网,可以随便设一个IP地址,但DNS不能乱设,最好问你的网络服务商,否则打不开网页.你比照另一个能上的电脑的IP设置,给这个不能上的手动设置.看能上的电脑的设置从 详细信息 里看,不要从TCP/IP里看. 如果能上网,并且另一个电脑是自动获取IP的话,可能就是DHCP有问题. 如果还不能上网,那么很可能是网卡或系统有问题了. 不过我估计网卡有问题的可能大些.

克孜勒苏柯尔克孜自治州15313526938: 我的电脑网络受限制或无连接怎么办
漆陆可杰: 那是因为你的电脑没有存在与一个标准的局域网络中,没有dhcp服务器为它分配ip,因为你是用宽带猫拨号上网的,ip是分配虚拟的,本地连接的ip没有任何作用,可以不设置,但是如果你看着不舒服,可以手动设置一个,例如192.168.0.100就可以了,其他的就不用管了,因为设置了也没用的.

克孜勒苏柯尔克孜自治州15313526938: 在局域网中DHCP服务未打开的情况下查询该网络的IP地址段的软件 -
漆陆可杰: 这个简单呀,在公司接入的这几个电脑上,看一下IP配置就可以了,看不到你就在运行里输入 CMD 出来后再输入 ipconfig /all 就全显示出来了

克孜勒苏柯尔克孜自治州15313526938: W7系统无线网络连接未启用DHCP什么意思 -
漆陆可杰: 动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址给用户给内部网络管理员作为对所有计算机作中央管理的手段.

克孜勒苏柯尔克孜自治州15313526938: 在启动redhat linux 9.0系统时有一个启动项是启动失败的,为什么? -
漆陆可杰: 1. 你电脑没有联网,而网络配置成DHCP服务器自动获取,等了很久时间,没有DHCP服务器响应,所以失败.2. 电脑联上了局域网,仍然是自动获取IP,不过局域网内没有DHCP服务器,所以失败了.解决办法:手动配置IP,或者如果不在网络中,关闭网络服务.

克孜勒苏柯尔克孜自治州15313526938: 本局域网是通过路由器连接到上层交换机的,本机自动获取的IP地址和网关并不是路由器的DHCP分配的. -
漆陆可杰: 路由器当交换机使用可以获取到上级的DHCP服务器给分配的地址.如果交换机接路由的wan口,就只能是路由器开始自己的DHCP 分配ip地址

克孜勒苏柯尔克孜自治州15313526938: 电脑网络受限制该怎么设置? -
漆陆可杰: 电脑网络受限,是由于没有获取到正确的IP地址所致.1. 方法一:网卡自动获取IP方式,同时,路由器中打开DHCP服务,一般路由器默认打开此服务.2. 方法二:网卡手动指定IP地址.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网