路由下一跳与出站接口区别

来源:互联网 发布:旷视科技 知乎 编辑:程序博客网 时间:2024/04/29 22:26
    用出站接口,意思就是去往指定目标网络从这个接口丢出去,适用于点到点网络,ARP无关,点到点网络本身是可以不需要地址的。除了你就是我,除了我就是,你要不要地址、寻址根本没什么意思。所以用出站接口写静态路由,路由表里显示的是直连。

    用下一跳IP地址,下一跳IP地址,叫递归静态路由,路由器在转发数据包到目标网络的时候,首先要先解析下一跳的可达性,换句话说总共要解析两次,从转发效率上来说低于直连静态路由(用出站口)。递归静态路由一般用在多路访问环境,所以下一跳理论上来说必须指定一个IP地址,不能像点到点那样随便乱丢包。

   现在的新问题是,按照这个原理,我们在以太网上做静态路由的时候,为什么下一跳指定出站接口,路由器依然知道如何转发数据包呢?按照我们刚才讲的理论,在多路访问环境下如果用出站接口做静态路由,路由器应该不知道下一跳是谁才对。这是为什么呢?

     答案是代理ARP。但是这样做也有很大的缺点,就是说理论上本机最多会产生2^32条ARP缓存,相当消耗内存。所以多路访问环境不建议使用直连静态路由,建议采用递归静态路由。

   在配置静态路由时,即可指定接口,也可指定下一跳。使不同的网段的主机通信,到底采用哪种方法,需要根据实际情况而定,在点到点的网络环境中,无论是指定下一跳地址还是接口地址,其效果都一样。但是在广播网络环境下,指定下一跳地址或接口地址就会起到不同的效果,如果指定为接口地址的话,那么不管数据包的目标地址是否有效,每次数据包到达时都会触发一个ARP请求,又因为ARP代理在IOS环境下默认是打开的,这意味着路由器需要配备大量的ARP高速缓存,而如果指定为下一跳地址的话,仅当第一个去往目的地址的数据包到达时才会触发ARP请求。

网关和接口确定过程

在确定使用的路由项后,网关和接口通过以下方式确定:

  • 如果路由项中的网关地址为空或者为本地计算机上的某个网络接口,那么在发送数据包时:

    • 通过路由项中对应的网络接口发送;

    • 源IP地址为此网络接口的IP地址;

    • 源MAC地址为此网络接口的MAC地址;

    • 目的IP地址为接收此数据包的目的主机的IP地址;

    • 目的MAC地址为接收此数据包的目的主机的MAC地址;

  • 如果路由项中的网关地址并不属于本地计算机上的任何网络接口,那么在发送数据包时:

    • 通过路由项中对应的网络接口发送;

    • 源IP地址为路由项中对应网络接口的IP地址;

    • 源MAC地址路由项中对应网络接口的MAC地址;

    • 目的IP地址为接收此数据包的目的主机的IP地址;

    • 目的MAC地址为网关的MAC地址;

在此以上面的路由表为基础,举例进行说明:

http://wdqfirst.blog.163.com/blog/static/113347411201122825221701/

  • 和单播IP地址 192.168.1.8 的通信:在进行相与计算时,1、3 项匹配,但是3项为最长匹配路由,因此选择3项。3项的网关地址为本地计算机的网络接口192.168.1.6,因此发送数据包时,目的IP地址为 192.168.1.8、目的MAC地址为192.168.1.8的MAC地址(通过ARP解析获得)。

  • 和单播IP地址 192.168.1.6 的通信:在进行相与计算时,1、3、6 项匹配,但是6项为最长匹配路由,因此选择6项。6项的网关地址为本地环回地址127.0.0.1,因此直接将数据包发送至本地环回地址。

  • 和单播IP地址 192.168.1.245 的通信:在进行相与计算时,1、3、4、5 项匹配,但是4、5项均为最长匹配路由,所以此时根据跃点数进行选择,5 项具有更低的跃点数,因此选择5项;在发送数据包时,目的IP地址为192.168.1.254、目的MAC地址为192.168.1.7的MAC地址 (通过ARP解析获得)。

  • 和单播IP地址 10.1.1.1 的通信:在进行相与计算时,只有 1 项匹配;在发送数据包时,目的IP地址为10.1.1.1、目的MAC地址为192.168.1.1的MAC地址(通过ARP解析获得)。

  • 和子网广播地址 192.168.1.255 的通信:在进行相与计算时,1、3、4、5、7 项匹配,但是7项为最长匹配路由,因此选择7项。7项的网关地址为本地计算机的网络接口,因此在发送数据包时,目的IP地址为 192.168.1.255,目的MAC地址为以太网广播地址FF:FF:FF:FF:FF:FF。


 配好ethWan  但是不能ping通网关?


> ping 192.168.10.134
PING 192.168.10.134 (192.168.10.134): 56 data bytes


--- 192.168.10.134 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss
 > 
 > 
 > wan show
VCC     Con.    Service         Interface       Proto.  IGMP    Status          IP
        ID      Name            Name                                            address
N/A     0       pppoe_usb3g     ppp7            PPPoE   Disable Unconfigured    (null)
N/A     0       ipoe_eth0       eth0            IPoE    Enable  Connected       192.168.10.86
 > 
 > route show
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    *               255.255.255.0   U     0      0        0 br0
192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
192.168.10.0    192.168.10.134  255.255.255.0   UG    1      0        0 br0
default         192.168.10.134  0.0.0.0         UG    0      0        0 eth0
 > 
 > ping 192.168.10.134
PING 192.168.10.134 (192.168.10.134): 56 data bytes
^C
--- 192.168.10.134 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
 > 
 > 
 > ifconfig br0           
br0       Link encap:Ethernet  HWaddr 00:1A:2B:07:11:00  
          inet addr:192.168.10.85  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING ALLMULTI MULTICAST  MTU:1500  Metric:1
          RX packets:3121 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2477 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:391982 (382.7 KiB)  TX bytes:2480685 (2.3 MiB)


 > ifconfig br0 192.168.1.85
 > route show
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
default         192.168.10.134  0.0.0.0         UG    0      0        0 eth0
 > 
 > ping 192.168.10.134
PING 192.168.10.134 (192.168.10.134): 56 data bytes
64 bytes from 192.168.10.134: seq=0 ttl=64 time=1.221 ms
64 bytes from 192.168.10.134: seq=1 ttl=64 time=1.151 ms
64 bytes from 192.168.10.134: seq=2 ttl=64 time=2.143 ms
64 bytes from 192.168.10.134: seq=3 ttl=64 time=1.561 ms


总结:lan和wan的网段不能相同
原创粉丝点击