不懂网络和懂一点的区别

上次跟朋友聊到网络方面的问题,我说在做Windows开发的那些年,我对网络真的可以说是一窍不通,虽然也几度捧

着《TCP/IP协议详解》端详,但到底还是感觉很抽象。直到后来转向到Linux,而且需要去配路由器和交换机,才慢

慢地理解了一些以前百思不得其解的问题,再回头去看理论书籍,才觉得我也算得上是那个人(“本书目标读者....”)

了。

然后,然后我就举了一个例子,来表达一下不懂网络和懂点网络的区别,因为目前韦哥也只敢说“懂点”,咱不爱吹

牛。

假如客户有如下要求:在他们远程的机房或办公室自动化安装一个vSphere/OpenStack集群。

不懂网络的A:

A君还没混到当老大的位置,手下自然也没有什么小弟帮忙应付脏活重活,对这个需要的第一反应就是:操蛋的客

户!这怎么可能完成呢?但是迫于工作,没办法,他可能打电话跟客户说,A君我过几天出差,带着光盘到你们办公

室给你们装系统啊啊啊。接下来还要申请出差,购买机票等等,烦死他了。等他安装完毕,客户还不满意,嫌他效率

太低。

懂点网络的B:

虽然不姓牛,但B君对网络略知一二,因此他的脑海里可能慢慢地浮现出一个网络图,如果按这个图进行网络连接,

则有可能远程将集群安装到客户机房或办公室,B君不必带光盘过去了,他在办公室里撸一个小时就把这个图给画

好,然后对自己这边需要做的事情、客户那边需要做的事情分清楚后,给客户打电话,要求客户做一些配合工作。在

客户完成配合之后,B君只需要几次鼠标键盘操作,客户那边机器屏幕竟然都亮起来了,系统刷刷刷地在安装呢,客

户在那边端着一杯咖啡半信半疑地盯着那些屏幕。一杯咖啡下肚后,一个集群竟然安装完了,对公司来说,B君的做

法真是省时省力省钱,客户也会更欣赏,继续合作的事呢,我看行。

B的网络图如下:

B君对自己的图做出如下解释:

首先自己在公司里有一台部署服务器“Deployment Server”,配置公司内网IP,在公司的外网网关路由器上做一个NAT转换,这样部署服务器就拥有了映射好的一个外网IP。客户那边假设只有3台服务器,则需要给这3台服务器预留6个客户那边的内网IP地址,每个服务器需要2个IP,然后要求客户在他们公司的外网网关路由器也做NAT映射,这样这6个内外IP就对应了6个外网IP,并且在图中下边那个交换机上配置DHCP中继,中继IP地址配置成B君部署服务器的外网IP,并给3台服务器配置远程管理卡内网IP。图中红线表示的是服务器远程管理卡连接的网络。B君向客户索要3台服务器的远程管理卡对应的外网IP和3台服务器安装时通过DHCP获取的内网IP和eth0的MAC地址,然后在自己的部署服务器上配置DHCP,将服务器MAC地址和要分配的内网IP一一对应上。

现在,B君已经知道了3台服务器远程管理卡的外网IP,并给3台服务器配置好了DHCP,分配的IP是客户的内网IP,

但是DHCP进程运行在B君公司的部署服务器上。

最后,B君通过远程管理卡去启动3台服务器,并在启动时设置成从网络启动。3台服务器启动时,会发送DHCP请求

到下边的交换机,因为交换机配置了中继,因此交换机将DHCP请求单播到B君公司的部署服务器,经过层层返回,3

台服务器分别获取到给它们预留的由DHCP分配的内网IP。接着,3台服务器从部署服务器下载镜像进行自动化安装,

虽然配置的是内网IP,但是做了映射后,部署服务器看到的是它们的外网IP,因此他们的通讯是没有问题的。关于自

动化部署服务器需要安装什么软件等,这里就不展开了,这里假设已经配置好了。

这么看来,B君做的事情好像也挺杂的,还需要客户配合,但是一旦这个环境部署好,之后的安装可以都进行自动化

了,会大大地节省部署成本,再想想A君,只剩无边无际的同情了。

时间: 2024-12-29 01:18:31

不懂网络和懂一点的区别的相关文章

对当前网络路由的一点想法

五一小长假,和朋友开车去了浙江,发现了"基于目的地的最短距离算法"的弊端,也许就是这个算法导致了高速公路在某个时间段的定期规律性拥堵!从嘉定出发,G1501一路畅通,但是一旦转到G60沪昆高速,瞬间拥堵起来,实际上,早在G1501上时,就有公告牌,说沪昆高速有施工,可是大家还是全部转到了沪昆高速,留下S19/G15成了被抛弃的摆设...知道原因是什么吗?很简单,因为沪昆高速那条路最近!人们太相信导航,很少有人没事研究地图,所以很多人都上了当,当然这并不包括我.很多导航都是根据Dijks

C与C++在形参的一点小区别

先看一下下面的代码: int fun(a,b) int a; int b; { return 10; } void main(int argc, char ** argv) { fun(10); return; } 大家猜猜看它在VS小能通过编译吗? 哈哈,不啰嗦了,直接说结果,如果这段代码在一个.c文件里是可以通过编译的,在一个.cpp文件里是不能通过编译的. 很奇怪吧,想这应该是c与c++的一点小区别吧,最近在看nc源码,看到这种形参声明方式,感觉好神奇,还有就是它的船参个数比较神奇,只要实

LoRaWAN与LoRa的基础知识简介 教你看懂两者的区别

在物联网技术快速发展的今天,NB-IoT.LoRa.SigFox等技术名词经常进入我们的视野中,对于刚刚接触物联网领域的人来说,在一大堆名词面前可能会混淆.面对类似于LoRa和LoRaWAN这样容易混淆的名词,其实只要系统梳理一下就可以发现其中的区别.今天我们就来看看LoRaWAN与LoRa两者的区别: 总体而言,LoRa仅包含链路层协议,并且非常适用于节点间的P2P通信:同时,LoRa模块也比LoRaWAN便宜一点: LoRaWAN也包含网络层,因此可以将信息发送到任何已连接到云平台的基站.只

不懂网络营销?HTML,Javascript,语言太难?做网络运营营销,你必须掌握的能力

在如今的互联网时代,有一个岗位是基本每家企业人事部都会常常挂在嘴边的,网络营销人才,老板一直在招聘好的网络营销人才,因为他知道网络营销是每家企业都在争夺的命脉. 网络营销人才就是简单的互联网+营销.现在只懂互联网不懂营销,只懂营销又不懂互联网的人,注定会慢慢的被时间埋葬在互联网的长河中.因此现在很多企业都在找互联网人才,一些互联网的专业技能是做互联网运营的人,必须要掌握的.今天高级网络运营营销师王剑超,就给大家讲讲我们作为互联网人员应该重视的那些是必备的专业技能. 一.多角度扩展视野 做互联网的

网络通信协议的一点理解

网络编程的目的就是直接戒间接地通过网络协议和他计算机进行通讯. 网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台指主机:另一个就是找到主机后如何可靠高效的进行数据传输. Socket通常也称做“套接字”,是一种抽象层,应用程序通过它来发送和接收数据,就像应用程序打开了一个文件句柄,将数据读写到稳定的存储器上一样.使用Socket可以将应用程序添加到网络中,并与处于同一网络中的其他应用程序进行通信.一台计算机上的应用程序向socket写入的信息能够被另一台计算机上的另一个应用程序读

int&boolean——Java和C的一点小区别

Java和C的区别很多,不过估计这一点很多人都不知道. 今天面试时碰到这么道C语言题 求运行结果 int x = -1; while(!x!=0){ cout<<x<<endl; x=x*x; } cout<<"haha"<<i<<endl; 此题关键在于理解运算符优先顺序 while(!x!=0) 这句话的执行顺序: !x !=0 所以 !-1=false false!=0 所以循环不会执行 这道题我做的时候还是对自己的答案

iOS 网络GET和POST的区别

GET和POST是HTTP协议中HTTP请求的两种基本方法. HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议. HTTP的底层是TCP/IP.所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接.GET和POST能做的事情是一样一样的.你要给GET加上request body,给POST带上url参数,技术上是完全行的通的. 基本的区别 1. 就是GET把参数包含在URL中,POST通过request body传递参数 2.GET在浏览器回退时是

[网络编程] TCP、UDP区别以及TCP传输原理、拥塞避免、连接建立、连接释放总结

TCP.UDP都是属于运输层的协议,提供端到端的进程之间的逻辑通信,而IP协议(网络层)是提供主机间的逻辑通信,应用层规定应用进程在通信时所遵循的协议.一.UDP主要特点:传输的是用户数据报协议.1.UDP是无连接的,即发送数据之前不需要建立连接.2.UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制.3.UDP是面向报文的.UDP没有拥塞控制,很适合多媒体通信的要求.4.UDP支持一对一.一对多.多对一和多对多的交互通信.5.UDP的首部开销小,只有 8个字节.发送方 UDP对

angular js jquery中post请求的一点小区别

这也是最近遇到的坑,还是之前那个项目,现在要实现登录功能. 背景:注册功能之前已经跑通了.前端用的是jquery后台是springMVC.鉴于注册和登录有些接口功能是类似的(比如注册确保邮箱是没有注册过,而登录是确保注册过),于是后台还准备用注册的那套接口. 登录的接口get请求是没问题的,但是post却出了问题:后台收不到请求体里的内容. 后来发现是jquery和angular的post行为有些区别,于是我做了个实验. <!DOCTYPE html> <html lang="