当前位置:Linux教程 - Linux业界 - 用一个modem带动整个局域网上internet

用一个modem带动整个局域网上internet

现在我针对一个具体的情况给出解决的参考方法: 现在有一个小局域网,其中有一个Linux Box上有modem可以拨号上Internet, 要求局域网上的所有机器可以通过Linux Box上internet. 实施步骤如下: 1 准备PPP拨号连接,参考拨号上网的问题。 2 网络的基本配置应该完全正常,保证局域网内网络的连接没有问题。 3 准备内核,通常内核没有编译进forward/gateway/masquerade等选项,需要重新 配置并编译。在内核配置里加上以下几项: Code maturity level option Prompt for development/or ... (允许打开内核里的某些实验性代码选项) Networking options: Network firewalls IP: forward/gatewaying IP: firewalling IP: firewall packet logging IP: masquerading IP: ipautofw masquerading (如果你的应用不在已知伪装支持之列,打开此项) IP: ICMP masquerading IP: transparent proxy support (可选) IP: always defragment (强烈推荐) IP: accounting Network device support Dummy net driver support 4 重新配置网络。 a, 分配IP伪装地址。拨号上网顶多只有一个有效IP地址,所以Linux Box上的网卡 以及其他机器上的网卡上都只能分配伪装IP地址。好在IETF保留了一大堆伪装 地址可用: 一个A类网络地址 10.0.0.0 (网络掩码 255.0.0.0)   十六个B类网络地址 172.16.0.0 - 172.31.0.0 (网络掩码 255.255.0.0)  二百五十六个C类网络地址 192.168.0.0 - 192.168.255.0 (网络掩码 255.255.255.0) 按照VLSM(可变长子网掩码),你可以不太在意网络掩码,比如可自定义一个10.168.1.0/24 192.168.1.128/25等等,但192.0.0.0/8肯定是不对的。配置后的网络举例如下: 192.168.10.0/24 | 192.168.10.2--+ | eth0 +---------+ modem +--192.168.10.1------+linux box+-------ppp to isp | +---------+ 192.168.10.3--+ | ...... 需要注意的是,有很多ISP如263,169,col都用到了IP Masquerade技术,它们给拨号上网的 用户分配的也是伪装地址,所以你要避免你的设置与它们的分配重复。 b, 设置网关及DNS。Linux Box上的缺省网关在ppp建立后应该分配在ppp上,参见ppp的配置说明。 局域网上其他机器的缺省网关应指向Linux Box,如为192.168.10.1。这时候Linux Box相当于 一个简单的静态路由器,不过融合了IP Masquerade方式。如果你用Proxy代理服务器而且是用 集线器(hub)简单组网的话,这一步不是必须的,因为这时由Proxy来转发数据包,Linux Box不 再需要静态路由转发的功能。DNS通常设置为指向ISP的DNS服务器,也可以指向任一个DNS服务 器。如果用Proxy的话,在客户端可以不设DNS。在Linux Box上配置一个Cache Only的DNS也许 会提升一点点性能。 c, 允许Linux的IP转发功能,编辑/etc/sysconfig/network文件,设置FORWARD_IPV4=yes。 整个文件看起来像这样: NETWORKING=yes FORWARD_IPV4=yes HOSTNAME=host.your.domain.name DOMAINNAME=your.domain.name GATEWAYDEV= GATEWAY= 如果用proxy的话,没有必要打开这个选项(当然打开这个选项对proxy没有大的影响)。 打开这项可以让局域网上的其他伪装地址“透明”地访问Internet,不利之处正如raner 所说,针对具体的应用级协议要有相应的模块支持,已知的支持有Ping(ICMP),HTTP,ftp, NNTP,traceroute,telnet,IRC,POP&SMTP,VRML,WAIS,Archie,Real Audio Player,Gopher, True Speech Player,Internet Wave Player,Inetrnet Phone,Powwow,CU-SeeMe,VDOLive, PC-anywhere,Socket Watch,Linux net-acct package等。用Proxy的最大好处是可以缓存 以前浏览过的内容。两种方式都用上也许是个好注意(如果要计帐收钱可能不太方便)。 另外,这种情况下把GATEWAYDEV/GATEWAY空着好了,千万别设成eth0,拨号上网后,pppd 的defaulteroute选项会自动通知内核把ppp设成缺省网关的。 5 设置IP包转发策略/规则 只有打开了FORWARD_IPV4=yes才有效,如果用proxy则设不设没有关系,原因嘛前面已经讲过。 这时候要用到ipfwadm(ip forward administry)工具,用man ipfwadm看看都有什么参数, 简单的应用如下: ipfwadm -F -p deny