⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network-solution.html

📁 学习linux的工具书
💻 HTML
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
   <meta name="Author" content="Edward Fu">
   <meta name="GENERATOR" content="Mozilla/4.05 [zh-CN] (X11; I; Linux 2.1.127 i686) [Netscape]">
   <title>Freesoft Linux FAQ -- 连入校园网的Linux解决方案</title>
</head>
<body>
发信人: raner (毕设好无聊呀!),
信区: Linux
<br>标&nbsp; 题: 连入校园网的Linux解决方案
<br>发信站: BBS 水木清华站 (Sat Apr 11 16:13:53 1998)
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;现在正值校园网改造, 许多教研组都接入了校园网, 但有个常见的问题是IP地址不够,
<br>&nbsp;这时用Linux的IP-Masquerade技术很不错. 可以实现子网内没有合法IP的机器透明
<br>&nbsp;访问Internet(FTP/HTTP/Email等). 许多地方已经在用Linux做IP-Masq了,
我写这篇
<br>&nbsp;文章主要是向一些还不太熟悉的同志介绍一下. 装好了Linux, 可以当router,
DNS/FTP
<br>&nbsp;/HTTP/Email/telnet/xdm... Server, 而对机器配置的要求很低, 还算是个"性价比"
<br>&nbsp;高的解决方案吧 :-)
<br>&nbsp;
<br>&nbsp;一般来说进入屋内的就是Hub/Switch上出来的一根网线, 接入方法大致有两种:
<br>&nbsp;(1) 网线接router机器的网卡上,采用路由方法将局域网连入校园网,
这样屋内的局域
<br>&nbsp;&nbsp;&nbsp;&nbsp; 网与外面是隔离的
<br>&nbsp;(2) 网线接Hub上, 采用Hub级连方式连入校园网, 这样屋内的局域网并入外面的子网
<br>&nbsp;
<br>&nbsp;1. 通过Linux Router连入校园网
<br>&nbsp;
<br>&nbsp; 装一台有两块网卡的机器(486/586都行), 装Linux做router, 跑IP-Masquerade.
<br>&nbsp; 这种接入方法有firewall的功能, 外面的机器无法直接访问屋内子网.
推荐使用
<br>&nbsp; RedHat Linux(下面的示范用RedHat), 安装配置简单, 易学易用. 关于Linux的
<br>&nbsp; 获取,安装请参见Linux版相关文章. 装好后进行以下配置:
<br>&nbsp;
<br>&nbsp; 首先当然要Linux Kernel能找到两块网卡了, 一般在/etc/lilo.conf中加上这么一句
<br>&nbsp; append="ether=irq,io,eth1" 就可以找到第二块网卡了(irq,io填网卡的IRQ,IO,
<br>&nbsp; 若填0,0可以自动测试). 另外好多PCI的网卡kernel都能自动测到, 无需加内核参数.
<br>&nbsp; 然后运行lilo更新一下LILO就可以重起试验了.
<br>&nbsp;
<br>&nbsp; 接下来就是配IP地址和网关等东西:
<br>&nbsp; /etc/sysconfig/network 下面是设gateway的地方,
<br>&nbsp;&nbsp;&nbsp;&nbsp; NETWORKING=yes
<br>&nbsp;&nbsp;&nbsp;&nbsp; FORWARD_IPV4=yes
<br>&nbsp;&nbsp;&nbsp;&nbsp; HOSTNAME=host.your.domain.name
<br>&nbsp;&nbsp;&nbsp;&nbsp; DOMAINNAME=your.domain.name
<br>&nbsp;&nbsp;&nbsp;&nbsp; GATEWAYDEV=eth0
<br>&nbsp;&nbsp;&nbsp;&nbsp; GATEWAY=166.111.68.1(for example)
<br>&nbsp; GATEWAYDEV是指可以上 Internet那块网卡, GATEWAY是指你们的网关
<br>&nbsp;
<br>&nbsp; /etc/sysconfig/network-scripts/
<br>&nbsp;下面有针对每块网卡的配置文件
<br>&nbsp; ifcfg-lo, ifcfg-eh0, ifcfg-eth1
<br>&nbsp;里面可以设你的IP地址, 广播地址, 网络号等, 设对了之后系统boot时就会自动建立正确
<br>&nbsp;的静态路由表. 一般一块网卡接外面校园网, 有合法的IP地址, 另一块网卡接内部的
<br>&nbsp;Intranet, 使用192.168等内部IP地址. 举个例子, 对外的eth0网卡地址为166.111.68.x,
<br>&nbsp;对内设为192.168.1.1(eth1), 并给子网内的机器分配192.168.x.x的伪IP地址,
将它们的
<br>&nbsp;gateway设为192.168.1.1就行了
<br>&nbsp;
<br>&nbsp;然后就是要建立IP-Masquerade了, 这几句可以加在/etc/rc.d/rc.local的最后
<br>&nbsp;
<br>&nbsp;&nbsp;&nbsp; echo "Starting IP-Masquerade service:&nbsp; ipfwadm"
<br>&nbsp;&nbsp;&nbsp; ipfwadm -F -p deny&nbsp;&nbsp;&nbsp;&nbsp; 缺省不进行IP包的forward
<br>&nbsp;&nbsp;&nbsp; ipfwadm -F -a m -S 192.168.0.0/16 -D 0.0.0.0/0
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
对192.168子网进行NAT(Network Address Translation)
<br>&nbsp;&nbsp;&nbsp; insmod ip_masq_ftp&nbsp;&nbsp;&nbsp;&nbsp; 加入ftp模块,
使子网能够透明访问外面的ftp
<br>&nbsp;
<br>&nbsp;这样就行了, Linux对192.168.0.0子网上的IP包会自动进行IP地址转换操作,
具体说就
<br>&nbsp;是在192.168.x.x往外发IP包时Linux kernel自动将source IP替换为Linux的valid
IP,
<br>&nbsp;并选一个新的source port, 这个source port就对应了原来的机器, kernel会造一个
<br>&nbsp;masquerade表. 而等到对方的机器回应后Linux机器根据返回IP包的port查masquerade
<br>&nbsp;表找出源机器, 然后将该包送回给子网内的机器, 这样就实现了子网内的假IP地址对外
<br>&nbsp;面Internet的透明访问. 现在Linux的IP-Masquerade已经实现了TCP,UDP和ICMP的
<br>&nbsp;masquerade.
<br>&nbsp;
<br>&nbsp;这样做的缺陷是所有连接应该由子网内首先发起, 因为由外面的机器发起的连接无法访
<br>&nbsp;问子网内的机器. 因此在一些服务上可能有问题, 如ftp, 而这就要通过相应的module
<br>&nbsp;来实现,insmod ip_masq_ftp加入ftp module模块后就可以实现ftp访问了,
这是通过检
<br>&nbsp;测IP包来自动替换相应协议的某些地址来实现的. 类似的module还有ip_masq_irc.o,
<br>&nbsp;ip_masq_raudio.o等, 都是针对相应协议的.
<br>&nbsp;
<br>&nbsp; 这种方式比用proxy的好处在于它是"透明"地访问外面的Internet, 无需对子网内机器
<br>&nbsp; 进行什么特别设置(就是设一下gateway/DNS就行了), 可以省出Netscape/IE等的proxy
<br>&nbsp; 地方. 假如还要进行计费的话, 可以去找Linux下进行IP流量统计的包,
装上就行了
<br>&nbsp;
<br>2. 通过Hub级连接入Internet
<br>&nbsp;
<br>&nbsp; 这种方法是指将switch/hub的引出的网线直接接入到自己局域网的Hub上,
这样自己的
<br>&nbsp; 子网就相当于并入外面的大子网内了. 这样接的好处是大家同处同一子网内,
Windows
<br>&nbsp; 的网上邻居能够看见, 但是这样就无法实现firewall的功能了.
<br>&nbsp;
<br>&nbsp; 一般难以做到屋内每台机器都申请了合法的IP地址, 这样有valid IP的机器可以出
<br>&nbsp; router, 而没有valid IP的机器只能在subnet内游弋, 无法出router(router处设了
<br>&nbsp; static MAC-IP表), 或者先telnet到valid IP机器上再出去. 我看到好些屋是这么
<br>&nbsp; 接的, 感觉不太方便, 其实这样也是可以设IP-Masquerade的. 装一台有合法IP的
<br>&nbsp; Linux机器(只要一块网卡)就行了.
<br>&nbsp;
<br>&nbsp; 具体的做法与第一种类似, 就是在设谁能使用IP-Masq服务时要格外小心,
不然就有可
<br>&nbsp; 能被别人盗用了, 最好也采用static MAC-IP对应技术, 使Masq服务只限于自己屋的几
<br>&nbsp; 台特定机器.也可以采用alias的方法, 使Linux机器bind两个IP(一个对外一个对内),
<br>&nbsp; 这样逻辑上会清楚一些
<br>&nbsp;
<br>3. Linux做网桥
<br>&nbsp;
<br>&nbsp; 比如说你有两个子网, 想用网桥把它们连起来, Linux就可以用来做软件网桥.
<br>&nbsp; 首先就是要编译一个支持网桥的内核, 然后download一个叫brcfg的utility,
运行
<br>&nbsp;
<br>&nbsp; brcfg -enable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
打开网桥
<br>&nbsp; ifconfig eth0 promisc
<br>&nbsp; ifconfig eth1 promisc&nbsp;&nbsp;&nbsp; 使两块网卡都进入promisc模式
<br>&nbsp; (这些也可以写进/etc/rc.d/rc.local中)
<br>&nbsp;
<br>&nbsp; 好了, 你的两个子网已经连成一个逻辑上的大子网了, 你可以把netmask改大些,
<br>&nbsp; 包括两个子网就行了. 这比用router连的好处在于它们是在同一个子网内,
因此网络
<br>&nbsp; 邻居什么的都能看见, 要不然就得用wins之类的东西了
<br>&nbsp;
<br>&nbsp; 假如你用了前面第一种接入方法而又想能够看见校园网上的机器, 也可以使用网桥,
<br>&nbsp; 把两块网卡都置成promisc模式并brcfg -enable就好了
<br>&nbsp;
<br>4. Linux上架proxy
<br>&nbsp;
<br>&nbsp; Linux上的proxy主要有SOCKS5, squid, fwtk2(TIS Firewall Toolkit),
apache等
<br>&nbsp; 它们的功能各异, 架设方法也不大一样, 我不想在这里写了. 华南木棉站Unix斑竹
<br>&nbsp; ali曾经写乐好多架proxy的文章, 大家可去看他的精华区
<br>&nbsp; Linux还有许多有用的网络功能, 大家边用边体会了
<br>&nbsp;
<br>--
<br>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.68.98]
<br>&nbsp;
<br>&nbsp;
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -