选择显示字体大小

如何用linux安装tcp/ip路由器

以下将针对各个主题加以说明:

* linux 当 router 的先决条件。
* 如何规划 su.net 的 ip address。
* 如何设定 router 的网路位址。
* 如何设定 router 的 kernel routing table。
* 如何设定 su.net 中机器的网路位址与 kernel routing table。
* 设定 proxy arp 来连通 su.net

----------------------------------------------------------------------------

linux 当 router 的先决条件

要以 linux 当 router,首先必须确认你的 linux kernel 中有支援 ip forwarding
的功能,也就是在 make kernel 时,要选择 ip forwarding 的选项。

在图中,router 分别以两块网路卡连接 class b.net 与 su.net,所以让
linux 在开机的时候就要抓到这两块网路卡,成了一先决的条件。其方法是在

/etc/lilo。conf 中加入

append="ether=irq_0,io_port_0,eth0 ether=irq_1,io_port_1,eth1"

後,再值行 lilo -c lilo。conf,之後再重新开机,应该就可以抓到两块网路卡了。
要检查是否有抓到两块网路卡的话,可以看 /proc.net/dev 档中是否有 eth0 和
eth1 两个网路介面,或是值行 ifconfig,看是否有 eth0 和 eth1 两个网路介面,
若是没有的话,有可能是你的 kernel 没有支援那种网路卡,那就必须再重新
make kernel,将那种网路卡的选项包含进来。

----------------------------------------------------------------------------

如何规划 su.net 的 ip address

图中 router 的两个网路介面分别连接两个.net,且各有其 ip address,
eth0=140.115.50.67 为连接 class b.net 的 ip address
eth1=140.115.50.161 为连接 su.net 的 ip address
现在我们就要来看看如何规划 su.net.
首先我们要先决定 su.net 中有几台机器,也就是要划分几个 ip address 於 su.net
中,我以 su.net 中有 32 台机器为例加以说明.因此 su.net 之 ip 范围为
140.115.50.160 ~ 140.115.50.191,why??

140.115.50.160 ===> 140.115.50.101 00000
^^^^^^^^^^^^^^ ^^^^^
.network address host address

140.115.50.191 ===> 140.115.50.101 11111
^^^^^^^^^^^^^^ ^^^^^
.network address host address

.netmask 皆为

255.255.255.224 ===> 255.255.255.111 00000
^^^^^^^^^^^^^^^ ^^^^^
其 broadcast 皆为

140.115.50.191 ===> 140.115.50.101 11111
^^^^^^^^^^^^^^ ^^^^^

host address 有 5 个 bit,因此可以决定 2^5 = 32 台机器,当然同理你也可以用
140.115.50.96 ~ 140.115.50.127 为你的 su.net address,只要不和别人相冲就好了.

所以我们可以将 su.net 的网路设定做一个整理:

ip address = 140.115.50.160 ~ 140.115.50.191
.netmask = 255.255.255.224
broadcast = 140.115.50.191
.network address = 140.115.50.160

----------------------------------------------------------------------------

如何设定 router 的网路位址

决定好 su.net 的 ip address 後,接下来就是 config eth0 和 eth1 这两个
网路介面,於 /etc/rc.d/rc,.net1 中加入

ifconfig eth0 140.115.50.67.netmask 255.255.0.0 broadcast 140.115.255.255

ifconfig eth1 140.115.50.161.netmask 255.255.255.224 broadcast 140.115.50.191

後,再执行 rc..net1 或重新开机.可以利用 ifconfig 指令来检查设定是否正确,
以下就是 router 值行 ifconfig 的输出:

lo link encap:local loopback
.net addr:127.0.0.1 bcast:127.255.255.255 mask:255.0.0.0
up broadcast loopback running mtu:2000 metric:1
rx packets:0 errors:0 dropped:0 overruns:0
tx packets:24 errors:0 dropped:0 overruns:0

eth0 link encap:10mbps ethe.net hwaddr 04:00:23:53:90:21
.net addr:140.115.50.67 bcast:140.115.255.255 mask:255.255.0.0
up broadcast running multicast mtu:1500 metric:1
rx packets:107061 errors:0 dropped:0 overruns:0
tx packets:22060 errors:0 dropped:0 overruns:0
interrupt:5 base address:0x290 memory:d0000-d4000

eth1 link encap:10mbps ethe.net hwaddr 12:30:51:47:23:85
.net addr:140.115.50.161 bcast:140.115.50.191 mask:255.255.255.224
up broadcast running multicast mtu:1500 metric:1
rx packets:107061 errors:0 dropped:0 overruns:0
tx packets:22060 errors:0 dropped:0 overruns:0
interrupt:6 base address:0x350 memory:d8000-db000

----------------------------------------------------------------------------

如何设定 router 的 kernel routing table

网路位址设定好後,接下来就是要设定 kernel routing table,当 router 收到一个
packet 时,会依照 packet 中的目的位址去 kernel routing table 比对,而决定该往
那一个网路介面送,所以 kernel routing table设错了,packet 就无法由正确的网路介
面送到目的地.

kernel routing table 的设定亦加入於 /etc/rc.d/rc..net1

route add .net 140.115.0.0.netmask 255.255.0.0 eth0

route add .net 140.115.50.160.netmask 255.255.255.224 eth1

route add default gw 140.115.1.254 metric 1
^^^^^^^^^^^^^^^^^^^^^^^^^
此为通往校外的 gateway

後,再执行 rc..net1 或重新开机,可以利用 route 指令来检查设定是否正确,以下就是
router 值行 route 的输出:

destination gateway genmask flags mss window use iface
140.115.50.160 * 255.255.255.224 u 1436 0 234 eth1
140.115.0.0 * 255.255.0.0 u 1436 0 29125 eth0
127.0.0.0 * 255.0.0.0 u 1936 0 34 lo
default 140.115.1.254 * ug 1436 0 79 eth0

----------------------------------------------------------------------------

如何设定 su.net 中机器的网路位址与 kernel routing table

su.net 中的机器其设定方法较 router 简单.其只有一张网路卡,即 eth0,所以在
机器 ds170 的 /etc/rc.d/rc..net1 中加入

ifconfig eth0 140.115.50.170.netmask 255.255.255.224 broadcast 140.115.50.191

route add .net 140.115.50.160.netmask 255.255.255.224 eth0

route add default gw 140.115.50.161 metric 1
^^^^^^^^^^^^^^^^^^^^^^^^^^
此我们将 gateway 设为 router 的 eth1 ip address

----------------------------------------------------------------------------

设定 proxy arp 来连通 su.net

以上设定完成後,你就可以由 router 连上 ds170,亦可以由 ds170 联上 router, 但是
若要由 ds170 直接连到外面 class b.net 上之机器,如 dslab,则无法直接连通, 因为
ds170 直接将 package(注意是资料不是arp) 送到 router(可由 static routing
table 中决定),router 再帮你在 class b.network 中送 arp,所以 dslab 会听到此
arp ,但当 dslab 要将 arp 送回来时,由於 router 或 gateway 会将 broadcast 和
multicast 的 package 挡下来,而不会forwarding,所以说 dslab 回应的 arp 无法让
ds170 所收到 ,於是我们需在 router上设定 proxy arp,其功能就是代 su.net 中的机
器回应 class b 中机器所 broadcast 的 arp,让 class b 中要送往 su.net
package 先送到 router, 之後 router 再帮其送往 su.net 中的机器.

所以应该在 router 的 /etc/rc.d/rc..net1 中加入

arp -s 140.115.50.170 04:00:23:53:90:21 pub
^^^^^^^^^^^^^^^^^
此为 router eth0 介面的 hardware address   


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons