参考文档:https://wenku.baidu.com/view/7792bcc5b4daa58da1114a99.html
http://www.cnblogs.com/kevingrace/p/6490627.html
1.普通主机与路由器的根本区别在与,主机不会将一个报文从一个接口转发到另一个接口,而路由器可以转发报文。
2.IP层维护着一张路由表,当接收到报文时,用路由表来决策接下来做什么操作,当从网络接收到数据报文时,IP
层首先会检测报文的IP地址是不是自己自身的地址,如果是,则报文将被发送到传输层相应的协议中区,如不是,
且本身配置了路由器的功能,则将报文转发到,否则丢弃。
3.路由表中的数据一般是以条目形式存在,一个典型的路由表条目,一般包含以下主要条目
一,目的ip地址:可以是一台主机的ip地址,也可以是一个网络地址,如是主机地址,则他的主机ID标记为非零,
如是一个网络地址,则主机ID标记为零
二,下个路由的ip地址: 因为这个报文可能需要多个路由的转发才能到目的地址
三,标志,提供了目的地址是主机地址还是网络地址的信息,也提供了下个路由器真的是一个路由器还是一个直接
相连的接口
四,网络接口规范
//------------------------------------------------------------------------------------------------------------------------------
route 命令
root@zabbix:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.11.1 0.0.0.0 UG 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth0
root@zabbix:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.11.1 0.0.0.0 UG 0 0 0 eth0
192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
-n 参数表示直接使用IP或port number;
Destination:目标网络或目标主机
Gateway:网关地址,如果没有就显示星号
Genmask:网络掩码 默认路由的一般都是0.0.0.0
Flags:一共有多少个旗帜
U:该路由是启动的
H:目标是主机(IP)而非网域
G:需要透过外部的主机(gateway)来转发 (use gateway)即网关路由
R:使用动态路由是,恢复路由资讯的旗帜
D:已经有服务或转port功能设定位动态路由
M:路由已经被修改了
O!:这个路由不会被接受(用来抵挡不安全的网域)
Metric 距离,跳数 (linux内核没有使用)
Ref 基本一直为0
Use 改路由被使用的次数 (可粗略估计通向指定网络地址的网络流量)
Iface 接口,eth0等网络接口名
//----------------------------------------------------------------------------------------------------
root@zabbix:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.11.1 0.0.0.0 UG 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth0 ——》表示本地网路,不需要网关即可到达
如果我想往本地的192.168.11.30传数据,路由就直接通过192.168.11.0/24这个网络路由送到192.168.11.30上
如果我想网www.baidu.com传数据,路由就通过default默认路由来传送,即通过eth0将包传给192.168.11.1这个
gateway主机。
网关:如我的机器有4张网卡,分别设置了A,B,C,D 不同的网段,他们想要互相通信就要通过各自的网关,
网关的地址是具有路由功能的机器的ip地址,如192.168.11.1与192.168.12.1 都在一个具有路由共能的机器上,
那么这两个ip地址就可以被设置成两个网关,其各自网段内的ip想访问另一个网段时,就同过自己的网关来联系
对方的网关,进而找到目标主机。(网关可以看成是路由器上的ip地址)(自己理解)
//------------------------------------------------------------------------------------------------------------------
route
add 添加路由
-host 主机路由 (目的地址是一台主机)
-net 网络路由 (目的地址是以个网络)
del 删除路由
我的一台机器是192.168.11.99 另一台是192.168.11.199 现在给192.168.11.99 加上一个10网段的ip
192.168.11.99上执行:ifconfig eth0:0 10.0.0.10
让后用199的机器来ping 10.0.0.10 发先ping不同 要想使其能ping通 则需要加路由
route add -net 10.0.0.0/8 gw 192.168.11.99 把99的ip做为网关
发现用199在去ping 已经可以ping通了
同理 加一条主机路由也同样可以ping通
route add -host 10.0.0.10 gw 192.168.11.99
删除路由
root@zabbix:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.11.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.11.99 255.0.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.11.1 255.0.0.0 UG 0 0 0 eth0
10.0.11.0 192.168.11.1 255.255.255.0 UG 0 0 0 eth0
192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
root@zabbix:~# route del -net 10.0.11.0/24删除了10.0.11.0/24 网段的路由
root@zabbix:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.11.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.11.99 255.0.0.0 UG 0 0 0 eth0
10.0.0.0 192.168.11.1 255.0.0.0 UG 0 0 0 eth0
192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
//-----------------------------------------------------------------------------------------------------------------
以上命令都是临时生效 在debian系列里 要想使其永久生效 可以将命令加到/etc/network/interfaces里
如:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.11.199
netmask 255.255.255.0
network 192.168.11.0
broadcast 192.168.11.255
gateway 192.168.11.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search zabbix.top
up route add -net 10.0.0.0/8 gateway 192.168.11.99 dev eth0
down route del -net 10.0.0.0/8 gateway 192.168.11.99 dev eth0
当eth0激活时启动该规则 当eth0失效时删除该规则
//--------------------------------------------------------------------------------------------------------------------