上次跟朋友聊到网络方面的问题,我说在做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君,只剩无边无际的同情了。