|
每一个IP主机至少要知道三类目的地址:主机本身,本地计算机和其它地方的主机。第三类IP地址只能通过路由器来到达。这个路由器必须有一个本地可达的IP地址。三类IP可以如下描述:
1. 机器本身可达的IP地址。这类地址称为local IPs或者locally hosted IPs。
2. 在直接连接的链路层介质上可达的IP地址。称为locally reachable或者directly reachable IPs。
3. 只能通过网关到达的IP
4.8. 路由表
Linux内核2.2和2.4支持多个路由表。除了两个通用的路由表,内核还支持多达252个额外的路由表。
多路由表系统提供了一个灵活的架构,可以在上面实施策略路由。通过将多个传统的路由表(主要关键字是目的地址)与路由策略数据库(主要关键字是源地址)相结合,内核即支持了众所周知的接口,同时也扩展了它的路由能力。每一个路由表仍按照传统的方式运行。Linux仅仅是让你从众多的路由表中选择,穿过由用户定义顺序的的路由表直到匹配好路由为止。
任何给定的路由表会包含一个特定数量的入口,由一下几个特性组成:
l 目的地址(主要关键字)
l tos;服务类型
l scope
l 输出接口
Example 4.6. Typical content of /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
1 inr.ruhep
4.8.1路由表入口
由传统的route命令来操作的路由表是main路由表。除了local路由表是由内核维护的,main路由表是部分由内核维护的,其它所有的路由表都是由管理员或者路由软件来控制的。所有在一个机器上的路由都可以被更改或移除。
下面每一个路由类型都可以用ip route命令来获得。每一种路由类型会引起特定的响应。
单播
单播路由是最普通的路由了。这是到目的地址的典型路由,它描述了到目的的路径。如果命令行中未指定路由类型,路由类型默认为单播。
例4.7 单播路由类型
广播
这类路由被链路层设备所用,这些设备支持广播地址的概念。这一类路由仅仅在local路由表使用,由内核来处理。
local
添加这类路由会加入到local路由表中,这意味着此类IP是locally hosted IP
nat
这类路由也被内核加入到local路由表,当用户试图配置无状态NAT。
unreachable
当一个路由决策的请求返回了一个目的地址是不可达到的路由类型,一个不可达ICMP会产生,且返回给源地址。
prohibit
这类路由发生时,内核产生一个被阻止的ICMP返回给源地址。
blackhole
此时,包被丢弃。没有ICMP发送,也没有数据包被转发。
throw
这类路由会引起路由表中查找错误,返回路由选择处理给RPDB。这十分有用,当有其它附加的路由表时。
使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,和iptables一样,需要永久添加的话,也是使用开机执行,所以可以用以下方法添加永久路由:
1.在/etc/rc.local里添加执行命令,进行开机执行,因为是root权限,所以不用sudo了:
route add –net 220.181.8.0/24 dev eth0
route add –net 220.181.9.0/24 gw 192.168.10.1
2.在/etc/sysconfig/network里添加到末尾
方法:Gateway=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-router :
any net x.x.x.x/24 gw y.y.y.y
Linux下常用配置文件及常用命令的介绍
Linux下常用配置文件及常用命令的介绍 /etc/sysconfig/network 包括主机基本网络信息,用于系统启动
/etc/sysconfig/network-script/ 此目录下是系统启动最初始化网络的信息
/etc/sysconfig/network-script/ifcfg-eth0 网络配置信息
/etc/xinetd.conf 定义了由超级进程XINETD启动的网络服务
/etc/protocols 设定了主机使用的协议以及各个协议的协议号
/etc/services 设定了主机的不同端口的网络服务
// 网络配置工具
# redhat-config-network
/* 使用ifconfig命令配置并查看网络接口情况 */
//配置eth0的IP,同时激活设备
# ifconfig eth0 192.168.168.119 netmask 255.255.255.0 up
//配置eth0别名设备 eth0:1 的IP,并添加路由
# ifconfig eth0:1 192.168.168.110
# route add –host 192.168.168.110 dev eth0:1
//激活(禁用)设备
# ifconfig eth0:1 up(down)
//查看所有(指定)网络接口配置
# ifconfig (eth0)
/* 使用route 命令配置路由表 */
//添加到主机路由
# route add –host 192.168.168.110 dev eth0:1
# route add –host 192.168.168.119 gw 192.168.168.1
//添加到网络的路由
# route add –net IP netmask MASK eth0
# route add –net IP netmask MASK gw IP
# route add –net IP/24 eth1
//添加默认网关
# route add default gw IP
//删除路由
# route del –host 192.168.168.110 dev eth0:1
/* 常用命令 */
# traceroute www.bcxy.com
# ping www.bcxy.com
//显示网络接口状态信息
# netstat –I
//显示所有监控的服务器的Socket和正在使用Socket的程序信息
# netstat –lpe
//显示内核路由表信息
# netstat –r
# netstat –nr
//显示TCP/UDP传输协议的连接状态
# netstat –t
# netstat –u
//更改主机名
# hostname myhost
//查看ARP缓存
# arp
//添加
# arp –s IP MAC
//删除
# arp –d IP
/* 运行级别与网络服务 */
//查看当前运行级别
# runlevel
//运行级别的切换
# init
# telinit
linux下路由配置文件是那个?
分为系统路由,网卡路由(redhat8以上),静态路由
系统路由在/etc/sysconfig/network中可以设置
网卡路由在/etc/sysconfig/nework-script/ifcfg-ethX中可以设置
静态路由在/etc/sysconfig/networking/device/中可以设置ethX.route中设置,静态路由顾名思义,就是固定的,设置好了一般不会轻易变化的路由
假定,在这个例子中,你的系统有2个网络接口 eth0 和 eth1. 在我们的理论例子中, eth0 连接 192.168.0.0/24, and eth1 连接192.168.1.0/24. 但是,另外一个网络,10.20.30.0/24, 需要通过192.168.1.0/24网络上的192.168.1.254路由器来进行访问.
让我们检查我们这个例子使用的系统的当前的路由表:
# ip route show
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.7
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.7
default via 192.168.0.1 dev eth0
下面的ip route 命令把指定的路由加入内核的路由表中:
# ip route add 10.20.30.0/24 via 192.168.1.254 dev eth1
运行后,再查看一个路由表:
# ip route show
10.20.30.0/24 via 192.168.1.254 dev eth1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.7
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.7
default via 192.168.0.1 dev eth0
|
|