实例解析—用Linux操作系统构建的路由器

一.网络整体框架

  网络结构如图,Linux路由器这台计算机标识为A,它与三个网段相连,192.168.1.0/24,10.0.0.0/8,172.16.0.0/16.

  A计算机必须拥有三块网卡,分别与三个网段相连。

  假设:

  eth0与172.16.0.0相连,

  eth1与10.0.0.0相连,

  eth2与192.168.1.0相连。

  二.具体网络设置

  2.1配置eth0

  首先来配置eth0.给这个网络接口分配地址172.16.1.1,运行下列命令:

  # ifconfig eth0 172.16.1.1 netmask 255.255.0.0

  为了使这个地址不再计算机重新启动后消失,编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,修改为如下格式:


DEVICE = eth0

ONBOOT = yes

BROADCAST = 172.16.255.255

NETWORK = 172.16.0.0

NETMASK = 255.255.0.0

IPADDR = 172.16.1.1

  增加一条静态路由:

  # route add -net 172.16.0.0 netmask 255.255.0.0

  这样系统中就增加了一条静态路由:

  # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

  172.16.0.0 * 255.255.0.0 U 0 0 0 eth0

  2.2配置eth1

  接下来,配置eth1,eth1与10.0.0.0网段相连,分配给它的地址是10.254.254.254,使用ifconfig命令为它配置参数:

  # ifconfig eth1 10.254.254.254 netmask 255.0.0.0

  同样编辑/etc/sysconfig/network-scripts目录下的ifcfg-eth1文件,内容如下:


DEVICE = eth1

ONBOOT = yes

BROADCAST = 10.255.255.255

NETWORK = 10.0.0.0

NETMASK = 255.0.0.0

IPADDR = 10.254.254.254

  再增加一条静态路由:

  # route add -net 10.0.0.0 netmask 255.0.0.0

  网络中当前的路由表为


# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

172.16.0.0 * 255.255.0.0 U 0 0 0 et

 2.3配置eth3

  最后配置eth3,它连接192.168.1.0网段,分配的IP地址是192.168.1.254,执行下列命令:

  # ifconfig eth2 192.168.1.254 netmask 255.255.255.0

  编辑/etc/sysconfig/network-scripts目录下的ifcfg-eth2文件,内容如下:


DEVICE = eth2

ONBOOT = yes

BROADCAST = 192.168.1.255

NETWORK = 192.168.1.0

NETMASK = 255.255.255.0

IPADDR = 192.168.1.254

  再增加一条静态路由:

  # route add -net 192.168.1.0 netmask 255.255.255.0

  这样网络中就有三条静态路由记录了:


# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

172.16.0.0 * 255.255.0.0 U 0 0 0 eth0

10.0.0.0 * 255.0.0.0 U 0 0 0 eth1

192.168.1.0 * 255.255.255.0 U 0 0 0 eth2

  2.4配置缺省路由和系统转发

  2.4.1建立缺省路由

  还要为系统增加一条缺省路由,因为缺省的路由是把所有的数据包都发往它的上一级网关(假设地址是172.16.1.100,这个地址依赖于使用的网络而定,由网络管理员分配),因此增加如下的缺省路由记录:

  # route add default gw 172.16.1.100

  或者

  #ip route add default via 172.16.1.100 dev eth0

  这样系统的静态路由表建立完成,它的内容是


# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

172.16.0.0 * 255.255.0.0 U 0 0 0 eth0

10.0.0.0 * 255.0.0.0 U 0 0 0 eth1

192.168.1.0 * 255.255.255.0 U 0 0 0 eth2

default 172.16.1.100 0.0.0.0 UG 0 0 0 eth0

  2.4.2建立路由转发

  最后一步,要增加系统的IP转发功能。这个功能由/proc/sys/net/ipv4目录下的ip_forward文件控制,执行如下命令打开ip转发功能:

  echo 1 > /proc/sys/net/ipv4/ip_forward

  或者

  /etc/sysctl.conf文件,让包转发功能在系统启动时自动生效:

  # Controls IP packet forwarding

  net.ipv4.ip_forward = 1

  iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

  #iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE

  参数说明:

  -t nat:调用NAT表,调用这个说明遇到了产生新的连接的包。

  -A POSTROUTIN:指定信息包打算离开防火墙时改变它们的规则,意即使用NAT。

  -s 192.168.1.0/255.255.255.0:要进行NAT转换的源地址,也就是内网地址。

  -o eht0:输出接口为eth0。

  -j MASQUERADE:指定进行地址伪装,意即将内网地址伪装成外接口eth0的地址进行传输。

  整条语句的意思就是将内网向外连接的数据包的地址转换为外网接口的地址并从外接口转发,同时外

  网访问内网的连接将被映射到相应的内网地址。

  Iptables上的设置可用命令iptables -t nat –nvL查看。

  保存iptables配置。

  /etc/rc.d/init.d/iptables save

  使用这条命令就可以将iptables配置写入到文件/etc/sysconfig/iptables中去了。

  重启iptables使配置生效。

  service iptables restart

  2.4.3 常用命令


ip route del default

iptables -t filter –nvL

iptables -t nat -nvL

ip route ls

ip route delete 169.254.0.0/16

service iptables save

watch iptables -nvL

  三.测试路由器的工作情况。

  在linux路由器上测试:

  第一步,测试自身网络是否工作正常,执行如下命令

  ping 172.16.1.1

  ping 192.168.1.254

  ping 10.254.254.254

  如果这些地址都能ping通,则第一步通过,否则查找原因,排除错误。

  第二步,测试与上一级网关之间是否连通

  ping 172.16.1.100

  如果通畅,则正常;否则查找错误原因。

  在192.168.1.0网络内测试,假设它的地址是192.168.1.1,

  第一步,测试自身是否工作正常, ping 192.168.1.1

  第二步,测试与网关是否连通, ping 192.168.1.254

  第三步,测试与10.254.254.99是否连通,这是10.0.0.0网段内的一台计算机 ping 10.254.254.99

  第四步,测试与外网地址是否连通 ping 172.16.1.100 如果连通了,表示路由器配置正确,否则,查找原因,并排除之。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-01 19:39:11

实例解析—用Linux操作系统构建的路由器的相关文章

实例解析:用Linux操作系统构建的路由器

Linux路由器这台计算机标识为A,它与三个网段相连,192.168.1.0/24,10.0.0.0/8,172.16.0.0/16. A计算机必须拥有三块网卡,分别与三个网段相连. 假设: eth0与172.16.0.0相连, eth1与10.0.0.0相连, eth2与192.168.1.0相连.首先来配置eth0.给这个 网络接口分配地址172.16.1.1,运行下列命令: # ifconfig eth0 172.16.1.1 netmask 255.255.0.0 为了使这个地址不再计算

Linux操作系统中用PHP构建网站详解

如何架设一个新闻系统呢?一个完整的新闻系统不仅仅只包括供浏览的新闻界面,它还包括许多功能的控制和后台管理的强劲功能.那么这些功能内的子功能又如何调度分配呢?下面就来介绍一下各功能的调配控制.新闻系统的实现是简单的,但也可以说是非常复杂的. 新闻系统可分为三大部分:管理员登入系统,新闻管理系统,用户浏览系统.整个过程是简单的: 1.管理人员发布新闻-->数据库-->用户浏览新闻 2.发现问题-->登入管理系统-->编辑修改新闻 以上流程看似简单,但实现起来却并不是那么简单,这是个系统

路由器连接实例解析

路由器连接设备用ADSL上网,有两个soho中小企业路由器连接,均4,已成功1分4,但目前有5户,即其中要第一个由出来后的一条线再进第二个由后再一分二,这种情况比较普遍,下面我们看一下路由器连接的原理.498)this.w idth=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="路由器连接实例解析" width="600" height="400&q

linux操作系统下从其他服务器获取的xml字符串中文为乱码,在本地无法解析

问题描述 一个javaweb项目部署在一台服务器上,服务器采用的是linux操作系统,调用其他公司提供的webservice接口获取到一个xml的字符串,然后使用dom在本地解析,得到的字符串是乱码,请问高手们这个问题怎么解决.publicstaticList<Product>readProductDomXml(Stringstr)throwsException{List<Product>products=newArrayList<Product>();Document

Java运用设计模式中的建造者模式构建项目的实例解析_java

1.建造者模式概念定义: 将一个复杂的对象构建与其表示相分离,使得同样的构建过程可以创建不同的表示: 核心 : 构建与表示分离,同构建不同表示 区别于 抽象工厂模式 : (1)与抽象工厂模式 相似,因为它也可以创建复杂对象.主要的区别是建造者模式着重于 一步步构造一个复杂对象,关注的是零件类型和装配工艺的顺序 .而抽象工厂模式着重于多个系列的产品对象(简单的或是复杂的).建造者模式在最后的一步返回产品,而对于抽象工厂来说,产品是立即返回的. (2)在建造者模式里,有个指导者,由指导者来管理建造者

Linux操作系统中运行ASP.NET 4

<在openSUSE下ASP.NET 4开发环境配置>中已经配置好了 openSUSE 11.3 操作系统. 现在,我们进入"GNOME 终端",使用 ifconfig 命令验证一下本虚拟的 IP 地址就是一开始我们在宽带路由器中为它分配的静态地址. ben@linux-nyhn:~> /sbin/ifconfig   eth0      Link encap:Ethernet  HWaddr 08:00:27:51:5B:0B               inet 

在 Linux 操作系统中运行 ASP.NET 4 (下)

"在 Linux 操作系统中运行 ASP.NET 4 (中)"中已经配置好了 openSUSE 11.3 操作系统. 现在,我们进入"GNOME 终端",使用 ifconfig 命令验证一下本虚拟的 IP 地址就是一开始我们在宽带路由器中为它分配的静态地址. ben@linux-nyhn:~> /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:51:5B:0B inet addr:192.168.1

一起谈.NET技术,在 Linux 操作系统中运行 ASP.NET 4 (下)

"在 Linux 操作系统中运行 ASP.NET 4 (中)"中已经配置好了 openSUSE 11.3 操作系统. 现在,我们进入"GNOME 终端",使用 ifconfig 命令验证一下本虚拟的 IP 地址就是一开始我们在宽带路由器中为它分配的静态地址. ben@linux-nyhn:~> /sbin/ifconfigeth0 Link encap:Ethernet HWaddr 08:00:27:51:5B:0B inet addr:192.168.1.

Linux操作系统之rpm五种基本操作分享

  Linux操作系统现在已经成为流行的操作系统,很多的人都开始学习,Linux操作系统包括了很多的专业知识,今天和大家讲讲Linux操作系统中的rpm基本操作.希望你学会本文中提到rpm的五种基本操作知识,会对你有所帮助.rpm有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证. 下面我们就来逐一的讲解吧. 一. 安装rpm包 rpm 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名.其中包括软件包的名称(foo),版本号(1.0),发行号(1),