ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

网关是什么?从原理到配置排错,一文讲透默认网关与路由表

网关是什么?从原理到配置排错,一文讲透默认网关与路由表 很多网络工程师在带新人时都会遇到同一个问题新人把 IP 地址、子网掩码都配好了同网段的电脑互相能 ping 通但一访问互联网就失败。检查了一圈发现默认网关没填。此时你问他“知道网关是干什么的吗”他往往只能憋出一句“上网用的”。网关是网络里最常用、也最容易被误解的概念之一。很多人把网关当成一个神秘设备也有人把网关和路由器完全画等号。这篇文章不打算只讲定义而是从网络工程师的实际工作场景出发把网关的本质、工作过程、配置方法和排错思路一次性讲清楚。读完你会明白三件事网关到底是什么它和路由器、路由表、子网掩码是什么关系一台主机如何通过网关完成跨网段通信当网关不通或者“默认网关一直被清空”时你该如何一步步定位问题。1. 为什么你配了 IP 地址电脑还是上不了网先还原一个最常见的故障场景。公司内部有一台电脑IP 地址是192.168.10.100子网掩码是255.255.255.0。同一个办公室里另一台电脑的 IP 是192.168.10.101。两台电脑都能互相访问共享文件夹也没有问题。但一旦打开浏览器访问百度页面始终转圈断断续续最终报错。很多人第一反应是 DNS 有问题于是把 DNS 改成114.114.114.114再试还是不行。接着怀疑运营商线路让运营商查了一圈线路正常。最后才发现这台电脑的默认网关是空的。为什么同网段能通跨网段就不通这里有一个基础前提在同一网段内两台主机通信时不需要经过任何中间三层设备。发送方会直接发送 ARP 请求询问目标 IP 对应的 MAC 地址然后直接把数据帧发给对方。但当你访问互联网上的服务器时目标 IP 和本机不在同一个网段。此时发送方并不知道目标主机“在哪里”它只能把数据交给一个“能走出本网段的出口”。这个出口就是默认网关。如果主机不知道自己该往哪里发数据包就只能停留在本地永远出不去。所以网关不是“上网加速器”也不是“过滤网页的开关”。它是主机实现跨网段通信的第一跳。没有默认网关主机的网络能力就被限制在了局域网内部。这个场景也给网络工程师提了一个醒排查网络不通不要一上来就查 DNS、查线路。先确认本机 IP、子网掩码、默认网关是否符合规划再往下走。2. 网关的本质一个被误解最多的网络概念严格来说网关是一个“角色”而不是一个“设备类型”。网关Gateway的通用含义是连接两个不同网络的节点或系统。在 TCP/IP 网络中我们讨论的网关通常是指“默认网关”主机在路由表中没有找到更精确匹配路由时把数据包交给的那个下一跳地址。这句话里其实包含两层含义第一网关是一个网络层概念。它工作在 IP 层负责把数据包从一个网络转发到另一个网络。所以讨论网关时必须同时讨论 IP 地址、子网掩码和路由表。第二默认网关本身是一个地址但这个地址背后必须有真实设备在转发数据。家用场景中这个设备通常是路由器企业场景中这个设备可能是核心交换机、防火墙也可能是专线出口路由器。为了不让概念混淆可以记住下面这张对照表术语本质常见误区网关连接不同网络的转发角色是三层上的概念认为网关是某台具体设备默认网关主机路由表中的一条默认路由的下一跳认为默认网关是填了就能上网路由器能完成跨网段转发的网络设备认为路由器等于网关路由表决定数据包往哪个下一跳转发的规则集合认为只有大型网络才有路由表子网掩码用来划分网络部分和主机部分认为掩码只是“255.255.255.0”这一种比如一台核心交换机上创建了 VLANIF 接口配置了192.168.10.254那么这个地址就是该 VLAN 内所有主机的默认网关。从主机的角度看网关是一串 IP从网络设计者的角度看网关是设备上某个三层接口。这里还要区分网络层网关和应用层网关。平时常见的 API 网关、服务网关工作在应用层负责请求转发、鉴权、限流和网络工程师口中讨论的三层网关不是一回事。面试时如果被问到“网关是什么”建议先说明你讨论的是三层网络网关避免概念打架。3. 网关到底做了什么一次跨网段通信的完整旅程理解网关最好的方式是亲手追踪一个数据包的完整旅程。假设主机 A 的 IP 是192.168.10.100/24默认网关是192.168.10.1。主机 A 要访问互联网上的服务器 BIP 是203.0.113.5。第一步主机 A 判断目标与自己是否同网段。主机 A 用自己的子网掩码255.255.255.0和两个 IP 做与运算发现192.168.10.100所在的网络是192.168.10.0/24而203.0.113.5不在这个网络里。于是主机 A 知道目标 B 不在局域网内。第二步主机 A 查询路由表。主机的路由表中有一条默认路由目的是0.0.0.0/0下一跳是192.168.10.1。所有在路由表中找不到精确匹配的流量都会走这条默认路由。于是主机 A 决定把数据包发给网关。第三步主机 A 解析网关的 MAC 地址。主机 A 发送 ARP 请求询问192.168.10.1的 MAC 地址。交换机收到广播后转发给所有端口网关接口收到后回 ARP 应答。此时主机 A 才知道自己要把数据帧发到哪个物理地址。第四步主机 A 构造二层帧发给网关。数据帧的源 MAC 是主机 A 的 MAC目的 MAC 是网关接口的 MACIP 层的源 IP 和目的 IP 保持不变。然后数据帧通过交换机到达网关设备。第五步网关设备查路由表决定下一跳。网关设备收到数据帧后剥掉二层帧看到目的 IP 是203.0.113.5于是查询自己的路由表找到匹配的出口和下一跳。如果出口是运营商接口网关会把数据帧重新封装源 MAC 改成出口接口的 MAC目的 MAC 改成下一跳设备的 MAC再送出去。第六步数据包逐跳转发直到目标服务器。如果中间经过多台路由器每一台都会做类似的“查路由表、改 MAC、重新封装”的动作。需要注意的是IP 层的源 IP 和目的 IP 在整个过程中基本保持不变除非中间做了 NAT。而发生 NAT 的地方往往也是网络出口也就是网关这个位置。这整个过程中主机 A 只认识自己的网关。它不知道互联网上到底有多少台路由器也不需要知道。这正是网关设计的意义每个网络只需要提供一个出口主机把跨网段流量交给出口具体怎么到达目的地由路由协议和路由表决定。所以网关的作用可以总结为四个字跨段出入口。它隔离了主机与复杂路由世界的细节。4. 默认网关与路由表配置网关之前必须理解的事很多刚接触网络的人会问默认网关是不是填网关上1的那个 IP 就行比如网段是192.168.1.0/24网关就填192.168.1.1这个说法在很多公司里成立因为网络管理员习惯用第一个可用 IP 做网关。但从原理上看网关可以是网段内任意一个可用 IP关键取决于设备上哪个三层接口承担转发任务。真正决定转发的是路由表。默认网关本质上就是一条默认路由的下一跳。在 Windows 上查看路由表可以执行route print输出中会看到类似下面的内容IPv4 路由表 活动路由: 网络目标 网络掩码 网关 接口 跃点数 0.0.0.0 0.0.0.0 192.168.10.1 192.168.10.100 25这条0.0.0.0 0.0.0.0路由就是默认路由。它表示只要目的 IP 在路由表里找不到更精确的条目就交给192.168.10.1。在 Linux 上查看路由表可以执行ip route show输出结果类似default via 192.168.10.1 dev eth0 proto static 192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.100第一行就是默认路由意思是所有未匹配其他路由的流量从 eth0 出去下一跳是192.168.10.1。这里有一个关键点默认路由的网关地址必须和主机本身在同一网段并且必须能从本机直连到达。例如主机 IP 是192.168.10.100/24默认网关却填了192.168.20.1那么主机发送 ARP 请求时根本没人响应数据包同样出不去。配置主机的默认网关本质上就是在路由表里增加一条默认路由。Windows 上可以使用route add 0.0.0.0 mask 0.0.0.0 192.168.10.1Linux 上可以使用sudo ip route add default via 192.168.10.1 dev eth0但直接使用 route 命令添加的路由重启后可能丢失。Windows 上如果要持久化可以用netsh或者直接在网卡属性里填写静态 IP 和网关。Linux 上则要写入网络配置文件不同发行版写法不一样以实际系统为准。理解路由表的意义在于网关不是孤立存在的。排查网络问题时不能只看“网关能不能 ping 通”还要看路由表里是否有默认路由、是否有更精确的路由把流量引到错误方向。双网卡服务器出现“默认网关一直被清空”或“时通时不通”多半就是路由表和网关竞争的问题。5. 从家用光猫到企业交换机网关在真实场景中的形态网关这个概念在不同规模网络里的表现形态完全不同。理解真实场景比背定义更有价值。家用场景中运营商提供的光猫和家用路由器通常就是家庭网络的网关。家庭主机配置的默认网关是192.168.1.1这个 IP 属于光猫或路由器的 LAN 接口。它负责把家庭内网流量转发到运营商侧同时还要做 NAT让家庭内网私有地址能够访问公网。很多用户会遇到“政企网关使用桥接模式就不能使用路由功能了吗”的疑问。桥接模式本质上是把光猫当成二层设备使用由上级运营商设备或者下挂的路由器来承担拨号和路由功能。此时光猫本身不再分配私网地址也不再作为家庭网络的默认网关。如果你在下挂设备上重新配置了其他网段那新的路由器才是真正的网关。这个模式没有“能不能使用路由功能”的问题而是你的三层职责交给了谁的问题。企业场景中网关通常是核心交换机或防火墙。比如一个中型企业的网络划分为多个 VLAN办公 VLAN 10服务器 VLAN 20监控 VLAN 30。每个 VLAN 都需要一个三层接口作为网关。以华为 VRP 平台为例一种常见做法是创建 VLANIF 接口配置为各网段的网关system-view vlan batch 10 20 30 interface vlanif 10 ip address 192.168.10.1 255.255.255.0 # interface vlanif 20 ip address 192.168.20.1 255.255.255.0 # interface vlanif 30 ip address 192.168.30.1 255.255.255.0配置完成后VLAN 10 内的主机把默认网关配置为192.168.10.1VLAN 20 内的主机把默认网关配置为192.168.20.1。核心交换机在收到 VLAN 10 发往 VLAN 20 的流量后直接通过内部路由转发不需要把流量送到外部路由器。这种设计除了实现 VLAN 间互访还天然做了广播域的隔离。同时因为所有跨网段流量都要经过核心交换机网络管理员可以在核心交换机上设置 ACL实现不同部门之间的访问控制。还有一种常见场景是双网卡双网关。比如一台服务器同时连接办公网络和存储网络。办公网络走网卡 eth0网关是192.168.10.254存储网络走网卡 eth1网关是192.168.20.254。如果服务器上同时配置两个默认网关路由表里就会存在两条default路由系统只能根据跃点数或网卡优先级选择一条。此时不是“办公网络不通”就是“存储网络不通”。正确做法是只保留一个默认网关把另一个网段的路由写成精确路由。比如办公网走默认网关存储网段192.168.20.0/24走 eth1下一跳为192.168.20.254。Linux 上可以这样添加sudo ip route add 192.168.20.0/24 via 192.168.20.254 dev eth1这样两个网段并行不冲突。这也是网络工程师面试里经常考察的“双网关”问题。如果部署的是华为核心交换机网关还需要注意交换机上的路由表。三层交换机默认只转发直连路由如果不同 VLANIF 之间需要跨三层访问直连路由会自动出现在路由表中。但如果有静态路由比如访问远端网段需要经过上级路由器那么除了配置默认网关还要在交换机上配置静态路由否则主机把流量发给网关网关也不知道往哪转。ip route-static 0.0.0.0 0.0.0.0 192.168.100.1这条命令表示交换机上所有非直连的流量都转发给上级设备192.168.100.1。这也是网关设备自己需要的“默认网关”。6. 用 ping 和 tracert 判断网关是否正常网关配置完成后首先要做的验证不是直接开浏览器而是通过命令行确认链路是否通畅。最常用的是 ping 命令。在 Windows 上执行ping 192.168.10.1如果网关能通说明本机到网关的二层链路和网关接口状态正常。如果网关不通需要检查本机 IP 和网关是否在同一网段网关设备是否有对应三层接口且接口状态是否为 Up中间交换机是否配置了端口隔离或 ACL本机防火墙是否拦截了 ICMP。但“网关能 ping 通”和“能正常上网”不是一回事。网关能通只代表第一跳可达。要验证完整路径建议使用 pathping 或 tracert。在 Windows 上追踪路径tracert -d 223.5.5.5在 Linux 上可以使用traceroute -n 223.5.5.5执行后第一跳通常就是网关 IP。如果第一行直接显示网关 IP 并出现* * *可能是网关禁 ping 或出方向限制 ICMP需要继续结合其他方式判断。更完整的排查顺序是ping 127.0.0.1确认本机 TCP/IP 协议栈正常。ping 192.168.10.100本机 IP确认本机网卡配置正常。ping 192.168.10.1确认默认网关可达。ping 223.5.5.5确认能到达公网 IP。ping www.baidu.com确认 DNS 解析和公网访问都正常。如果第 3 步通、第 4 步不通说明问题出在网关之后可能是运营商线路、设备路由表或 NAT 配置问题。如果第 4 步通、第 5 步不通问题大概率在 DNS。一条实用经验是不要把公网连通性测试的目标固定在一个 IP 上。有的网络出口对特定协议或特定 IP 有限制。可以准备多个测试目标比如223.5.5.5、119.29.29.29、8.8.8.8如果只有一个不通可能是对方限制了 ICMP而不是你的出口问题。7. 网关配置实战Windows、Linux 与网络设备这里用三个典型场景演示网关配置的实际操作。所有操作尽量在测试环境完成生产环境必须提前备份配置并确认变更窗口。7.1 Windows 静态配置 IP 和网关在 Windows 图形界面中进入“网络和 Internet 设置 → 更改适配器选项”右键网卡选择“属性 → Internet 协议版本 4 (TCP/IPv4)”填入 IP、子网掩码和默认网关。如果想用命令行配置可以打开管理员 CMD执行netsh interface ip set address name以太网 static 192.168.10.100 255.255.255.0 192.168.10.1这段命令把名为“以太网”的网卡设置为静态 IP192.168.10.100掩码255.255.255.0默认网关192.168.10.1。验证配置ipconfig route print7.2 Linux 临时配置网关临时生效的配置可以使用 ip 命令重启后失效sudo ip addr add 192.168.10.100/24 dev eth0 sudo ip link set eth0 up sudo ip route add default via 192.168.10.1 dev eth0Ubuntu/Debian 系统如需持久化配置可以修改 Netplan 配置文件例如/etc/netplan/01-netcfg.yamlnetwork: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.10.100/24 routes: - to: default via: 192.168.10.1 nameservers: addresses: - 223.5.5.5执行sudo netplan applyCentOS/RHEL 系统常见方式是修改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0BOOTPROTOstatic IPADDR192.168.10.100 NETMASK255.255.255.0 GATEWAY192.168.10.1 DNS1223.5.5.5然后重启网络服务sudo systemctl restart network不同发行版的网络管理工具差异较大具体参数请以实际系统为准但核心思路是一致的静态地址必须在网卡上默认网关必须写入持久化配置否则重启后丢失。7.3 华为交换机配置 VLAN 网关在华为 VRP 平台上配置 VLAN 网关的完整思路是先创建 VLAN再把物理接口加入 VLAN最后创建 VLANIF 接口并配置 IP。system-view vlan 10 quit interface gigabitethernet 0/0/1 port link-type access port default vlan 10 quit interface vlanif 10 ip address 192.168.10.1 255.255.255.0 quit配置完成后在设备上执行display ip interface brief可以看到 VLANIF10 的 IP 地址和状态。再用交换机去 ping 网关地址或者用局域网内主机去 ping 该地址验证三层接口是否正常工作。这类配置操作在真实项目中很容易遇到一个坑VLAN 划分好了VLANIF 也配了 IP但主机就是无法通过网关访问其他网段。常见原因是接口没有加入对应 VLAN或者交换机没有启用对应 VLAN 的三层接口。排查时先用display vlan查看 VLAN 内是否有接口再用display mac-address查看主机 MAC 是否从对应接口学习到。8. 网关常见问题与排查思路下面把网关相关的高频问题整理成表格方便实际排错时对照。问题现象可能原因排查方式解决方案能 ping 通同网段但无法访问互联网默认网关未配置或配置错误ipconfig或ip route show查看默认路由配置正确的默认网关网关能 ping 通但网页打不开DNS 配置错误或出口 NAT 问题先 ping 公网 IP再 ping 域名修改 DNS或检查出口 NAT/ACL默认网关一直被清空网卡设置为 DHCP 但服务器上没有 DHCP 地址网卡驱动被优化软件修改多网卡冲突检查网卡配置、DHCP 租约、事件日志更改为静态配置或在 DHCP 服务器上修正网关选项双网卡双网关网络时通时断路由表存在多条默认路由优先级不稳定route print查看默认路由跃点数只保留一个默认网关其他网段写精确路由交换机 VLANIF 无法 ping 通交换机接口未加入 VLAN或 VLANIF 未启用display vlan、display ip interface brief检查接口、VLAN、VLANIF 状态静态 IP 配置后网关消失网卡属性中的“自动跃点”导致多条默认路由查看路由表跃点数手动指定默认路由跃点数或删除多余路由桥接模式后家庭设备无法上网路由职责转移到上级或下挂设备下挂设备未正确配置确认拨号设备、DHCP 服务和默认网关位置在下挂路由器上重新配置拨号或路由模式更换网关 IP 后全网断网主机仍使用旧网关或设备未重新下发配置arp -a、ipconfig检查统一更新 DHCP 和静态配置逐段验证这里重点说一个容易被忽略的点默认网关“被清空”这件事并不总是配置错误。一种常见情况是网卡启用了 DHCP但 DHCP 服务器没有下发网关 option或者租约过期后获取失败网卡自动退回到“无法识别网络”默认网关就变成了空值。另一种情况是服务器上安装了安全软件或“网络优化工具”开机时把静态配置重置为自动获取。还有一种是 Windows 的“Internet 连接共享”或 VMware 等虚拟网卡服务意外修改了路由表。遇到这类问题不要反复重填 IP 和网关而是先观察现象什么时候发生。如果是重启后发生优先检查网卡配置是否为静态如果是插拔网线后发生优先检查 DHCP 和网卡电源管理如果是安装了新软件后发生优先卸载或禁用该软件的虚拟网卡功能。9. 网络工程师的网关最佳实践网关配置看似简单但生产网络里因为网关设计不合理引发的事故并不少。下面几条经验值得收藏。第一网关 IP 规划要统一规范。常见习惯是各网段的第一个或最后一个可用 IP 作为网关比如192.168.10.1或192.168.10.254。在一个规模较大的网络里建议统一约定并在 IP 地址规划表中明确标注避免不同 VLAN 的网关地址混乱。配置设备时也要避免网关 IP 被 DHCP 地址池包含防止地址冲突。第二DHCP 下发网关时要联动下发 DNS。很多网络故障的原因是 DHCP 能分配到地址和网关但没有正确下发 DNS导致“能上 QQ 不能开网页”这类问题。DHCP 配置中option 3 是默认网关option 6 是 DNS两个要同时核对。第三生产环境的静态路由和网关变更必须有回退方案。修改核心交换机或防火墙上的网关地址时提前保存当前配置确认哪些主机使用 DHCP、哪些使用静态 IP准备好变更后的验证步骤。如果变更后出现大面积断网要有能力快速回退。第四监测网关的可用性而不是等用户报障。常见做法是网络监控系统定期 ping 各 VLAN 的网关地址并在丢包率或响应时间超过阈值时告警。也可以记录网关设备的 CPU、内存、接口流量从性能指标上提前发现风险。第五网关设备的安全配置要到位。因为网关是所有跨网段流量的必经之地它的位置天然适合做访问控制。企业网络中建议在网关接口上配置 ACL控制敏感网段的进出流量。同时关闭不必要的管理协议和远程访问端口避免网关设备成为被攻击的入口。第六不要把“网关能通”当成“网络正常”的唯一标准。网关通了只能代表第一跳可达。完整的业务可用性验证至少要覆盖 DNS 解析、出口路由、NAT、服务器端响应时间这些维度。网络工程师手里的工具不只是 ping还包括 traceroute、telnet/curl、抓包工具和日志分析。10. 总结与后续学习方向这篇文章从“为什么配了 IP 还上不了网”这个场景出发把网关的本质、默认网关与路由表的关系、跨网段通信过程、不同网络的网关形态、配置实战和排错思路都过了一遍。回到核心判断网关不是一个神秘设备而是网络边界上的一个转发角色。主机需要它是因为跨网段流量必须有明确的下一跳网络设计者需要它是因为它把复杂路由世界与主机隔离开让每台主机只需要知道一个出口。如果你想在这个方向上继续深入建议按这条路线走先掌握子网掩码和 VLSM能准确判断两个 IP 是否同网段再学习路由和静态路由理解默认路由在整个路由体系中的位置然后学习 VLAN、DHCP、DNS因为网关会和这些技术联动最后通过抓包工具观察一次完整的三次握手和跨网段访问把理论变成肌肉记忆。网关是网络工程师入门的第一道门但不是最后一道。真正能拉开差距的是你在理解网关之后能不能快速判断“数据包走到哪一跳出了问题”。与其死记概念不如找一台测试机在一个测试 VLAN 里把网关配置、路由表观察、ping、tracert 完整走一遍。做一次比背十遍有用。
返回列表