问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-26 05:30

我来回答

1个回答

热心网友 时间:2022-06-21 05:07

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
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 如何办理护照网上预约? 车上货物有没有保险 中山护照办理怎么预约 车上货物责任险的基本简介 护照办理是否需要预约 出了交通事故,车上货物损失保险公司会赔付吗? 如何提高教学效果的研修心得 国培脱产研修总结 车子在路上坏了造成的货物损失保险公司赔偿吗 汽车托运保险怎么买? 研究性学习心得体会 人保车上货物保险条款 求800字的研究性学习个人心得体会,急用 研究性学习 心得体会 800字左右 没有驾驶证,开车违章了,怎么办? 车主如果没有驾照,车辆违章扣分怎么办? 没有随身携带驾驶证开车是否违章 博越保养用什么机油好 一个女同事昨天微信和我聊天,我们之间聊了一些关于自己婚姻的不幸,甚至聊到了性生活之类的话题。她说这 离不了又过不下去的婚姻该怎么办?微信名 淘宝上免密支付怎么取消 主机服务中没有DHCP服务是怎么回事? “本地连接未启用DHCP”是什么意思? 路由器设置界面中无DHCP服务器设置项 为什么汽车在行驶中空调会自动开启? 打开前档吹风模式,为什么空调会自动打开 朋友差钱怎么要回来 别人欠我钱,要不回来,我应该怎么办 苹果怎样用爱思助手下载美图秀秀 帮忙下载这个文档,万分感谢!财务管理制度-资金使用审批流程图 资金审批单是干什么用的 财务部支付款时,财务会计、经理、财务总监参与审批流吗? 美图秀秀在哪里下载 大额资金使用审批与发票审批的关系 美图秀秀在哪下载 对全面预算管理与业务审批、资金审批、有何建议 一般企业货币资金支出的控制程序 苹果手机用美图秀秀为什么说照片在云相册里还要下载才可以用,去哪下载呀? 美图手机怎么下载软件? 我向公司财务提出资金支出申请表,那这笔钱的往来是我借支用的,还是公司的支付行为?