一:
echo 1 > /proc/sys/net/ipv4/ip_forward 启动时失效
或是修改/etc/sysctl.conf把net.ipv4.ip_forward = 0改为= 1
二:
如果eth0为192.168.10.123/255.255.255.0,eth1为192.168.20.231/255.255.255.0,则命令格式如下:
#route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0
#route add -net 192.168.20.0 netmask 255.255.255.0 dev eth1
上面的命令把发送给192.168.10.0网段的IP包交给eth0转发,把192.168.20.0网段的IP包交给eth1转发。如果还有可能有发送给其他目的IP的包,那么你肯能希望设置一个“默认网关”:
#route add default gw 192.168.10.1
上面的命令把所有发送给其他目的IP的包都转发给192.168.10.1,而如何转发给192.168.10.1这个地址的规则已经在刚才的第一条命令中定义了(从eth0转发)。一般情况下,默认网关已经自动设置好了,不用重复设置。可以用route命令加-n参数进行检查。
如果要删除某一条,命令格式为:
#route del -net 192.168.10.0 netmask 255.255.255.0
配置时的一种思路是把192.168.10.0网段路由至eth0,192.168.20.0网段路由至eth1,再设置默认路由。另一种思路是,只指定其中一个,然后把默认的0.0.0.0路由至另一个。其实效果一样,就是两种风格。
三:
一、环境:
三台直接相连的计算机主机如图
PC1PC2PC3
其中PC2上有两块网卡eth0、eth1,分别与PC3、PC1相连
------代表网线
二、需求:
将PC2配置为路由器模式,用来在PC1、PC3之间转发报文
三、方法:
将三台主机按照环境所要求用交叉线直接连网后,为三台主机分配网段并配置IP地址。
网段及IP地址分配如下:
主机名 所在网段 分配IP 网关
PC1: 192.168.2.0/24 192.168.2.2/24 192.168.2.1
PC2: 192.168.2.0/24 192.168.2.1/24 '与PC1相连的网卡的配置' eth1
192.168.1.0/24 192.168.1.1/24 '与PC3相连的网卡的配置' eth0
PC3: 192.168.1.0/24 192.168.1.2/24 192.168.1.1
按照上表所示分别将主机IP地址配置好,其中要注意的是,要想使PC2具有报文转发功能,在PC2
上检查/proc/sys/net/ipv4/ip_forward中的值是否为1
命令:
#more /proc/sys/net/ipv4/ip_forward
如果显示其值不为1而是0 输入以下命令:
#echo '1' > /proc/sys/net/ipv4/ip_forward
打开IP转发功能
PC2中的其它配置:
为PC2添加路由,命令:
#route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
#route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1
四、验证:
PC1:
ping网关
#ping 192.168.2.1
#ping 192.168.1.1
ping PC3:
#ping 192.168.1.2
PC3:
ping网关
#ping 192.168.1.1
#ping 192.168.2.1
pint PC1
#ping 192.168.2.2
五、Bug调试:
出错的原因主要集中在PC2两个地方
1.检查PC2是否允许IP报文转发(/proc/sys/net/ipv4/ip_forward的值是否为1)
2.路由设置是否正确(#route 回车查看)