也许大家都知道路由器有路由功能,或者三层交换机有路由功能.但很少有人知道,其实我们的主机同样有路由功能,可以作为一个简易路由器使用,只不过默认没有开启.无论在windows或者linux平台下都是可以的,现在就来看看linux下静态路由的配置.
先来看一个简单的拓扑
需求很简单,只要RHEL-A可以ping通RHEL-C就可以了.
开启RHEL-B服务器的路由转发功能,即将/proc/sys/net/ipv4/ip_forward文件的值从0改成1.0代表关闭路由功能,1代表开启.(用echo修改,最好不要用vi来编辑)
echo 1 > /proc/sys/net/ipv4/ip_forward
如果需要开机启动路由功能,则需要修改/etc/sysctl.conf文件
vi /etc/sysctl.conf
有关静态路由的命令
route add –net 添加一条默认路由,目标为对方网段
route add –host 添加一条默认路由,目标为对方主机
route add default gw 设定默认网关
route delete 删除路由
配置RHEL-A的静态路由,网关指向RHEL-B的eth0接口
route add –net 192.168.20.0 netmask 255.255.255.0 gw 192.168.10.20
配置RHEL-C的静态路由,网关指向RHEL-B的eth1接口
route add –net 192.168.10.0 netmask 255.255.255.0 gw 192.168.20.20
这个时候使用RHEL-A去ping 192.168.20.1和用RHEL-C去ping 192.168.10.1都是可以成功的.
我们来看看RHEL-A和RHEL-C的路由表,查看路由表的命令是route -n
RHEL-A
发现多了一条192.168.20.0网段的路由,下一跳指向192.168.10.20,UG就代表下一跳指向网关(Gateway),出接口为eth0.
RHEL-C
**************************************************************************************
拥有帝国一切,皆有可能。欢迎访问phome.net
另外在静态路由配置中,还可以以出接口为下一跳.以上面为例
RHEL-A
route add –net 192.168.20.0 netmask 255.255.255.0 dev eth0
RHEL-C
route add –net 192.168.10.0 netmask 255.255.255.0 dev eth0
不过不建议这么做,在以太网接口中,出接口并非为匹配固定的下一跳,会造成ARP条目过多,可能导致无法通信的情况.
拥有帝国一切,皆有可能。欢迎访问phome.net |