当前位置:Linux教程 - Linux资讯 - NAT Server

NAT Server

 虚拟 IP 与 NAT 技术   当你已经学会使用 ipchains 这一个 Linux 的功能来实现 IP 伪装和为网路建立简单的防范之后(这个功能等一下就会提到了),你就可以利用 Linux 来为您做更多的事情﹕其中有一个非常好的功能叫 NAT (Network Address Translating) 。使用 NAT有什么好处呢﹖   首先﹐如果您当初架设的网路使用了私有位址(就是虚拟 IP),而现在又想连上 internet ,虽然您可以对您的网路重新分配 IP 地址﹐但这样做是非常费心和隐藏的问题多多。这时候﹐ NAT 就可以帮到您了﹕您只需用一台 Linux 主机安装两片网路卡﹐一张使用合法 IP 地址来担当对外地连线﹐另外一张使用私有 IP 负责和内部网路沟通。   然后﹐您为那张对外连线的网卡建立多个 IP alias ﹐当收到传给那些 IP alias 的请求的时候﹐可以把这些请求通过 NAT 转送给内部真正负责网路服务的伺服器﹐而那些伺服器根本无需更改 IP 地址﹐依旧使用原来的私有 IP 就可以。   使用 NAT 还有一个好处是﹐可以分流网路负担 (load balancing) ﹐也就是说﹐您可以将同一个 IP alias 的请求分别导向好几台执行相同服务的伺服器。这样对于处理大量数据的服务是非常好用的。       安装第二块网路卡   好了,由『区域网路的架构』及上面提到的『NAT主机的设定』都可以知道,由于我们需要提供区域内的虚拟网路系统(区域网路,LAN),所以在你的 Linux 主机中应该要安装两块网路卡才是。不过,对于第二块网路卡的安装,在这里有些建议:基本上,第二张网路卡最好不用使用与第一张相同晶片的卡,例如你第一张卡使用 RTL 8139,那第二张卡最好使用别的卡。因为鸟哥曾经发现,在鸟哥的 RedHat 6.1 英文版中,安装两块相同的(同公司出的) RTL8139 ,结果竟然两张卡的输出输入都是经由第一张!也就是说,第二张卡根本就没有用处!并且,也很容易发生 eth1 与 eth0 捉错的情况!所以,请记得,『第二张网路卡不要使用与第一张网路卡相同晶片的卡!』   好了!假设你已经安装了第一块网路卡,而且也已经由『连上 Internet』的方法连上网际网路了,那接下来就是要开始安装第二块网路卡了,如何安装第二张网路卡呢?依序以下列的步骤安装就可以完成啰!   1. 关机、硬体安装:这个不用再提了吧!,先关机,然后拆开外壳,插入PCI网路卡即可;      2. 开机、硬体扫瞄:然后再开机,而于开机的过程中,你的 Linux 会主动去找到这一张网路卡(如果这张卡是有被 Linux 支援的!),果真如此的话,那在这一步骤中, Linux 会要求你输入 IP 与 GateWay 等等的 IP 位址,由于这一张网路卡是定义在内部网路使用的介面,因此你可以输入 192.168.1.2,而 子遮罩网路为 255.255.255.0,DNS与Gateway都写成自己 192.168.1.2 即可!      3. 安装网路卡驱动程式:如果在上一步骤中,你的网路卡并不能被捉到,哪就比较伤脑筋!请到前一个页面参考特殊的网路卡的驱动程式安装方法。      4. 检视设定 /etc/sysconfig/network-scripts/ifcfg-eth1:在安装完了网路卡的驱动程式之后,在 /etc/sysconfig/network-scripts/ 中,应该会有 ifcfg-eth1 这一个档案。这一个档案可以设定如下(当然,你也可以依自己的喜好设定):      [root@tsai network-scripts]# more ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static BROADCAST=192.168.1.255 IPADDR=192.168.1.2 NETMASK=255.255.255.0 NETWORK=192.168.1.0 ONBOOT=yes  5. 上面的设定中,就变成了:eth0为对外的连接介面,eth1为对内的连接介面!      6. 启动第二张网路卡:使用『ifup eth1』 来启动之。        区域网路与 Internet 连线示意图   基本上,我们连线区域网路的连线方法有如下面所示:      透过具有 NAT 功能的 Linux 主机来达成内部网路与外部网路的沟通!详细的说明可以到『区域网路的架构』来看看。       架设 NAT   好了,说了这么多,终于要实地的演练 NAT 机器了!如何设定呢?这里要再提醒一下:   · 第一张网路卡 eth0 为对外的连线介面,具有实体 IP;   · 第二张网路卡 eth1 为对内的连线介面,为虚拟 IP。   基本上,你要做的事情其实真的很简单,只要:   1. 确定第一张网路卡可以连上网际网路:关于对外的连线上网际网路方法请参考『连上 Internet 』的说明,这里就不多说了;      2. 确定第二张网路卡可以正常的启动:这是一张具有虚拟 IP 的网路卡,请确定他可以被启动,另外,这里的设定是这样的:   o IP为 192.168.1.2;   o 子遮罩网路为 255.255.255.0;   o gateway 为 192.168.1.2;   o 惯用的 DNS server 为 139.175.10.20;      3. 开启 IPV4:确定 /etc/sysconfig/network 这个档案中,有下列这一行:FORWARD_IPV4=yes,这是开启传送 IP 服务的一个设定。如果没有的话,请将这一行加入 network 这个档案中,然后执行:   # /etc/rc.d/init.d/network reload  4. 确定 ipchains 已经编译进核心:这个比较麻烦,不过,如果你是用这个网页提供的方法进行安装 Linux 的话,这个程式已经被编译进核心了,所以不用理他没关系!      5. 设定 192.168.1.0-192.168.1.255 这一个网段的 IP 可进行 NAT 服务:接下来就是直接设定了,只要依序执行底下的咚咚:    /sbin/ipchains -P forward DENY /sbin/ipchains -A forward -j MASQ -s 192.168.1.0/24 -d 0.0.0.0/0 /sbin/depmod -a /sbin/modprobe ip_masq_FTP /sbin/modprobe ip_masq_raudio /sbin/modprobe ip_masq_irc /sbin/modprobe ip_masq_autofw /sbin/modprobe ip_masq_cuseeme /sbin/modprobe ip_masq_portfw /sbin/modprobe ip_masq_quake /sbin/modprobe ip_masq_vdolive /sbin/modprobe ip_masq_user /sbin/modprobe ip_masq_mfw  6. 这样就可以了!如果你觉得这样很麻烦的话,这里鸟哥已经有一个写好的批次档,与说明档,你可以下载使用,使用的方法就更简单了:   # mkdir /usr/driver # mkdir /usr/driver/nat <== 建立一个 nat 的子目录 # mv nat.sh /usr/driver/nat <== 将档案移动到 nat 这个目录下 # cd /usr/driver/nat # chmod 744 nat.sh <== 修改 nat 成为可执行的档案 # ./nat.sh all <== 开始执行  7. 加上一个参数 all 是让两个网域可以连上这部 NAT 主机!   不要怀疑,这样就已经作好 NAT 主机的基本设定了!如果你还要设定更精细的防火墙的话,你可以去找一些比较高深的 HOWTO 的文件去钻研,我这里就只介绍你可以作为 NAT 的基本设定喔!      8. 将上面的咚咚写入开机自动执行档:由于每次开机都要进行一次 NAT 的设定是很烦的一件事,因此我们可以将上面的一大串字全部写在 /etc/rc.d/rc.local 这个开机自动执行档案的最底下,如此一来,每次开机就会自动将 NAT 的设定载入你的主机中了!      9. 设定 Windows 的网路设定:好了,主机的部分设定完了,接下来就是各个 Windows 个人电脑的设定了,以 Windows 98 为例,   o 你可以在『开始』->『设定』->『控制台』->『网路』开启网路相关设定,或者是在『网路上的芳邻』按右键,选内容,也可以进入网路设定内容;   o 在网路的内容中,察看你所需要的通讯协定是否存在了,主要是有 NetBEUI 、IPX/SPX 、及TCP/IP 这几个设定,如果不存在的话,请按『新增』->『通讯协定』->选『MicroSoft』便可选择相关的通讯协定了;   o 进入 TCP/IP 中,在 IP 项目,填入 192.168.1.xxx ,然后子遮罩网路填选 255.255.255.0,在通讯闸(最重要)的部分填入 NAT 主机的虚拟 IP(这里是用 192.168.1.2),然后再到 DNS 填入惯用的 DNS 主机(可以是 192.168.1.2 或者是 139.175.10.20);   o 重新开机后,就可以连上 Internet 啰!(以上相关的设定请参考小弟写的一篇咚咚)   10. 设定完成!        本章问题讨论:   1. Q:何谓『虚拟 IP 』,与『实体 IP 』或者『固定 IP 』『动态 IP 』有啥不同?   A:   『实体 IP 』:在网路的世界里,为了要辨识每一部电脑的位置,因此有了电脑 IP 位址的定义。一个 IP 就好似一个门牌!例如,你要去微软的网站的话,就要去『 207.46.197.101 』这个 IP 位置!这些可以直接在网际网路上沟通的 IP 就被称为『实体 IP 』了。   『虚拟 IP 』:不过,众所皆知的,IP 位址仅为 xxx.xxx.xxx.xxx 的资料型态,其中, xxx 为 1-255 间的整数,由于近来电脑的成长速度太快,实体的 IP 已经有点不足了,好在早在规划 IP 时就已经预留了三个网段的 IP 做为内部网域的虚拟 IP 之用。这三个预留的 IP 分别为:   10.0.0.0 - 10.255.255.255   172.16.0.0 - 172.31.255.255   192.168.0.0 - 192.168.255.255  不过,由于是虚拟 IP ,所以当您使用这些地址的时候﹐当然是有所限制的,限制如下:   私有位址的路由资讯不能对外散播   使用私有位址作为来源或目的地址的封包﹐不能透过Internet来转送   关于私有位址的参考纪录(如DNS)﹐只能限于内部网路使用  这给我们架设IP网路做成很大的方便﹐比如﹕即使您目前的公司还没有连上Internet﹐但不保证将来不会啊。如果使用公共IP的话﹐如果没经过注册﹐等到以后真正要连上网路的时候﹐就很可能和别人冲突了。也正如前面所分析的﹐到时候再重新规划IP的话﹐将是件非常头痛的问题。这时候﹐我们可以先利用私有位址来架设网路﹐等到真要连上intetnet的时候﹐我们可以使用IP转换协定﹐如NAT (Network Addresss Translation)等技术﹐配合新注册的IP就可以了。   『固定 IP 』与『动态 IP 』:基本上,这两个东西是由于近来网路公司大量的成长下的产物,例如,你如果向中华电信申请一个商业型态的 ADSL 专线,那他会给你一个固定的实体 IP ,这个实体 IP 就被称为『固定 IP 』了。而若你是申请计时制的 ADSL ,那由于你的 IP 可能是由数十人共同使用,因此你每次重新开机上网时,你这部电脑的 IP 都不会是固定的!于是就被称为『动态 IP』或者是『浮动式IP』。基本上,这两个都是『实体IP』,只是网路公司用来分配给用户的方法不同而产生不同的名称而已!   这里只有说了一些概念性的东西,基本是,IP是很麻烦的,小弟也不甚了解,例如子网路遮罩的计算等等!强烈的建议初学者到 study-area 这个网站去看看,相信对你往后的电脑网路概念有很大的帮助喔!    


[1] [2] 下一页 

 

(出处:http://www.sheup.com)


上一页 [1] [2]