温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Redhat linux 9.0下的软路由是什么

发布时间:2021-10-22 10:51:02 来源:亿速云 阅读:130 作者:柒染 栏目:云计算

Redhat linux 9.0下的软路由是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

实验条件:创建一台Redhat Linux 9.0的虚拟机和一台Windows XP虚拟机,Linux虚拟机有两块网卡(eth0和eth2),eth0实现和Internet连接,eth2实现和内网的连接。它们的资料如下:

eth0: IP(192.168.0.133) MASK(255.255.255.0)Gateway(192.168.0.2) DNS(和主机一样)

eth2: IP(192.168.132.128) MASK(255.255.255.0)Gateway(无)

实验目的:将Linux虚拟机搭建成一台软路由器,使Windows XP虚拟机(在192.168.132.0/24网段)能通过这台软路由上网。所以Windows XP的IP地址如下:

IP(192.168.132.129) MASK(255.255.255.0)Gateway(192.168.132.128,其实就是eth2的IP)

DNS(和主机一样)

实验原理:Windows XP虚拟机向Linux虚拟机发送报文,Linux虚拟机检验报文的目的地址,然后根据路由表选择路由。但是这样发送出去是不行的,因为它的源地址是192.168.132.0/24网段的,不是192.168.0.0/24网段的,所以网关192.168.0.2(eth0的网关)不会把它发出去,所以还要伪装一下地址,也就是我们经常看到的NAT(网络地址转换)。而NAT的转换很多都是用防火墙的NAT功能来完成的,所以呆会我们还会用到防火墙iptables(Redhat 9.0自带)

实验步骤:

(一)Linux虚拟机中

1、配置网络:

在图形界面下,点击左下角的红帽,然后“系统设置——网络”,输入口令后就可以看到网卡了(eth0和eth2),点击eth0,输入IP(192.168.0.133) MASK(255.255.255.0)Gateway(192.168.0.2) DNS(和主机一样)。然后点击eth2,输入 IP(192.168.132.128) MASK(255.255.255.0)Gateway(不填),然后保存并退出就可以了(其实它和修改ifcfg_eth0、ifcfg_eth2、network等文件或用ifconfig命令的效果是一样的,你个人喜欢咯)。如果习惯命令行,你也可以手工输入。

2、现在Linux虚拟机的网络已经配置好了,你可以ping一下做检验,按如下顺序ping。

ping 127.0.0.1 (检查协议等是否正确安装)

ping 192.168.132.128 (检测eth2是否正常)

ping 192.168.0.133 (检测eth0是否正常)

ping 192.168.0.2 (检测网关是否正常)

ping  www.baidu.com(连接外网,检测是否正常,如果出现网址找不到的出错信息,很可能是DNS没设置好)

如果都ping通了那就可以进行下一步了,没ping通的话继续检测……

接着用route -n查看一下你的路由表,可以看到类似的信息

Kernel IP routing table  
Destination        Gateway         Genmask         Flags   Metric Ref    Use     Iface  
192.168.0.0       0.0.0.0         255.255.255.0     U           0      0        0         eth0  
192.168.132.0   0.0.0.0         255.255.255.0     U           0      0        0        eth2  
127.0.0.0           0.0.0.0         255.0.0.0             U           0      0        0         lo  
0.0.0.0              192.168.0.2     0.0.0.0             UG         0      0        0        eth0  
看到了吗?第一行信息表示目标地址为192.168.0.0/24的报文从eth0发出去,第二行信息表示目标地址为192.168.132.0/24的报文从eth2发送出去,第三行类似,它是一个回环地址,发给电脑本身,第四行是默认网关,因为它的Flags标志为UG(G表示Gateway)

3、完成了上面的IP设置还不行,还要启动IP转发功能。在命令行输入

echo 1 > /proc/sys/net/ipv4/ip_forward 就行了,但是重启后又没了,所以 最后把/etc/sysctl.conf文件中的  
net.ipv4.ip_forward = 0 改为net.ipv4.ip_forward = 1 就行了。

(二)在Windows XP虚拟机中

在XP虚拟机的设置很简单,就和我们平常的一样,把IP、掩码、网关、DNS设置如下就行了IP(192.168.132.129) MASK(255.255.255.0)Gateway(192.168.132.128,其实就是eth2的IP)DNS(和主机一样)

到此为止,我以为已经可以了!然后ping 了一下百度,还是ping不通,这是为什么呢?因为我们还没有伪装IP。因为只有伪装成192.168.0.0/24网段的IP才能从eth0发出去的,还记得route -n里面有一条

Destination        Gateway         Genmask         Flags   Metric Ref    Use     Iface  
192.168.0.0       0.0.0.0         255.255.255.0     U           0      0        0         eth0  
这样的信息吗?就是说的这么一回事了。所以我们要进入下一步NAT

(三)NAT、网络地址转换

1、NAT简介:

   借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。    NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据都分别嵌入IP地址的应用程序就不能正常工作。

2、Linux中的NAT

在Linux中,要实现NAT的功能,用的是防火墙的NAT,所以我们要用到iptables命令。iptables的语法等就不再这里介绍了,实在是太长了,大家可以用man iptables查看。

3、现在我们想192.168.132.0/24网段的计算机都能通过这台路由器上网,所以我们可以建立一个脚本,把下面的内容复制上去,然后chmod 755 XXX.sh改变它的权限,最后输入./XXX.sh运行

#!/bin/bash  
#初始化INPUT、FORWARD、OUTPUT等链

#清除原来防火墙的设置  

iptables -F    

#默认不符合INPUT、FORWARD、OUTPUT链规则的包就丢弃,POSTROUTING、PREROUTING默认为接收                    
iptables -P INPUT DROP  
iptables -P FORWARD DROP  
iptables -P OUTPUT DROP  
iptables -t nat -P POSTROUTING ACCEPT  
iptables -t nat -P PREROUTING ACCEPT  
                                                                                      
#为FORWARD链添加一条规则:凡是源地址属于192.168.132.0/24,目标地址为ANYWHERE的报文都接收,但是这样只是能让报文发送出去而已,接收到的报文不符合这个规则,会被丢弃,所以还要添加一条规则:凡是源地址属于ANYWHERE,目标地址为192.168.132.0/24的也接收,这样就双向都可以通信了。  
iptables -t filter -A FORWARD -s 192.168.132.0/24 -d 0.0.0.0/0 -j ACCEPT  
iptables -t filter -A FORWARD -s 0.0.0.0/0 -d 192.168.132.0/24 -j ACCEPT  
                                                                                      
#下面这条语句的意思是为POSTROUTING链添加一条规则:凡是从eth0发出去的报文都伪装IP,也就是NAT一下,它就是整个NAT的核心了

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

到目前为止,所有的东西都弄好了,切换到Windows XP虚拟机,ping 一下192.168.0.2(Linux主机的网关),如果ping不通的话,仔细检测上面的步骤是否都对了!ping通了的话,就可以上网了,打开你的IE试试看,如果XP中DNS设置不对,也会上不了网的~自己小心了!

(四)问题

现在还不知道怎么在虚拟机添加网卡(除eth0、eth2、eth8外),然后又能给Linux识别的,要是能够的话,那就太好玩了,可以组成一个复杂的网络了~~哈哈……

(五)结束语

前面的IP地址等的配置一般都不会有太大的问题,一般出问题的在NAT部分。有些书用的不是Redhat 9.0,所以用的命令不是iptables,而是其他的如ipchains、ipfwadm等等,自己看着办吧!还有一些系统更惨,连iptables/ipchains/ipfwadm都没有,那就要自己安装,然后编译,挺烦人的,自己要挺住,等到你成功地配置了一台路由,你就会觉得前面的努力——值!

关于Redhat linux 9.0下的软路由是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI