主页

索引

模块索引

搜索页面

3router路由器

集线器是按照以太网规则传输包的设备
路由器是按照 IP 规则传输包的设备

现代的交换机和路由器的概念已经发生了变化了
    交换机是服务于以太网的 L2/L3 网络设备,
    而路由器是服务于以太网和非以太网之间的网络设备

集线器:

MAC 头部(用于以太网协议)

路由器:

IP 头部(用于 IP 协议)

路由表(Routing Table):

一张路由表中会有多条路由规则。
每一条规则至少包含这三项信息:
1. 目的网络: 这个包想去哪儿
2. 出口设备: 将包从哪个口扔出去
3. 下一跳网关: 下一个路由器的地址

Destination        Gateway            Flags        Netif Expire
default            10.112.127.254     UGSc           en0
10.112/17          link#6             UCS            en0      !
10.112.25.28/32    link#6             UCS            en0      !
10.112.33/24       10.112.33.9        UGSc         utun2
127                127.0.0.1          UCS            lo0
127.0.0.1          127.0.0.1          UH             lo0
... ....

家用路由器的五个口是一个局域网?

备注

与交换机不同。交换机只是将进来的包转发出去而已,它自己并不会成为发送方或者接收方。

备注

路由器会忽略主机号,只匹配网络号。

对路由表进行维护的方法有几种,大体上可分为以下两类:

1. 由人手动维护路由记录
2. 根据路由协议机制,通过路由器之间的信息交换由路由器自行维护路由表的记录
    路由协议有很多种,例如 RIP、OSPC、BGP 等都属于路由协议

路由器与交换机之间的关系:

路由器是基于 IP 设计的,而交换机是基于以太网设计的
IP 协议本身没有传输包的功能,因此包的实际传输要委托以太网来进行
路由器将包的传输工作委托给交换机来进行

注: 实际的路由器有内置交换机功能的,比如用于连接互联网的家用路由器
上面讨论的都是『纯粹的路由器』和『纯粹的交换机』

备注

IP 并不是委托以太网将包传输到最终目的地,而是传输到下一个路由器。之后下一个路由器再通过 IP 协议确定下一个路由器的 IP 和 Mac 地址。再通过以太网传输……而这儿两个路由器之间的传输过程是由以太网(交换机)来完成的。

备注

IP(路由器)负责将包送达通信对象这一整体过程,而其中将包 传输到下一个路由器的过程则是由以太网(交换机)来负责的。

工作过程:

1. 收到某端口(设为 A)MAC 地址为 X 的计算机发给 MAC 地址为 Y 的计算机的数据包。交换机从而记下了 MAC 地址 X 在端口 A。这称为学习(learning)。
2. 交换机还不知道 MAC 地址 Y 在哪个端口上,于是向除了 A 以外的所有端口转发该数据包。这称为泛洪(flooding)。
3. MAC 地址 Y 的计算机收到该数据包,向 MAC 地址 X 发出确认包。交换机收到该包后,从而记录下 MAC 地址 Y 所在的端口。
4. 交换机向 MAC 地址 X 转发确认包。这称为转发(forwarding)。
5. 交换机收到一个数据包,查表后发现该数据包的来源地址与目的地址属于同一端口。交换机将不处理该数据包。这称为过滤(filtering)。
6. 交换机内部的 “MAC 地址 => 端口” 查询表的每条记录采用时间戳记录最后一次访问的时间。早于某个阈值(用户可配置)的记录被清除。这称为老化(aging)。

路由器的附加功能

路由器的附加功能:

1. 将私有地址转换为公有地址的『地址转换功能』
2. 阻止危险网络包的『包过滤功能』

地址转换功能

备注

具备地址转换功能的设备不仅有路由器,有些防火墙也有地址转换功能, 它的工作方式和路由器是相同的。地址转换功能的作用是在公网 IP 地址有限的前提下,让内网地址的电脑也能上网。

地址和端口对应表(地址转换功能):

  公有地址       端口号     私有地址           端口号
11.123.23.2     5436     192.168.1.123      80
11.123.23.2     5437     192.168.1.23       443
11.123.23.2     5438     192.168.1.11       80

包过滤功能

定义:

对包进行转发时,根据 MAC 头部、IP 头部、TCP 头部的内容,
按照 事先设置好的规则决定是转发这个包,还是丢弃这个包。
我们通常说的防火墙设备或软件,大多数都是利用这一机制来防止非法入侵的

与防火墙的关系:

防火墙并不是一种专用的特殊机制,而是应该看作在路由器的包转 发功能基础上附加的一种功能

防火墙只不过当判断规则比较复杂时,通过路由器的命令难以维护这些规则
而且对阻止的包进行记录对于路由器来说负 担也比较大,因此才出现了专用的硬件和软件

对防火墙来说,如果判断结果为阻止,那么这个包会被丢弃并被记录下来。
    这是因为这些被丢弃的包中通常含有非法入侵的痕迹,
    通过分析这些包能够搞清楚 入侵者使用的手法,从而帮助我们更好地防范非法入侵
而对内置包过滤功能的路由器来说,内存容量小,没有足够的空间用来记录日志
    在丢弃包时基本上不会留下记录

命令操作

路由表(Routing Table):

➜ netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Netif Expire
default            10.112.127.254     UGSc           en0
10.112/17          link#6             UCS            en0      !
10.112.25.28/32    link#6             UCS            en0      !
10.112.33/24       10.112.33.9        UGSc         utun2
10.112.33.9        10.112.33.10       UH           utun2
10.112.127.254/32  link#6             UCS            en0      !
10.112.127.254     0:0:5e:0:1:3       UHLWIir        en0   1139
10.128/16          10.112.33.9        UGSc         utun2
10.128.128/23      10.112.33.9        UGSc         utun2
10.128.130/23      10.112.33.9        UGSc         utun2
10.128.132/23      10.112.33.9        UGSc         utun2
10.140.2/24        10.112.33.9        UGSc         utun2
127                127.0.0.1          UCS            lo0
127.0.0.1          127.0.0.1          UH             lo0
169.254            link#6             UCS            en0      !
224.0.0/4          link#6             UmCS           en0      !
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI         en0
255.255.255.255/32 link#6             UCS            en0      !

注:  linux 上面的命令 route -n

mac下操作:

查看所有路由表:
netstat -rn

查看默认网关:
route -n get default
route -n get www.baidu.com

添加路由:
sudo route add 34.0.7.0 34.0.7.1

删除路由:
sudo route delete 0.0.0.0

: 多网卡可以调整不同网卡的优先级

增加一条路由:

$ ip route add 10.176.48.0/20 via 10.173.32.1 dev eth0
要去 10.176.48.0/20 这个目标网络,要从 eth0 端口出去,经过 10.173.32.1:

$ ip rule add from 192.168.1.0/24 table 10
$ ip rule add from 192.168.2.0/24 table 20
从 192.168.1.10/24 这个网段来的,使用 table 10 中的路由表
而从 192.168.2.0/24 网段来的,使用 table20 的路由表

$ ip route add default scope global \
    nexthop via 100.100.100.1 weight 1 \
    nexthop via 200.200.200.1 weight 2
下一跳有两个地方,分别是 100.100.100.1 和 200.200.200.1,权重分别为 1 比 2
此方法适用于有多个出口IP时

静态&动态路由

路由分静态路由和动态路由:

静态路由可以配置复杂的策略路由,控制转发策略;
动态路由主流算法有两种,「距离矢量算法」和「链路状态算法」
    「距离矢量算法」基于 Bellman-Ford 算法,产生BGP 协议
    「链路状态算法」基于 Dijkstra 算法,产生OSPF 协议

    求最短路径常用的有两种方法:
    一种是 Bellman-Ford 算法
    一种是 Dijkstra 算法

BGP 又分为两类,eBGP 和 iBGP:

BGP 协议使用的算法是「路径矢量路由协议」(path-vector protocol)。
它是「距离矢量路由协议」的升级版。

主页

索引

模块索引

搜索页面