跳至主要内容

对网关的理解

网络模型被OSI分成七层,TCP/IP协议大致对应了2、3、4、7层,分别是数据链路层、网络层、传输层、应用层,IP协议处于网络层上,它的工作原理说白了并不复杂:
  1. 整个互联网上所有的机器都有唯一一个IP地址对应。这并没有什么稀奇的,MAC地址也是唯一的,稀奇的在后面
  2. 机器的IP地址按照连接顺序进行了一定程度的分组,这样一个连续的IP段大致都在相同的路线上,这样路由器寻找特定IP地址的时候就方便多了,把整个地址空间分成若干个可能重叠的大段,每个大段一般这样表示:A.B.C.D/n,表示32位IP地址的前n位与A.B.C.D的前n位相同。比如192.168.1.0/24,所有前24位与192.168.1.0相同的都是这个网段的IP,由于IP地址8位一分组,24位就是前三段,也就是192.168.1.x。符合规范的这段连续的IP段就叫做一个子网。这种子网的表示方法叫做CIDR。
  3. 这种表示方法对人来说比较直观,但是计算机有另一种更快速的计算方法,对于A.B.C.D/n,我们构造一个前n位都是1、后面其他位都是0的IP地址,这个32位IP地址和A.B.C.D按位与的结果,就是前n位与A.B.C.D相同而后面其他位都是0的IP地址;如果这个32位IP地址和另一个IP地址与的结果,刚好与A.B.C.D与的结果相等,就说明这个IP地址和A.B.C.D的前n位相等,就说明新IP地址在CIDR范围内。我们把前n位都是1、后面其他位是0的地址也用IP地址的形式表示出来,那么192.168.1.0/24对应的就是255.255.255.0,这个就叫做子网掩码,掩码也就是mask,mask在计算机用语当中表示按位与的操作数,用来从目标数中取出特定的二进制位。也就是说IP+子网掩码是CIDR的另一种表示形式。

对于任意一台计算机或者路由器来说,它首先会有一些本地的链路,这些链路的IP地址都在各自特定的CIDR当中,这个子网叫做链路子网,链路子网中的IP地址都可以通过链路层协议直接访问,具体的访问方法与IP协议无关,在以太网当中是靠ARP,但是如果是WLAN,或者令牌环网,或者PPPoE,又会有所不同。比如子网是192.168.1.0/24,那么范围内所有IP地址都会直接调用链路层协议访问。表现在路由表中,就是这样一项:
192.168.1.0/24 -> link local, ifindex = XXX
即“192.168.1.0/24范围的IP通过XXX网卡的链路层协议直接访问”
如果还有其他链路,也会有相应的表项,比如说还有一个网卡上面的链路子网是111.222.1.0/24,那么就有另一项:
111.222.1.0/24 -> link local, ifindex = YYY
特别的,每个网卡上都会有一个IP地址,是本机的IP地址。当数据包发到这个IP地址的时候,设备就会正确理解“这个数据包是发给我自己的”,否则会理解为“这个数据包需要我代为转发”。这些本机的IP地址一定在链路层子网当中,比如说192.168.1.0/24中本机的IP地址是192.168.1.1,111.222.1.0/24中的IP地址是111.222.1.15,那么就有两个表项:
192.168.1.1/32 -> local
111.222.1.15/32 -> local
到local表示交给本机的更高层的协议栈,比如TCP/UDP去处理。否则会转发到其他机器。
我们注意到这些表项和刚才的表项有重叠的部分,比如说192.168.1.1/32其实包含在192.168.1.0/24里面。路由表的不同表项有不同的优先级,子网越小的越优先,也就是后面n越大的越优先,这样192.168.1.1/32就比192.168.1.0/24优先。

除了这些IP地址以外,其他的IP地址显然是无法直接访问的,需要由其他设备进行转发。不同网段的IP地址可能需要不同的设备进行转发。我们必须在路由表当中记住某段IP具体由哪个设备转发,记录的方法是记住需要转发的IP段CIDR,和需要发往的设备的IP地址,像这样:
100.101.1.0/24 -> via 192.168.1.17
这个via后面的地址,192.168.1.17,这个设备有进一步将数据包转发到目的网段的能力,比如说上面有一个链路层子网就是100.101.1.0/24,或者有另一条路由信息表明这个网段应该进一步发给其他的某个设备。这个设备在IP协议当中就叫做Gateway(网关),因为所有发到目的网段的流量都会从这个设备上经过,这个设备像个门一样,把两个网段连接了起来。
大多数情况下,这个IP地址位于某个链路层子网中,这样本机可以直接通过链路层协议将IP报文发送到网关。一部分设备(主要是硬件路由器)支持递归的路由表配置,这个时候网关地址可以不是本地链路层子网中的地址,当需要将IP报文发送到这个网关时,设备会递归查找网关的路由信息,直到查找到可以直接发送的地址为止。

互联网上的网段太多了,而且天天都在变,我们不可能给每个设备都配上互联网上所有的网段。幸好,对于大部分设备来说,除了特定的少数几个网段以外,大部分IP地址都有相同的网关,于是我们可以通过配置一个包含整个IP空间的CIDR来指定大部分IP地址的共同的网关:
0.0.0.0/0 -> via 111.222.1.254
由于前面说的原则,子网越小越优先,这条规则的优先度最低,而且能匹配所有的IP地址,因此可以理解为无法匹配到其他子网网段时使用的默认规则,因此这个网关一般叫做默认网关。
一个设备可能有多个网关,但是一般最多只有一个默认网关(不考虑等价路由、策略路由等复杂的情况)。也有可能没有默认网关,比如说骨干网上的路由器通过BGP协议交换路由信息,一般路由表就由非常多的CIDR组成,这些CIDR合起来能覆盖互联网上所有的公网IP。

最后说下链路层地址与IP地址。许多链路层协议也有自己的地址,一般是MAC地址,比如最常用的以太网。链路层地址在链路层协议中使用,表明这个链路层报文会被发给谁;而IP地址在IP层协议中使用,表明这个报文最终要发给谁。可以分为两种情况:
1. 直接通过链路层发送:
链路层地址: (源MAC地址) (目的MAC地址)
IP地址: (源IP地址) (目的IP地址)
2. 经过网关转发
从本机出发发往网关时,链路层的目的是网关而IP层的目的不是网关:
链路层地址: (本机源MAC地址) (网关MAC地址)
IP地址: (本机IP地址) (目的IP地址)
网关转发到其他网关:
链路层地址: (网关MAC地址) (下一跳网关MAC地址)
IP地址: (本机IP地址) (目的IP地址)
最后一个网关转发到目标:
链路层地址: (最后一个网关MAC地址) (目的MAC地址)
IP地址: (本机IP地址) (目的IP地址)
在转发过程中,IP报文的源和目的保持不变,链路层地址则只和这一跳的双方有关,甚至如果中间经过了不一样的链路层,还会更换二层数据包的格式。

Popular posts from 产品随想的博客

产品爱好者周刊 第21期:你好,2022!

  Products 玛拉蒂家具/座椅: https://www.maratti.com.cn/ 上海的一家办公家具供应商,公司实际坐过,非常舒服 DocuSign:  https://www.docusign.com/ 给PDF电子签名,看评价有不错的声誉 https://bridges.torproject.org/ 获取Tor网桥 塞冬: https://www.zhihu.com/people/qiancai_saidong 此人的长文分析,挺有insight,来自北大 公众号平台已沉默 客观来说,韩国有什么地方超越了日本和中国? - 塞冬的回答 - 知乎 https://www.zhihu.com/question/60428819/answer/369420091 高端造船、芯片闪存、显示技术 Design 折叠屏设计的一些思考: 10多年前互联网的网站设计: https://mp.weixin.qq.com/s/OdFjta4Wetp1p67bRrmYqw https://archive.ph/TdI1L Business & Market data 未来人口四倍于中国的非洲,我们该如何面对: https://mp.weixin.qq.com/s/7V2IgW3db1uRR3_wa8S1OQ 在数十年后,非洲也会是类似于印度、东南亚那样的机会 周深在节目中唱歌:一般2首,120W+ 一个有些违反认知的事实是,1966年的上海综合工业实力媲美台湾、香港。 https://metrics.torproject.org/userstats-relay-country.html Tor的运营系列数据 牢记:中国还是一个人均中位数年收入只有2.2万元、90%的三口之家年收入低于20万、20%的三口之家年收入低于1万8的发展中大国。 全国人均GDP尚未达到1万美元(欧洲落后地区水平),最富裕的京沪人均GDP也刚摸到2万美元门槛(欧洲中等偏下水平) 美国家庭收入中位数是42万人民币(税前),家庭税前年收入75万人民币可以打败3/4的美国家庭,120万可以打败90%,160万可以打败95%(2017-2018,基于2014美国普查数据预估,如下图) 超低生育率养成记:  https://mp.weixin.qq.com/s/C80z...

树莓派打造淡入闹钟,让电台轻轻的叫你起床

 原文地址:https://www.hscbook.com/article/raspberrypi-alarmclock/,对作者表示感谢 16年入了一个树莓派B+版折腾了一下就放在角落里积灰了,我这天天总睡懒觉的人被冰冷的闹钟吓得激醒是非常痛苦的,某天打扫房间发现了被我打入冷宫的树莓派就顺手拿出来打造成淡入闹钟+晨起天气预报+晚间电台播放。 简介 · 早上7点定时从低音量的 青苹果 电台(早上电台没有节目,只有音乐)逐步提升音量轻轻的音乐声叫你起床,3分钟后语音播放今天的天气预报,一个小时后结束播放。 · 晚上10点开始低音量播放 青苹果 电台(现在电台播放情感节目)提醒你准备碎觉了,最后一个小时候结束播放并对你说声晚安! 准备工作 必要材料 1.男/女,聪明大脑一块 2.五指手一双 3.能上网的树莓派一个 4.音响一套 安装树莓派系统 本文采用的是树莓派官方指定系统,小白of圣手党推荐使用好方便照葫芦画瓢是吧。 这里就不教了,网上一搜一大堆的教程。 ·  百度经验 ·  树莓派入手体验和系统安装 ·  树莓派入门之装系统 安装必要程序 Vlc 播放器 执行 sudo apt-get install vlc Mplayer 播放器 执行 sudo apt-get install mplayer Cron 计划任务 执行 sudo apt-get install cron 开始部署 获取代码 下载我上传的代码  Github   Coding 将 Morning 文件夹上传到树莓派的 Home 文件夹里 修改文件 申请和风天气KEY  申请地址 ,申请百度开发者语音转换a/s key  申请地址 修改 Morning/weather.py 文件第31/65行处的“和风天气KEY”替换为你的和风天气KEY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 ... else : fp = open(fn, 'w' ) url_city = 'http...

产品随想 | 周刊 第40期:献出心脏,直到高墙倒塌

标题来自本期的一个链接,觉得充满理想主义,献给大家! Products Movie Robot   https://github.com/pofey/movie_robot 定时自动从豆瓣电影的想看、在看、看过中获取影音信息,然后去PT站(支持多家站点)自动检索种子,找到最佳资源后按豆瓣电影分类提交到BT下载工具下载。在下载前,会自动检查你的Emby中是否已经存在。 工具超赞,一次搭建,可以很长一段时间躺平,但针对我这样对4K、HDR有高要求用户,可能不大行 Plash   https://github.com/sindresorhus/Plash Make any website your Mac desktop wallpaper 将任意网站,定义为Mac桌面 https://github.com/sindresorhus/Plash/issues/1,网友给的一些网站,也比较有意思 HomeBank   http://homebank.free.fr/zh/index.php 自由、开源的会计软件 GnuCash   https://www.gnucash.org/ https://github.com/Gnucash/gnucash 自由开源,多平台的财务软件,且有很好看的官方App,since 1998 beancount   https://github.com/beancount/beancount Beancount: Double-Entry Accounting from Text Files. 纯文本的复式记账工具 rimerc: rimer's dictionary & config   https://github.com/Bambooin/rimerc Rime输入法在各个平台的配置 Natural Selection Labs   https://github.com/NaturalSelectionLabs DIYGod主导的聚焦Web3的项目,非常有雄心,保持关注! PineTab   https://www.pine64.org/pinetab/ The Open Source ARM 64-bit Tablet 自由开源的64位平板电脑(在28...

产品爱好者周刊 第7期:1984

 产品爱好者周刊 第7期 Products Procreate: 艺术创作App https://procreate.art/ 与iPad, Apple Pencil搭配,可以创作出十分绚烂的画作 Callin: a social podcasting app. iPhone only for now. 创始人是PayPal的COO,红杉A轮 The Motley Fool:  https://www.fool.com/ 查看公司财报数据电话会议纪要 Pantherbar Windows上的PopClip Rivos Inc:  https://semianalysis.substack.com/p/rivos-inc-a-chip-off-the-old-block 一家RISC-V创业公司,创始工程师团队非常豪华,都有几十年的芯片设计经验 BackUp: https://archive.md/79FWx https://poet.so/ 将Twitter转换为好看的截图(预设模板) Ventoy: https://github.com/ventoy/Ventoy U盘启动制作工具,几乎能启动所有的系统 Thread Reader: https://threadreaderapp.com/ 能将Twitter Thread转化为一个完整的网页Link,以方便按顺序查看 可以通过在Twitter里@+unroll,来触发,会得到一条私信链接 Design 台积电发展历程的可视化: https://theinitium.com/project/20210915-project-taiwan-tsmc-semiconductor-history/ 端传媒可能是最好的中文互联网媒体了 News Privateer Space:Steve Wozniak准备新开的太空公司,充满期待,这是一个热爱开源、分享的技术大师 https://www.businessinsider.com/steve-wozniak-privateer-space-company-elon-musk-apple-cofounder-2021-9 Ideas Apple's Mistake:  http://paulgraham.com/apple.html 备份链...

Steve Jobs on the iTunes Music Store: The Unpublished Interview

A candid talk with Apple's CEO on a landmark day in its history. By Laura Locke  |  Wednesday, December 7, 2011 at 1:15 am Steve Jobs announces the iTunes Music Store. On April 28th, 2003, moments before I was about to interview Steve Jobs at San Francisco’s Moscone Center, I was jittery. Anticipation? Nerves? Excitement? You bet. All of those visceral emotions were firing. Knowing Jobs’ storied reputation as an irascible and exacting Silicon Valley CEO had me on edge. But I had prepared a tight set of questions. Secretly, I was hoping he might enjoy the line of inquiry. In turn, I would have a lively and candid report for my editors at TIME. What I didn’t know was that the interview was taking place on what would turn out to be one of the most important days in Apple’s history: The launch of the iTunes Music Store. Once again, Ste...

2018各行业应届生薪资不完全样本往期汇总-职场红领巾

文章来源自职场红领巾公众号2018.4.21日推送,在此表示感谢 产品岗 百度商业产品 14K*14 拼多多产品管培 12K*14 今日头条产品 16K*18 头条PM整个Package接近300K/年 美团产品Offer 14K*16 base上海 百度产品研究生 11.5K*14.6 base 上海 京东产品17K*13 百度产品 220K/年 网易 产品培训生 硕士 15K*18 SP base杭州 不知名互联网公司校招PM 12K*15 base北京 技术岗 微软 软件工程师 本科 260K/年 蚂蚁金服算法工程师 20K*16 拼多多开发本科400K/年 商汤科技本科技术岗 14K/月 税前 海康威视研究院 算法工程师 220K/年 微信算法岗 SP 360K/年 的package 今日头条 程序员 研究生 10K/月 base北京 滴滴程序员 16K*16 亚马逊 小四年经验 研发 50K/月 Facebook应届毕业生  软件开发工程师   打包 115k$/年(30%-40%税) base湾区 京东算法 普通Offer 234K/年 运营岗 滴滴北京运营岗 硕士 12K*15 奖金另算 网易游戏运营 150K/年 左右 网易运营 8K*13(奖金0~3个月) 网易新闻运营8K/月 腾讯游戏运营 本科6K/月 上海京东时尚本科8K/月 京东运营岗 11K/月 base北京亦庄总部 今日头条 渠道营销运营 6K/月(加房补) 网易考拉 活动运营 13K*16 OFO城市运营管培13K*14 爱范儿运营 8K/月 滴滴长三角某二线城市运营管培生 薪资 7.6K*13 +每个月40%绩效 货车帮 数据运营 12K/月 卡宾电商 管培 10K/月 含浮动绩效 曹操专车 运营管培生  加各种补贴税前5.4K/月  base杭州 京东金融海龟回来8K/月 北京蓝港互动...

万物皆可RSS

All Credit to: 原作标题:可能是目前最全的RSS订阅源了 原作链接:https://www.runningcheese.com/rss-subscriptions 以下为节选: 一般网站和博客: 1). 通常在顶部菜单、右侧菜单、底部菜单等地方会有RSS图标。 2). 如果没有,可以尝试在网站地址后面加上/rss或者/feed,有时会出现在二级域名里。 3). 如果还没有,可以使用奶酪制作的小书签来自动查找RSS订阅源, 订阅到Feeder  , 订阅到Inoreader , 订阅到Feedly 4). 如果还是没有,可能网站没有提供RSS订阅。可以借用  Fivefilters.org  或者  Feedity.com 来制作订阅源。 5). 对于一些只提供了摘要RSS的网站,可以使用  FeedEx.Net  来制作全文RSS。 论坛: 一般会有 RSS 图标,如果没有,在网址后面加上 ?mod=rss。 比如网址  http://bbs.kafan.cn/forum-215-1.html ,其 rss 地址为  http://bbs.kafan.cn/forum-215-1.html?mod=rss 微博: https://rsshub.app/weibo/user2/博主ID,比如  https://rsshub.app/weibo/user2/1195230310 微信公众号: 在  瓦斯阅读  搜索要订阅的公众号名称,就会有专门的RSS订阅地址。 简书: https://rsshub.app/jianshu/user/作者ID,比如  https://rsshub.app/jianshu/user/yZq3ZV B站: https://rsshub.app/bilibili/user/video/UP主ID,比如  https://rsshub.app/bilibili/user/video/2267573 贴吧: 精品贴订阅:https://rsshub.app/tieba/forum/good/贴吧吧名(支持中文),比如  ht...

树莓派3开无线热点变身为智能无线网关(IPv4+IPv6)

原文地址 树莓派3开无线热点变身为智能无线网关(IPv4+IPv6) ,对作者表示感谢 无线上六维不是梦,折腾了两天终于终于弄好了~撒花~ 这个暑假一直在外实习,回到学校发现实验室已经没有了我的位置。。悲催的被赶到另一个实验楼,这个实验楼主要放的是各种服务器,因此IP比较紧张,以前我自带一个交换机,IP地址随便用,而且都是有线,IPv6默认都可以用,但这边我只分得一根网线,只有一个固定的IPv4的IP,倒是IPv6没有限制(不过后来测试发现还是有些限制)。对于我这么多设备根本不够用嘛。正好看到树莓派3上市了,自带wifi,CPU升级到A53,是服务器级的U了,立刻买了一个回来,当作我的网关。 这里我用树莓派搭的其实是一个NAT的路由器,把WAN的ipv4和ipv6都共享给内网LAN ,由于是在学校,我的IPv4的地址是固定的,而IPv6的地址动态分配(前缀是固定的),所以不要盲目跟着教程做。这里使用的树莓派是3代树莓派,系统是2016-09-23的raspbian jessie,板载wifi,不需要考虑驱动的问题,如果不是,那么先自行解决驱动问题,这里WAN外网是eth0,LAN内网是无线wlan0,如果接口不一致请自行替换,后面不再做解释。 准备工作 整个过程分为两步,先开IPv4的热点access point,再共享IPv6的热点access point,热点都不是采用bridge方式进行的连接。 固定IP(IPv4) 后面的树莓派默认使用dhcpcd进行ip的配置,因此网上好多关于配置树莓派固定IP的方法都是有点问题(很早的时候是配置/etc/network/interfaces), 我们现在配置dhcpcd的配置文件进行固定IP的配置 ,打开配置文件/etc/dhcpcd.conf 1 sudo vim /etc/dhcpcd. conf 里面内容不少,感兴趣可以查一下,这里直接拖到最下,根据自己的情况加入下面的内容 1 2 3 4 interface eth0 static ip_address= 211.187 .224 .79 / 24 static routers= 211.187 .224 .16 static domain_name_servers...

产品随想 | 周刊 第103期:站在艺术和科学的交会点

"If work is to become play, then tools must become toys." 30-plus years of HyperCard, the missing link to the Web   https://arstechnica.com/gadgets/2019/05/25-years-of-hypercard-the-missing-link-to-the-web/ 其中最宝贵的是这句教训:"I grew up in a box-centric culture at Apple. If I'd grown up in a network-centric culture, like Sun, HyperCard might have been the first Web browser. My blind spot at Apple prevented me from making HyperCard the first Web browser." MOVIE-WEB   https://github.com/movie-web/movie-web A small web app for watching movies and shows easily 随机搜索了下,命中率非常高,很好用诶 LunarBar 的开发   https://github.com/LunarBar-app/LunarBar/blob/main/DEV.md 用心的文档,能够看到 NeXT HQ   https://allaboutstevejobs.com/pics/pics_places/next/next_hq 可惜没有看到传说中的悬浮楼梯 Peter Q. Bohlin   https://en.wikipedia.org/wiki/Peter_Bohlin?useskin=vector 这位居然参与了这么多Apple Store的设计!!! The San Remo's board voted in 2000 to impose a six-month time limit for apartment renovations, imposing heavy fines on resid...

[海外建筑生活] MIT建筑系

原文链接: [海外建筑生活] MIT建筑系 发表于:寄托天下 2009-1-18 作者:dadazhe 前些日子和版大聊天,他让我写点关于mit的情况. 趁着寒假的尾巴,随便介绍点. mit的建筑系分为marchI marchII 和Smarch, 分别是三年半,两年半和两年. 前两这都是naab认证的,也就是说毕业以后可以考注册建筑师. smarch比较特殊,分为五个方向,你必须选择一个,分别是 urbanism, computation, theory&history, building technology, visual arts.