分享
 
 
 

如何用Linux安装TCP/IP路由器

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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

* Linux 当 Router 的先决条件。

* 如何规划 Subnet 的 IP address。

* 如何设定 Router 的网路位址。

* 如何设定 Router 的 Kernel Routing table。

* 如何设定 Subnet 中机器的网路位址与 Kernel Routing table。

* 设定 Proxy ARP 来连通 Subnet。

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

Linux 当 Router 的先决条件

要以 Linux 当 Router,首先必须确认你的 Linux Kernel 中有支援 IP Forwarding

的功能,也就是在 make Kernel 时,要选择 IP Forwarding 的选项。

在图中,Router 分别以两块网路卡连接 Class B net 与 Subnet,所以让

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,将那种网路卡的选项包含进来。

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

如何规划 Subnet 的 IP address

图中 Router 的两个网路介面分别连接两个 net,且各有其 IP address,

eth0=140.115.50.67 为连接 Class B net 的 IP address

eth1=140.115.50.161 为连接 Subnet 的 IP address

现在我们就要来看看如何规划 Subnet.

首先我们要先决定 Subnet 中有几台机器,也就是要划分几个 IP address 於 Subnet

中,我以 Subnet 中有 32 台机器为例加以说明.因此 Subnet 之 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 为你的 Subnet address,只要不和别人相冲就好了.

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

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 的网路位址

决定好 Subnet 的 IP address 後,接下来就是 Config eth0 和 eth1 这两个

网路介面,於 /etc/rc.d/rc,inet1 中加入

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.inet1 或重新开机.可以利用 ifconfig 指令来检查设定是否正确,

以下就是 Router 值行 ifconfig 的输出:

lo Link encap:Local Loopback

inet 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 Ethernet HWaddr 04:00:23:53:90:21

inet 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 Ethernet HWaddr 12:30:51:47:23:85

inet 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.inet1

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.inet1 或重新开机,可以利用 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

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

如何设定 Subnet 中机器的网路位址与 Kernel Routing table

Subnet 中的机器其设定方法较 Router 简单.其只有一张网路卡,即 eth0,所以在

机器 ds170 的 /etc/rc.d/rc.inet1 中加入

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 来连通 Subnet

以上设定完成後,你就可以由 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,其功能就是代 subnet 中的机

器回应 class B 中机器所 broadcast 的 ARP,让 class B 中要送往 subnet 的

package 先送到 router, 之後 router 再帮其送往 subnet 中的机器.

所以应该在 Router 的 /etc/rc.d/rc.inet1 中加入

arp -s 140.115.50.170 04:00:23:53:90:21 pub

^^^^^^^^^^^^^^^^^

此为 Router eth0 介面的 hardware address

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有