路由转发route详解

    广播

    路由

    lo网卡

什么是广播
广播(BROADCAST): 一对多,局域网内的所有主机都可以广播,如果同一时间多个host同时广播,会造成信息干扰,实现同一广播域内的有效通信

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hVK7zI5N-1571660615493)(/images/广播.png)]

广播地址的表现形式
以太网和IPv4网都用全1的地址表示广播,分别是ff:ff:ff:ff:ff:ff和255.255.255.255

例:

Bcast:192.168.146.255 网段广播地址

[root@Centos6 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:FE:5D:93  
          inet addr:192.168.146.144  Bcast:192.168.146.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fefe:5d93/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:26971 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20440 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2136491 (2.0 MiB)  TX bytes:13601286 (12.9 MiB)

数据链路层(mac地址层)的广播48个1(FF:FF:FF:FF:FF:FF),
IP层全网广播(255.255.255.255),局域网广播(ip.ip.ip.255)

可以向广播地址发起ping错误,发送广播ping,但需要加-b参数。因为linux中默认不回应广播ping,

可在/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts开启,0开启|1关闭

关闭时只有网关地址响应

[root@Centos7 ~]#ping -b 192.168.146.255
WARNING: pinging broadcast address
PING 192.168.146.255 (192.168.146.255) 56(84) bytes of data.
64 bytes from 192.168.146.2: icmp_seq=1 ttl=128 time=0.429 ms
64 bytes from 192.168.146.2: icmp_seq=2 ttl=128 time=0.391 ms
[root@Centos7 ~]#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.146.2   0.0.0.0         UG    100    0        0 ens33

开启后所有该网段的host都会响应,且回复会多个回复(DUP!重复的)

[root@Centos7 ~]#ping -b 192.168.146.255                                 
WARNING: pinging broadcast address
PING 192.168.146.255 (192.168.146.255) 56(84) bytes of data.
64 bytes from 192.168.146.147: icmp_seq=1 ttl=64 time=0.096 ms
64 bytes from 192.168.146.2: icmp_seq=1 ttl=128 time=0.311 ms (DUP!)
64 bytes from 192.168.146.144: icmp_seq=1 ttl=64 time=1.90 ms (DUP!)
64 bytes from 192.168.146.147: icmp_seq=2 ttl=64 time=0.045 ms
路由实现
什么是路由,路由的功能,路由的通用介质 路由:把一个数据包,从一个设备发送到不同网段的另一个设备上,路由的实现通过路由表中的记录实现。

路由的功能:
    分隔广播域
    选择路由表中到达目标最好的路径
    维护和检查路由信息
    连接广域网

路由的通用介质(设备)
常见的路由器,和有路由功能的交换机,及软路由软件等,以硬件路由器为主流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p6qpQXAN-1571660615494)(/images/路由功能.jpg)]

route命令简介 修改只是历史有效

[root@Centos7 ~]#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.146.2   0.0.0.0         UG    100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.146.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.214.148 192.168.146.3   255.255.255.255 UGH   0      0        0 ens33
[root@Centos7 ~]#route add #添加
[root@Centos7 ~]#route del #删除

Destination: 目标网络ID,主机IP,0.0.0.0/0默认路由 default
    如有Destination 169.254.0.0 Internet私有保留地址 用于网络硬件自动标记
Genmask:network
    Gateway(网关):跨主机通信时,下一路由器临近我的接口的IP —> 下一跳
    同一网段的路由会自动生成不需要单独加 表现为Gatway 0.0.0.0
Ifac: 接口,表示从当前设备那个网卡发出去,到达Destination
Metric: 花费,值越小优先级越高

路由优先级: 主机路由–>网络路由–>默认路由

例子:

[root@Centos7 ~]#route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
[root@Centos7 ~]#route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
[root@Centos7 ~]#route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

添加默认路由所有的路径都走不通时,最后的选择路由

[root@Centos7 ~]#route add default gw 192.168.146.2
[root@Centos7 ~]#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.146.2   0.0.0.0         UG    0      0        0 ens33

添加新的不同网段的网卡后会自动生成一条默认路由

#ifconfig ens33:1 192.168.214.148 up
192.168.214.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33

#上述路由配置仅是写在内存中,实时生效,但不会永久有效,仅用于临时使用,如要永久有效,需写入配置文件中保持在硬盘中

route路由永久有效

#vim /etc/sysconfig/network-scripts/route-IFACE
    #需service network restart生效
两种风格:
(1) TARGET via GW
如:0.0.0.0/8 via 192.168.146.2
(2) 每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
例:
ADDRESS0=192.168.0.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.146.17

 

route 实现不同网段间通信

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XO5v2488-1571660615494)(/images/跨路由主机实现1.png)]

#route add -net 172.20.1.0/24 gw 10.0.0.2 dev ens37
#route add -net 192.168.146.0/24 gw 10.0.0.1 dev ens37

需要中间设备开启路由功能,默认没启用,是自己的就收,不是自己的就直接丢弃

#echo 1 > /proc/sys/net/ipv4/ip_forward

如果两个中间连接的路由器处于网络的边缘是可以使用默认路由(找不到的都转向默认路由)策略实现跨网段通信

#route add default 10.0.0.2 dev ens37
#route add default 10.0.0.1 dev ens37

配置动态路由
quagga程序包,支持多动协议RIP(根据中间路由器的数量)、OSPF(根据带宽)和(不同网络运营商网络访问)等协议

[root@Centos7 /etc/quagga]#systemctl start ospfd 启动服务
[root@Centos7 /etc/quagga]#vtysh

Hello, this is Quagga (version 0.99.22.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

Centos7.hjq# 

扩展:
实现中间三个路由连接的两台主机分别基于NAT和桥接进行网络通信
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cPL00T1Y-1571660615495)(/images/跨路由主机实现2.png)]

 

lo回环网卡
    是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统“显示”为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2444  bytes 280980 (274.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2444  bytes 280980 (274.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NCTTXI7O-1571660615496)(/images/lo网卡.png)]

lo网络一般情况下仅供内部测试使用,我们可以ping通127的任意网段地址,然而路由表里却并没有Lo网卡的信息,也不会因为Lo网卡的改变而自动生成,如果需要需手动添加;之所以能通,因为指向的网关为127.0.0.1/8 ,如果换成其他netmask随之改变其范围

实验:

实现两块lo跨主机网络的通信,可以把其放到桥接到eth0即另一块网卡上通信,通过两边路由表里配置的路由记录通信

#ifconfig lo 6.6.6.6/32 此时该网段只有一个iP
#ifconfig lo 7.7.7.7/32
#route add -host 6.6.6.6 dev ens33
#route add -host 7.7.7.7 dev eth0

[centos7@localhost~]# ping -I 7.7.7.6 7.7.7.7 ping的时候使用-I 指定ping命令的接口或者地址,建议使用地址

2 此时该网段只有一个iP
#ifconfig lo 7.7.7.7/32
#route add -host 6.6.6.6 dev ens33
#route add -host 7.7.7.7 dev eth0

>[centos7@localhost~]# ping -I  7.7.7.6 7.7.7.7   ping的时候使用-I  指定ping命令的接口或者地址,建议使用地址


  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud Gateway是基于Spring Boot 2.x和Spring WebFlux实现的网关服务,提供统一的负载均衡和路由转发的功能。它支持多种路由方式,比如URL路径匹配、请求头匹配、请求参数匹配等等。 路由转发是Spring Cloud Gateway的一个重要功能,可以通过路由转发把来自客户端的请求转发到指定的目标服务。路由转发的过程中,网关会根据预定义的路由规则来匹配请求,并选择合适的目标服务进行转发。 Spring Cloud Gateway的路由规则可以通过配置文件或者编程方式进行定义。在配置文件中,可以使用YAML或者Properties格式来定义路由规则。下面是一个YAML格式的路由规则示例: ``` spring: cloud: gateway: routes: - id: my_route uri: http://localhost:8080 predicates: - Path=/my_service/** ``` 这个示例定义了一个名为my_route的路由规则,它会把以/my_service开头的请求转发到http://localhost:8080。 除了Path,Spring Cloud Gateway还支持其他各种路由方式,比如Header、Cookie、Method、Query等等。你可以根据自己的需求选择合适的路由方式。 在路由转发过程中,Spring Cloud Gateway还可以实现负载均衡的功能。它可以根据定义的负载均衡策略来选择合适的目标服务。目前Spring Cloud Gateway支持的负载均衡策略有Round Robin、Weighted Response Time等等。 总之,Spring Cloud Gateway是一个非常强大的网关服务框架,它可以提供统一的负载均衡和路由转发的功能,并且支持多种路由方式和负载均衡策略。如果你的微服务架构需要一个可靠的网关服务,Spring Cloud Gateway是一个非常不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值