简述linux路由表

 

要理解基本的linux网络,除了iptables之外最重要的就是路由表了。

路由表用于决定数据包从哪个网口发出,其判断依据则主要是IP地址。

Linux路由表其实有2个主要概念:

  • 路由策略(rule)
  • 路由表(table)

Linux可以配置很多很多策略,数据包将依次通过各个策略,一旦匹配某个策略则进一步应用策略对应的路由表,如果当前路由表无法匹配到路由则继续执行后续策略匹配。

从网上找了一张很形象的图片:

下面就从命令出发,了解一下rule和table是如何协作的。

路由策略

从上图我们知道,路由策略是串行判定的。

利用如下命令查看系统自带的策略:

系统自带了3个策略,序号分别是0、32766、32767,策略匹配过程是从小到大执行的。

以0号策略为例,它表示匹配任意来源IP的数据包,然后用名字叫做local的路由表进行路由匹配。

如果local路由表里的规则能匹配成功,那么后续的rule就不会执行了,否则还会继续匹配32766等后续策略。

每1条策略最终都会关联到1张路由表,同1个路由表可以被N个策略关联,路由表总是随着路由策略的添加而生成的。

如果要了解如何管理路由策略,可以执行help:

比如,我添加一个序号为1的策略(它紧跟在0之后),它匹配所有数据包,并且对应一个全新的路由表10:

该命令组成:

  • ip rule add:添加策略的意思,所有策略相关的命令都是ip rule开头的。
  • from all to all:分别匹配全部来源IP和全部目标IP,其实就是匹配规则,更多规则大家可以看上面的help
  • pref 1:pref表示策略序号,其实也是优先级的意思,越小的序号越先被匹配。
  • table 10:如果匹配该策略,那么去查10号路由表。

其实不仅路由策略是序号指定的,路由表也是序号指定的。

但是也可以看到系统自带的路由表都是有名字的,比如local、main、default。

这是因为linux支持给路由表起名字,可以查看/etc/iproute2/rt_tables得知真实的table序号:

其实table/lookup local就相当于table 255。

删除刚刚添加的这条规则也很简单,可以利用匹配条件去匹配到它,或者直接利用pref 1指定策略序号删除:

不过我现在还是把它加了回来,因为接下来还要讲路由表。

我们通过table 10指定了一个新的路由表,它会被自动创建出来,而且是空的,因此当前这条策略什么也没做就会继续执行下一个策略了。

路由表

路由策略可以配好几万条都是没有问题的,但是路由表的数量有限。

所有路由表相关的命令都是ip route开头的,没有办法利用累死ip route list命令列出所有的路由表。

我们只能通过ip rule list查看策略对应的路由表,然后利用ip route list table序号/名字来查看具体的1张路由表:

如果ip route list没有指定table,那么其效果相当于table main,而table main则是Linux默认的路由表,其内的规则来自于局域网DHCP广播下发。

而类似proto kernel,scope link先不需要关注,遇到特殊的再说。

添加规则

接下来,我尝试利用ip route add命令,将我的table 10配置成和main表完全一样的样子,这样就可以用我自己配置的路由策略完成路由了。

因为网线直连了192.168.2.0/24网段,所以这个网段的可以直接通过eth0网卡通讯:

 

  • ip route add:添加路由规则
  • 192.168.2.0/24:用于匹配目标IP,判断是否应用该路由规则。
  • dev eth0:一旦匹配网段,则直接基于eth0所在的LAN通讯即可,也就是经过ARP广播得到目标IP的MAC地址,然后直接基于二层链路通讯即可。
  • table 10:表示添加该路由规则到10号路由表。

 

对于不在eth0直连网段内的设备,则发给网关192.168.2.1,由它进一步路由向外转发:

  • default:可以匹配任意目标IP,因此也称为默认路由。
  • via 192.168.2.1:匹配了default,那么就将数据包从eth0网口直接发给192.168.2.1的MAC地址,让其进一步路由转发,这里192.168.2.1就是网关。
  • table 10:该规则属于序号10的路由表。

现在可以测试一下是不是真的应用了我的table 10:

 

  • 可见请求192.168.2.100时,IP属于eth0直连LAN,所以走了table 10的对应网段规则。
  • 而请求外网的8.8.8.8时,该IP只能走default匹配,先发往网关192.168.2.1的MAC地址(这一步直接在eth0网卡上ARP就能拿到),再由192.168.2.1做自己的路由判定并forward数据包到更远方,这也是互联网这个大蜘蛛网的基本工作原理。

删除规则

删除规则可以通过ip route del后面跟着规则内容即可,比如:sudo ip route del default via 192.168.2.1 dev eth0 table 10。

关于路由表的工作原理与基本操作就说到这里,

 

 

 

 

 

 

 

 

 tcpdump抓取nc命令的包,ssh的包

端口变成协议:ssh 22;8080变成webcache

抓包可以保存成文件,vim打开乱码,可以用whireshark打开这个文件分析

 

 

抓三次握手,ssh连接上服务器;Ctrl d断开服务器抓4次挥手

抓icmp包

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-03-12 17:16  *Tesla*  阅读(150)  评论(0)    收藏  举报
       [00:00.000] 作词 : 陈信荣
    [00:01.000] 作曲 : 周传雄
    [00:02.000] 编曲 : 周传雄
    [00:03.000] 制作人 : 周传雄
    [00:29.259]过完整个夏天
    [00:34.742]忧伤并没有好一些
    [00:41.185]开车行驶在公路无际无边
    [00:47.320]有离开自己的感觉
    [00:52.453]
    [00:53.347]唱不完一首歌
    [00:59.370]疲倦还剩下黑眼圈
    [01:05.596]感情的世界伤害在所难免
    [01:11.703]黄昏再美终要黑夜
    [01:18.292]依然记得从你口中说出再见坚决如铁
    [01:24.732]昏暗中有种烈日灼身的错觉
    [01:30.171]黄昏的地平线
    [01:33.230]划出一句离别
    [01:36.313]爱情进入永夜
    [01:42.165]
    [01:42.881]依然记得从你眼中滑落的泪伤心欲绝
    [01:49.290]混乱中有种热泪烧伤的错觉
    [01:54.774]黄昏的地平线
    [01:57.816]割断幸福喜悦
    [02:00.915]相爱已经幻灭
    [02:07.171]
    [02:19.647]唱不完一首歌
    [02:25.497]疲倦还剩下黑眼圈
    [02:31.753]感情的世界伤害在所难免
    [02:37.881]黄昏再美终要黑夜
    [02:42.994]
    [02:44.363]依然记得从你口中说出再见坚决如铁
    [02:50.872]昏暗中有种烈日灼身的错觉
    [02:56.291]黄昏的地平线
    [02:59.393]划出一句离别
    [03:02.507]爱情进入永夜
    [03:08.340]
    [03:09.205]依然记得从你眼中滑落的泪伤心欲绝
    [03:15.531]混乱中有种热泪烧伤的错觉
    [03:20.937]黄昏的地平线
    [03:23.991]割断幸福喜悦
    [03:27.025]相爱已经幻灭
    [03:34.375]
    [03:58.563]依然记得从你口中说出再见坚决如铁
    [04:04.694]昏暗中有种烈日灼身的错觉
    [04:10.141]黄昏的地平线
    [04:13.156]划出一句离别
    [04:16.228]爱情进入永夜
    [04:21.297]
    [04:22.863]依然记得从你眼中滑落的泪伤心欲绝
    [04:29.401]混乱中有种热泪烧伤的错觉
    [04:34.714]黄昏的地平线
    [04:37.774]割断幸福喜悦
    [04:40.913]相爱已经幻灭
    [05:39.200] 配唱制作人 : 吴佳明
    [05:39.533] 钢琴 : 周传雄
    [05:39.866] 吉他 : 许华强
    [05:40.199] 鼓 : Gary Gideon
    [05:40.532] 贝斯 : Andy Peterson
    [05:40.865] 弦乐编写 : 吴庆隆
    [05:41.198] 弦乐 : 孔朝晖/顾文丽/隋晶晶/梁中枢/尹淑占/王言/关旗
    [05:41.531] 和声编写 : 周传雄
    [05:41.864] 和声 : 周传雄
    [05:42.197] 录音师 : 林世龙/沈文钏/Geoffrey Lee
    [05:42.530] 混音师 : 王晋溢
    [05:42.863] 录音室 : 强力/HASAYAKE/Atomic & Audioplex (Singapore)
    [05:43.196] 混音室 : 白金
    [05:43.529] OP : Sony/ATV Music Publishing Taiwan/哈萨雅琪有限公司
    [05:43.862] SP : Sony/ATV Music Publishing Taiwan​