
做网络工程这么多年我有个特别深的体会很多项目最后掉链子不是路由协议没配好也不是防火墙策略有问题而是“地址”这一关没过。IP地址、MAC地址、端口号、网关、DNS、流媒体取流地址……名字里都带“地址”作用却完全不一样混在一起排障时能把人绕晕。这篇文章想做的事就是把网络工程里的地址体系完整串一遍从基本概念、规划方法、设备配置到真实的故障排查路径用我实际做过的项目思路来讲。无论你是刚入门的学生还是正在做网络工程毕业设计、准备组网方案的新手这篇文章应该都能给你一些直接能用的东西。1. 先把地址家族捋清楚IP、MAC、端口到底各管什么1.1 IP地址网络上的“门牌号”IP地址是网络层的东西负责给你的设备在这个网络里定一个位置。如果把网络比作一座城市IP地址就是门牌号快递员才能按地址送东西。IPv4是32位二进制分成4段写成192.168.1.1这样的点分十进制IPv6是128位写成240e:335:c07:9961:d067:81ff:fe35:6a20这种十六进制串。网络工程里首先要分清楚两类IP公网IP和私网IP。公网IP全球唯一是真正的“门牌号”网站服务器、云主机必须要有私网IP只能在内网用不能直接上互联网需要通过NAT转换后才能访问外网。我们平时做项目企业内部绝大多数用的都是私网地址常见的是这三段私网地址段掩码可用范围10.0.0.0 - 10.255.255.255255.0.0.0 (/8)大企业、数据中心常用172.16.0.0 - 172.31.255.255255.240.0.0 (/12)中大型组网常见192.168.0.0 - 192.168.255.255255.255.0.0 (/16)中小型局域网、家庭网络最多很多人一看到192.168就以为都是同一个网这是个常见误区。192.168.1.0/24和192.168.2.0/24是不同网段中间没有三层设备基本不通。所以做网络工程时地址规划的第一步不是“填数字”而是先搞清楚网段边界。1.2 MAC地址设备出厂时的“身份证”MAC地址是二层地址也叫物理地址48位十六进制一般写成3C-97-0E-AB-12-34或者3C:97:0E:AB:12:34。它烧录在网卡里出厂就有了所以更像“身份证号”。只要设备在世界上的某个地方它的MAC地址理论上是全球唯一的。为什么网络工程一定要懂MAC地址因为二层交换机转发数据根本不看IP只看MAC地址。交换机启动后会学习每个端口收到的源MAC地址形成一张MAC地址表以后数据帧发到哪个MAC就从对应端口转发出去。一个很典型的应用场景是某个IP地址被占用了你查ARP表能得到占用设备的MAC但MAC本身是“一串数字”你还得去交换机上查这个MAC在哪个端口下。这就用到了MAC地址表。后面我讲排障时会详细展开。1.3 端口号和服务地址同一个IP下的不同“门”IP和MAC解决了“设备在哪”的问题但一台服务器上可能同时跑网站、FTP、数据库好几个服务数据到了服务器之后该交给哪个程序这就是端口号的工作。端口号是16位数字范围0到65535。常见的约定端口有HTTP是80HTTPS是443DNS是53SSH是22RTSP流媒体是554WebDAV常用443或5005。你可以把IP地址理解成一栋大楼的门牌号端口就是这栋楼里的不同房间每个房间开一家公司各干各的事。这里就要说到“服务地址”这个概念了。你在浏览器里输入的网址本质上也是一个网络地址完整结构是“协议 IP/域名 端口 路径”。比如RTSP取流地址的完整写法是rtsp://admin:password192.168.1.64:554/Streaming/Channels/101如果把这种地址拆开看它就是一个典型的“网络工程地址”先找到设备的IP再通过554端口找到流媒体服务最后确定是第几路通道。很多同学做安防项目时失败不是摄像头坏了而是把这里的用户名、密码、IP段、路径搞错了。2. 工程实战第一步IPv4子网规划怎么切才不会踩坑2.1 CIDR与子网掩码别只盯着前面几个数字子网规划是所有内网项目的地基。很多时候做毕业设计或者公司组网大家为了省事直接给所有设备配一个192.168.1.0/24然后什么也不管。设备少的时候没问题一旦超过两百台或者需要区分办公网、监控网、服务器网广播风暴、安全性、性能问题就会接踵而来。CIDR这种写法最关键的是“斜杠后面的数字”表示网络位占多少bit。比如192.168.1.0/24表示前24位是网络位后8位是主机位可用主机地址是2的8次方减2也就是254个。减掉的两个分别是网络地址192.168.1.0和广播地址192.168.1.255这两个地址不能配到主机上。网络工程里经常需要手工计算下面是我常用的计算模板。以192.168.1.0/26为例掩码是255.255.255.192子网内地址总数2^(32-26)64可用地址数64-262这个子网的块大小是64所以下一个子网从192.168.1.64开始计算的关键在于“块大小”也就是主机位对应的数字大小。比如/25的块大小是128/26的块大小是64/27是32/28是16。只要记住了块大小你就能快速把一个网段切成好几段而不用每次都打开计算器。2.2 VLSM按部门切分一个小型公司案例做网络工程不建议一个大网段从头用到尾。哪怕只是一个50人的小公司我也建议用VLSM可变长子网掩码把地址切成多个清晰的子网每个子网对应一个VLAN。下面是一个典型的办公园区规划案例用途VLAN ID网段掩码可用主机数网关办公终端VLAN 10192.168.10.0/25255.255.255.128126192.168.10.1监控摄像头VLAN 20192.168.20.0/26255.255.255.19262192.168.20.1服务器群VLAN 30192.168.30.0/28255.255.255.24014192.168.30.1访客无线VLAN 40192.168.40.0/26255.255.255.19262192.168.40.1设备互联VLAN 100192.168.100.0/30255.255.255.2522192.168.100.1这个规划信息量很大我逐个解释。办公网用/25能放126台终端办公室绰绰有余监控网和访客网用/26摄像头和访客终端一般不会超过62个服务器只有十几台用/28就够了省出来的地址可以分给其他业务。互联段固定用/30因为点对点链路只需要两个可用地址多了都是浪费。每个网段独立的好处很明显办公网里的ARP广播不会灌到监控网摄像头被攻击也不影响办公业务而且以后做流控、做防火墙策略、做ACL只要匹配网段就行非常清晰。2.3 网络地址、广播地址、网关三个必须记住的特殊地址在任何一个子网里有三个地址不能分配给终端使用网络地址主机位全为0代表这个网段本身比如192.168.10.0。广播地址主机位全为1发往该地址的数据会被此网段内所有主机接收比如192.168.10.127。网关地址负责跨网段转发在网络设计中通常固定取第一个或最后一个可用地址常见的是192.168.10.1。网关地址给终端做默认路由用的。终端访问另一个网段的服务器时先把数据包发给网关由路由器或三层交换机转发。做配置时务必注意如果网关写错或者网关地址和别的设备冲突你就会看到“能ping通同网段的电脑但死活访问不了服务器”这种诡异问题。3. IPv6来了地址规划反而更容易“翻车”3.1 IPv6地址结构前缀和接口ID不能照搬IPv4思路IPv6进入工程领域已经很多年了虽然大部分中小企业还在用IPv4为主但新项目已经绕不开IPv6支持。IPv6地址是128位通常分成8组十六进制数。比如240e:335:c07:9961:d067:81ff:fe35:6a20就是一个很常见的IPv6地址。IPv6地址分两个部分前64位一般是网络前缀后64位是接口ID。很多人不知道的是后64位并不一定像IPv4主机位那样随意指定它经常由设备自己根据MAC地址通过EUI-64算法生成所以你在设备上看到的接口ID中间往往嵌着一串类似81ff的字符那是MAC地址自动转换出来的。做IPv6规划时一个常见建议是终端和服务器尽量用SLAAC或DHCPv6自动获取网络设备之间的物理接口地址手工分配而且要单独划一个专门用于内部互连的IPv6前缀不要把业务网段和设备互联网段混在一起。这样做的原因是互联地址不需要那么多只要保证设备之间能形成路由关系就行单独用一个/126甚至/127点对点子网足够。3.2 链路本地地址 fe80:: 的作用和坑IPv6有个IPv4没有的地址类型叫链路本地地址前缀是fe80::/10。每个启用了IPv6的接口都会自动生成一个fe80开头的地址只在同一链路内有效路由器不会转发它所以它不能用来跨网段通信。这个地址真实用途很广我在项目里最常用到的是IPv6默认路由的下一跳经常是链路本地地址而不是全局单播地址。比如一台Linux服务器的IPv6路由表里default via fe80::d067:81ff:fe35:6a20 dev eth0。如果你去ping一个IPv6网站数据包是要先发给fe80开头那个邻居的如果你对“IPv6地址里的门牌号”没概念看到路由下一跳是fe80地址会非常困惑以为设备配置错了。还有一个小坑Windows上ping链路本地地址时需要加“区域ID”指定是从哪个接口出去的否则会提示找不到主机。命令格式是ping -6 fe80::d067:81ff:fe35:6a20%12后面的%12是接口ID在Windows下通常对应一个数字可以用ipconfig看到。Linux下则用%eth0这种网卡名。这个细节教科书上很少写但排查IPv6问题时经常碰到。3.3 设备能拿到IPv6地址业务却不通的排查思路我遇到不少同学问“设备上明明配置了IPv6地址ping外网却不通怎么回事”遇到这种情况我的排查顺序是固定的先确认设备本身有没有IPv6默认路由。没有默认路由地址再多也没用。再看网关的fe80地址能不能ping通。链路本地不同后面通不了。然后检查DNS是否能解析出IPv6地址。解析不到浏览器还是会走IPv4显得“IPv6没生效”。最后确认防火墙有没有放行ICMPv6和对应业务的端口。这里最容易忽略的是第二步。很多人习惯性地ping网关的全局IPv6地址忽略了链路本地地址。实际上只要下一跳的fe80地址可达这个网络就是通的。全局地址反而可能因为前缀变更而暂时不可达。把这些概念搞清楚IPv6排障会比IPv4还简单。4. 设备配置地址时这些命令和选项要区分清楚4.1 Windows与Linux下查配置和改配置的正确姿势配置地址是网络工程的基本功但不同操作系统、不同工具链命令千差万别。Windows下查看地址信息用ipconfig最直接ipconfig /all这个命令会输出IP地址、子网掩码、默认网关、DHCP、MAC地址、DNS服务器信息非常全。如果地址配置有问题我第一反应永远是先跑这个命令看看当前实际生效的地址是什么。改地址一般不用命令大多数人用图形界面静态配置。如果用命令行推荐netshnetsh interface ip set address name以太网 static 192.168.10.10 255.255.255.0 192.168.10.1注意这条命令需要管理员权限网卡名称也得写对否则会报错。Linux下传统命令是ifconfig但它已经逐渐被ip命令替代。查看地址信息现在更推荐ip addr查看路由ip route临时给网卡配置一个地址ip addr add 192.168.10.10/24 dev eth0但这种配置重启后会消失。真正要让配置永久生效建议用网络管理工具比如Ubuntu的netplan或者通用的nmcli。很多项目里我强烈建议养成一个习惯改地址前先备份当前配置。Windows导出现有IP配置Linux复制一份/etc/netplan下的yaml文件。别觉得多余碰到厂商初始设备不可用的时候你会感谢这个习惯。4.2 网络设备接口地址配置交换机和路由器里怎么填Cisco、华为、H3C这些设备的配置思路基本一致只是命令关键词稍有差异。以华为为例system-view interface Vlanif 10 ip address 192.168.10.1 255.255.255.128 description OFFICE-GATEWAY这条配置的意思是给VLAN 10这个三层接口配置IP地址并把192.168.10.1作为办公网的网关。注意这里用的是Vlanif不是物理接口。很多初学者会把IP地址配在物理接口上结果三层交换机下还连着一堆PC配置半天不通。如果是路由器接VLAN通常用子接口的方式比如interface GigabitEthernet0/0.10 dot1q termination vid 10 ip address 192.168.10.1 255.255.255.128这是一个非常常见的“单臂路由”配置物理接口的IP不直接配置而是拆成多个子接口每个子接口对应一个VLAN再给每个子接口配上对应网段的网关地址。这样做的好处是你不需要换三层交换机用一台路由器就能把多个VLAN串起来。4.3 DHCP和静态地址的取舍以及保留地址的玩法终端设备到底用DHCP自动获取还是静态配置我的原则很简单能自动获取就自动获取除非这个设备的IP不能被改变。哪些设备IP不能变打印机、网络录像机、摄像头、服务器、门禁控制器这些是典型的固定设备。如果你给打印机用DHCP动态地址某天它重启后可能拿到新IP几十台电脑里配置好的打印驱动就全部失效那种上门服务的痛苦谁干谁知道。给这些固定设备分配固定的方式建议用DHCP静态绑定也叫DHCP保留。也就是说服务器根据MAC地址每次都把这台设备分配同一个IP。这样既保留了DHCP统一管理的便利又保证了固定设备地址稳定。配置保留时关键就是正确填写MAC地址。我做的项目里凡是涉及终端数量超过50台的基本都走DHCP保留。统一规划、统一分配比手工静态配置好维护太多了。4.4 地址冲突怎么快速定位IP地址冲突在局域网里是高发问题具体表现就是某台电脑能上网但经常断线同时系统弹窗提示“IP地址与网络上的其他系统地址冲突”。定位冲突设备是我处理最多的现场问题之一分享一个不用任何第三方工具的排查思路先断开疑似冲突的这台设备。找一台测试笔记本电脑手动设置成和冲突IP相同的地址并且不插网线或断开无线。把笔记本接入网络立刻ping这个IP。如果能ping通说明有设备正占着这个地址。查看ARP表得到该IP对应的MAC地址。Windows下查看ARP表的命令是arp -a记下这个MAC去接入交换机上查看MAC地址表看它在哪个端口display mac-address MAC地址去交换机上找到对应端口顺着端口到墙上网口再找到物理设备。基本就是这一步锁定“凶手”。整个过程不需要装任何软件用的是网络设备自带的能力。MAC地址、ARP表、交换机MAC地址表这三样东西串起来就能把一个“看不见”的冲突设备揪出来。5. 真实场景排障从“地址”角度拆几个典型问题5.1 能ping通网关外网却上不去可能问题根本不在“地址可达”这是网络工程里最经典的伪故障ping网关通ping外网不通。意思是三层链路没问题问题大概率出在路由和NAT上。我举一个实际排查过的例子。用户所在的是192.168.10.0/24网段网关是192.168.10.1出口路由器做了源NAT把私网地址转换成运营商给的光纤公网地址。PC配置都是DHCP自动获取的显示网关正常、DNS正常但所有的网页都打不开。我当时的排查链路如下在PC上ping网关192.168.10.1通。ping外网IP比如某个知名DNS服务器IP地址通。说明到外网的转发和NAT没有问题。ping域名不通。说明域名解析挂了。用nslookup www.xxx.com查一下发现DNS服务器没响应。检查DHCP下发的DNS发现下发的DNS地址写错了一位变成172.16.0.2导致内部DNS请求全被发到一个不存在网段的服务器上。修复客户端DHCP池或者手动把DNS改成正确地址之后网页立刻恢复。这个案例说明网络地址不只是IPDNS本身就是一个“地址解析服务”它崩了所有看起来像“外网不通”的问题都会冒出来。5.2 局域网提示“IP地址已使用”如何揪出真正占用的设备这个话题很值得单独写一段因为几乎每个人都在群里问过“我路由器里看到192.168.1.100被占用但不知道是谁。”排查手段和上面说的地址冲突定位基本一致但更关键的是理解机制。当新设备请求某个IP时会先发ARP探测看有没有其他设备响应该IP。如果有网络就会报警告“IP地址已使用”。此时业务设备为了自保会拒绝使用该IP于是表现为“这台电脑能连WiFi但上不了网”。处理时先不要慌按两步走第一步看ARP表得到占用IP的MAC地址第二步到核心交换机或接入交换机上查MAC表。如果网内交换机没有开启MAC地址表记录就得靠最原始但有效的“插拔法”把可能接入的交换机端口逐根拔掉拔到哪根时MAC从交换机MAC地址表里消失那个端口后面就是占设备。这个过程听起来笨但在几十人的办公室环境里实际操作往往五分钟内就能完成。比对着IP地址满楼层找电脑高效多了。5.3 摄像头RTSP取流地址总断开关键在“地址组合”而不是摄像头坏了做安防监控项目时RTSP取流地址是网络工程里最常见的应用地址之一。总有人问我“摄像头能ping通但NVR里就是取不到流是不是摄像头坏了”多数情况下不是摄像头坏了而是RTSP地址的几个要素没配对。我处理过几个高频问题用户名密码错了或者密码里有、:这类特殊字符都被解析成了地址分隔符。端口不对摄像头默认RTSP端口是554但有些摄像头被改过端口。通道号写错比如海康的101代表第一路主码流102代表第二路子码流写成201有时也能通但不是所有型号都支持。摄像头和NVR不在同一个网段且中间没有配置正确的路由。排查的办法很简单先用电脑访问摄像头WEB管理页面确认能登录再用工具测试554端口的连通性比如telnet 192.168.1.64 554如果端口通基本能排出网络地址层面的问题集中去查取流地址格式和用户权限。如果端口不通要区分是网络隔离、防火墙还是摄像头自身异常。总之RTSP地址本质上是“IP 端口 路径”的组合任何一个环节理解错了整条链路就断了。5.4 浏览器提示“网页似乎有问题或已经永久移动到新的地址”是怎么回事打开网页时遇到浏览器提示“此网页似乎有问题或者可能已永久移动到新的网页地址”这类现象现在还挺常见的。它背后的东西其实和HTTP状态码、DNS缓存有关。常见情况有三种网站服务器真的迁移了旧地址返回301或302重定向但你的浏览器/本地hosts文件里保留了旧的IP地址导致每次都访问旧IP自然打不开。公司内部系统改了端口或域名旧地址已经彻底废弃没有做重定向于是提示无法打开。客户端DNS缓存过期解析到了已失效的旧地址。排查方法也很有网络工程特色先在不同的网络环境下访问同一个网页。如果手机流量能打开但公司电脑打不开基本可以肯定是本机或内网DNS问题。清空本机DNS缓存ipconfig /flushdns检查hosts文件里是不是写了一个很旧的IP映射。用nslookup解析目标域名看返回的IP是否和实际服务器一致。这个问题的本质不在“网页”而在“域名地址和IP地址的对应关系”。域名这个东西其实就是网络工程给所有人都容易理解的“人性化地址”。它背后翻译成IP翻译错了页面自然打不开。6. 工程习惯地址台账和命名比技术本身更值钱6.1 地址规划文档该怎么写才不会被后任骂做网络工程配置完设备、调通业务其实只算完成了一半。另一半是文档尤其是地址规划文档。我可以很负责任地说一个项目如果地址都是随手配的没有任何文档半年后交接给新人这项目基本要重做一半。我个人做地址台账的习惯是这样的用Excel维护一个总表字段包括VLAN编号、网段、掩码、网关、用途、DHCP起始地址、DHCP结束地址、备注。下面是一个简化示例VLAN网段网关用途DHCP池备注VLAN 10192.168.10.0/25192.168.10.1办公终端192.168.10.2-192.168.10.126打印机保留VLAN 20192.168.20.0/26192.168.20.1监控设备192.168.20.2-192.168.20.63摄像头固定VLAN 30192.168.30.0/28192.168.30.1服务器不使用DHCP所有服务器手工分配VLAN 40192.168.40.0/26192.168.40.1访客无线192.168.40.2-192.168.40.63网段隔离这张表不需要太时髦的工具但必须做到三件事第一每个网段有一个唯一的用途第二每个设备的IP有记录第三谁改动过地址要能在台账上留痕。文档的意义不是给领导看的是给半年后半夜爬起来排障的自己看的。6.2 监控、流媒体这类应用地址要固定得更狠一点这类设备与普通终端不同摄像头、NVR、音视频服务器一旦改IP所有引用它地址的客户端都跟着失效。比如某个项目里用户通过WebDAV地址或者RTSP地址访问存储服务器我把这个地址固定在192.168.30.10即便服务器更换这个地址也不变。这样上层业务系统不用跟着改。具体操作就是在DHCP服务器上做MAC地址与IP的绑定同时在设备侧也设置好静态IP。两边保持一致防止DHCP服务器挂了之后地址被别的终端抢走。这个习惯一开始看似麻烦但在后续的扩容、故障恢复中能省很多事。6.3 跨项目交付时地址信息交接的检查项最后说一下交付环节。工程做完了要给下一棒的人交底。如果只留下一句话“地址都配好了”那等于没交。我常用的交接检查项是这些把核心设备配置文件复制一份里面要包含所有接口IP和VLAN配置。把DHCP地址池的分配范围、保留表导出来。把NAT、路由表的静态条目整理清楚标出哪些是关键的。把所有物理链路两端端口、互联IP地址画成一张表。明确标注哪些地址是自动分配、哪些是手工固定以及各自的用途。这些年我既做过施工方也做过接手方。最大的感受是技术过硬重要但把地址信息交代清楚更重要。地址是一个网络工程的坐标系坐标系错一个点后面整个系统都会偏移。我自己做项目第一个落笔的永远不是拓扑图而是地址规划表。拓扑图画错了可以改地址规划错了后面所有设备、所有VLAN、所有策略都要跟着推倒重来。希望这篇关于“网络工程-地址”的梳理能让你在下次开工之前先把自己的地址体系立起来。