博客
关于我
二十五、网卡丢包与数据管理
阅读量:523 次
发布时间:2019-03-07

本文共 1522 字,大约阅读时间需要 5 分钟。

了解

交换机

交换机是一种用于连接多台计算机的网络设备,它允许这些计算机共享相同的IP地址。想象一下,有几台计算机连在同一个交换机上,配置相同的网段(IP地址),就能互相通信。

路由

路由是指跨网络访问的路径选择。简单来说,路由决定了数据包从一个网络区域传到另一个网络区域的路径。

Linux 数据包处理过程

当外界数据通过网卡进入Linux系统时,需要对它进行路由决策。根据目标地址,数据包会决定进入本机空间(用户空间)还是直接转发给其他主机。

路由决策流程

  • 流入本机空间的数据

    • 数据从内核空间进入用户空间,应用程序处理后,如果不需要发送数据包,不涉及路由决策。
    • 若应用程序需要发送数据包,则需选择目标网卡进行数据传输,这时需要做路由决策。
  • 仅穿过本机的数据包

    • 必须从入网卡转发到出网卡。但默认情况下,Linux主机不开启IP转发功能,这会导致数据包丢失。
  • Linux主机作为路由器的前提条件

    要让一台Linux主机充当路由器,必须满足以下三点条件:

  • 至少有两块网卡,连接两个不同的网段。
  • 开启路由转发功能。
    echo 1 > /proc/sys/net/ipv4/ip_forward

    长期有效配置:

    # CentOS 6echo 'net.ipv4.ip_forward=1' > /etc/sysctl.conf# CentOS 7及以上echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/ip_forward.conf
  • 添加正确的路由规则。
  • Linux主机默认开启路由转发的特点

    在未开启IP转发前,只要能与主机的某个接口通信,就能与另一个接口通信,无需额外配置。

    Linux路由配置

    路由类型

  • 主机路由:精确到某一台主机(32位掩码)。
  • 网络路由:精确到特定网段(小于32位掩码)。
  • 默认路由:地址为0.0.0.0/0。
  • 路由优先级

    路由按以下优先级选择:主机路由 > 网络路由 > 网络路由 > 默认路由。优先级还取决于距离和子网掩码长度。

    配置永久路由

  • 修改路由配置文件。

    vim /etc/sysconfig/network-scripts/route-ethX

    其中 ethX 是网卡名称。

  • 配置示例:

    default via 192.168.100.10192.168.10.0/24 via 192.168.100.1192.168.100.52/32 via 192.168.100.33 dev eth0
  • 注意事项:

    • 对应的 ifcfg-ethX 文件必须存在。
    • 若使用 DHCP 要保留默认路由,需设置 defroute=no
  • 实践

    创建仅主机网络

    在VMware中创建四个仅主机网络:vmnet1vmnet4。通过网络编辑器配置IP地址和网关。

    网卡配置

    精简配置文件为:

    TYPE=EthernetBOOT=staticNAME=eth1DEVICE=eth1ONBOOT=yesIPADDR=2.2.2.2NETMASK=255.255.255.255

    路由配置

  • 通过修改 route-ethX 文件添加默认路由:

    route add default gw 1.1.1.2
  • 永久生效后重启网络服务:

    systemctl restart network
  • 开启路由转发:

    echo 1 > /proc/sys/net/ipv4/ip_forward
  • 注意事项

    • 临时配置使用 route add,永久配置修改文件即可。
    • 若修改默认路由,需确保所有使用 DHCP 的网卡设置 defroute=no

    通过以上步骤,可以在实验环境中配置路由,实现不同网络之间的通信。

    转载地址:http://jprdz.baihongyu.com/

    你可能感兴趣的文章
    mysql 判断表字段是否存在,然后修改
    查看>>
    mysql 协议的退出命令包及解析
    查看>>
    mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
    查看>>
    mysql 多个表关联查询查询时间长的问题
    查看>>
    mySQL 多个表求多个count
    查看>>
    mysql 多字段删除重复数据,保留最小id数据
    查看>>
    MySQL 多表联合查询:UNION 和 JOIN 分析
    查看>>
    MySQL 大数据量快速插入方法和语句优化
    查看>>
    mysql 如何给SQL添加索引
    查看>>
    mysql 字段区分大小写
    查看>>
    mysql 字段合并问题(group_concat)
    查看>>
    mysql 字段类型类型
    查看>>
    MySQL 字符串截取函数,字段截取,字符串截取
    查看>>
    MySQL 存储引擎
    查看>>
    mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
    查看>>
    MySQL 存储过程参数:in、out、inout
    查看>>
    mysql 存储过程每隔一段时间执行一次
    查看>>
    mysql 存在update不存在insert
    查看>>
    Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
    查看>>
    Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
    查看>>