美文网首页
计算机网络: Lab 2

计算机网络: Lab 2

作者: 写代码的海怪 | 来源:发表于2019-02-28 03:15 被阅读0次

    初始化路由器

    初始化如下图的路由器。

    // 开启 Router
    R1> enable
    
    // 进入IOS 模式
    R1# configure terminal
    
    // 配置 FastEthernet 0/0 接口
    R1(config)# interface FastEthernet0/0 
    // 配置所属 IP 和子网掩码
    R1(config-if)# ip address 10.0.1.1 255.255.255.0 
    // 一直开启这个接口,一定要加!
    R1(config-if)# no shutdown
    
    // 配置 FastEthernet 1/0 接口
    R1(config-if)# interface FastEthernet1/0 
    R1(config-if)# ip address 10.0.2.1 255.255.255.0 
    R1(config-if)# no shutdown 
    
    // 结束配置
    R1(config-if)# end
    

    显示配置好的信息

    R1# show interfaces
    R1# show running-config
    

    配置路由器里的路由表

    路由的配置重要参数有三个:目的地 IP,目的地 IP 的子网掩码以及下一个节点的 IP。假如要配置下图的两个网络:10.0.1.0/24

    在这个例子中,目的地 IP 为 Network 10.0.1.0/24,因为 Prefix 为 10.0.1.x 所以子网掩码是 255.255.255.0,而到达这个网络的下一个节点的 IP 是 PC1。

    注意:因为在 10.0.1.0/24 的网络里只有 PC1,所以下一个节点是 PC1,而且 Network 10.0.1.0/24 不是指 Hub1 的 IP,而是 Hub1 加上 PC1 所在的网络!

    在 R1 的 IOS 模式里命令如下:

    R1# configure terminal
    R1(config)# ip route 10.0.1.0 255.255.255.0 10.0.1.11
    

    如果想要删除某个路由,可以在上面的命令添加一个 no 就可以了:

    R1# configure terminal
    R1(config)# no ip route 10.0.1.0 255.255.255.0 10.0.1.11
    

    如果想要删除整个路由表可以使用如下命令:

    R1# configure terminal
    R1(config)# clear ip route *
    

    配置主机里的路由表

    主机里的路由表配置和在路由器的路由表配置差不多,关键参数也是目的地 IP,子网掩码和 Next Hop,但这里的 Next Hop 就是我们所说的网关。

    还是继续用上面的图来举例,如果要配置 PC1 -> Network 10.0.2.0,那么在 PC 1 的命令行里写:

    PC1> route add -net 10.0.2.0 netmask 255.255.255.0 gw 10.0.1.1
    

    -net 表示去往哪个网络,netmask 表示这个网络的子网掩码,gw 表示网关。

    添加路由命令

    route add –net netaddress netmask mask gw gw_address 
    
    # 感觉这个和上面的一样,iface 就是指靠近的那个 Interface
    route add –net netaddress netmask mask dev iface
    
    # 去往哪个主机,主机的 IP 是 hostaddress
    route add –host hostaddress gw gw_address
    
    route add –host hostaddress dev iface
    
    # 如果网络图不复杂可以直接设置默认网关,就可以不用每个目的地主机路由都要调协一次了
    route add default gw gw_address
    

    删除路由命令

    删除命令很容易理解就是把 add 变成 del 就好了。

    route del –net netaddress netmask mask gw gw_address 
    route del –host hostaddress gw gw_address 
    route del default gw gw_address
    

    删除路由表命令

    下面的对路由表的管理命令。注意:如果你不小心删除了路由表或者缓存,你可以要先设置主机的默认网关可以使其正常工作。

    # 删除整个路由表
    ip route flush table main
    # 删除路由的缓存
    ip route flush cache
    

    查看 ARP

    ARP 表会记录发送方的 MAC 地址。

    路由器操作 ARP 表

    // 显示 ARP 表
    R1# show arp
    // 清除 ARP 表的缓存
    R1# clear arp-cache
    // 删除某个主机的 ARP
    R1# no arp IPAddress
    

    主机操作 ARP 表

    注意主机操作 ARP 表 和路由器的命令不一样。

    # 显示 ARP 表
    PC> arp -a
    # 删除某个 ARP 数据
    PC> arp -d IPAddress
    

    ARP 代理

    ARP 代理的关键点是:

    1. 在对应的网关(Router 上的某个 Interface)上开启 ARP 代理,默认都会开启
    2. 清除 PC4 里存放 PC1 的 MAC 地址,因为之后的 ARP 代理会让 R2 MAC 地址作为 PC1 的 MAC 地址

    现在假如要 R2 作为 PC1 的 ARP 代理,也就是说如果 PC4 发信息给 PC1,R2 会假装自己是 PC1,将 MAC 地址给 PC4 后,PC 4 就会发信息给 R2 了。然后 R2 再将信息给 PC1。

    开启代理

    R2# configure terminal
    // 修改对应的网关(接口)
    R2(config)# interface FastEthernet1/0
    // 开启 ARP 代理服务
    R2(config)# ip proxy-arp
    

    如果要关闭 ARP 代理可以使用如下命令:

    R2(config)# no ip proxy-arp
    

    ICMP 重定向

    如果路由器发现你发的数据的时候发到另外的地方了,这样数据肯定到不了目的地,这个路由器根据自己的路由表将数据包发回正确的地方。举个例子。

    假如 PC2 要发给 PC3,PC2 原本应该发给 R2 的,但是现在发到了 R1,这样肯定到不了 PC3。所以 R1 会做 ICMP 重定向将数据发回 R2,R2 再将数据发到 PC3。

    你可能会问怎么可能发到 R1 呀,如果你路由表错了那不就出现发错了的现像了么?

    重演

    我们试着来模拟一下这个场景,先假设前提是每个设备的路由表都是配置好了的。现在改 PC2 的路由,还要在 PC2 开启重定向:

    # 设置送到 Network 3 的网关是 R1 接口
    PC2> route add -net 10.0.3.0 netmask 255.255.255.0 gw 10.0.2.1
    # 开启重定向
    PC2> echo 1 | tee /proc/sys/net/ipv4/conf/*/accept_redirects
    

    然后再 ping 到 PC3

    PC2> ping 10.0.3.10
    

    就会出现如下情况:

    循环路由

    我们可以模拟循环发数据包的情况。还是使用上面的图,现在我们在 PC 4 和 每个路由器都设置错误的路由信息,使得:

    PC4 -> R3 -> R2 -> R4 -> R2 -> ....
    

    配置路由命令如下:

    // 设置 PC4 发到 Network 1 的网关是 R3 的 10.0.4.3
    PC4> route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.0.4.3
    
    // 设置 R3 发到 Network 1 的 Next Hop 是 R2 的 10.0.2.2
    R3(config)# ip route 10.0.1.0 255.255.255.0 10.0.3.2
    
    // 设置 R2 发到 Network 1 的 Next Hop 是 R4 的 10.0.2.4
    R2(config)# ip route 10.0.1.0 255.255.255.0 10.0.2.4
    
    // 设置 R4 发到 Network 1 的 Next Hop 是 R3 的 10.0.4.3
    R4(config)# ip route 10.0.1.0 255.255.255.0 10.0.4.3
    

    然后再 ping 到 PC1 就会出现下面的情况:

    相关文章

      网友评论

          本文标题:计算机网络: Lab 2

          本文链接:https://www.haomeiwen.com/subject/nxmbsqtx.html