无盘系统网络设置相关技术红宝书
文档记录:
版本
时间
修改者
描述
2008-11-05
赵振宇
开始编写
路由和iptables防火墙
Linux下的iptables功能十分强大,我们的无盘系统也利用了iptables的部分功能,下面就两个例子简要介绍下iptables和路由的使用,所使用的功能基本上涵盖搭建无盘系统所需要使用的iptables和路由的功能。
利用路由和iptables实现终端连接
图1
如图1所示,现在有5台主机,分别为A、B、C、D、E,其中B、C、D为双网卡机器,A、E为单网卡机器。这5台主机在物理上是相互连接的,而且5台主机运行的都是linux操作系统。
它们的网络配置为:
表1:A、B、C、D、E的网络配置
Eth0
Eth1
A
无
B
C
D
E
无
想在让我们实现A、E之间的相互通信。
步骤说明:
A与B之间的通信:
由表1知道,,,所以我们在A上ping主机B,,采用如下命令:
ping
。,,,所以数据包不能到达主机B,这时我们添加一条路由就可以了,我们在主机A上运行:
route add –net gw dev eth0
,在本环境中就是主机B。。
同样在主机B上ping主机A的地址也是可以ping通的
ping
A与C之间的通信
由表1知道,A与C的两个IP地址都不在同一个网段内,所以无法直接通信,需要经过主机B进行中转一下才能通信。这样我们首先要实现B、C之间的相互通信。和第一步的情形一样,,,还是由于路由的原因,于是在主机B上添加一条路由:
route add –net gw dev eth0
再试试就可以ping通了。现在再在主机A上ping主机C,有了上两次的经验,我们先在主机A上添加路由,在主机A上运行:
route add –net gw dev eth0
route add –net gw dev eth0
现在在主机A上ping主机C的IP地址,结果发现两个地址都无法ping通。在主机C上运行:
tcpdump host
,主机C接收到了数据包,但是没有返回。
原因是:每个IP数据包内包含了目的地址、目的端口、源地址和源端口,数据包发送时,中间的各个网关根据数据包的目的地址来传送数据包,主机接受到数据包后,就得到了包内的源地址,然后根据源地址返回信息。现在主机A发送的数据包经过主机B发送到主机C上,,,所以主机A就没有收到结果。
一种方式是在主机C上添加路由,让返回的数据包从主机B返回到主机A上。
另一种方式就是在主机B上利用iptable命令修改主机A发到主机B数据包内的源地址,使返回的数据包能够先到主机B,在到主机A。
让我们采用第二种方式来实现。
在主机B上执行:
无盘系统网络设置相关技术红宝书 来自淘豆网m.daumloan.com转载请标明出处.