【 浅谈Linux路由机制 】
以下均为个人实验验证结果,如有问题,恳请指正。
现在服务器一般都有四张网卡,给了我们更多网络模型的选择。为了业务的需求,有时我们需要如下网络架构
系统:centos 7.2 x64
两张网卡不在同一个网络里,
eno16777736: 10.0.0.11/24
eno33554984: 192.168.111.128/24
ping 10.0.0.1
抓包查看如下:
证明网卡:报文是从eno16777736网卡出去的。
ping 192.168.111.129
抓包查看如下:
证明网卡报文是从eno33554984网卡出去的。
ping baidu.com
抓包如下:
证明连接外网是从eno16777736网卡出去的。
说明:在linux上,默认的配置就实现了如上的需求,接下来我们查看该服务器的路由情况。
为了进一步理解路由的作用,我们一条一条的分析。
首先删除第一条路由规则:
第一条路由规则为默认路由:
尝试ping 10.0.0.1
此时,我们在尝试ping baidu.com
网络直接返回不可达。
路由的概念:路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。
而当我们把默认路由删除,对于访问同网段10.0.0.0/24地址来说,不需要路由的转发,同网段的访问是直接mac地址通信,而当你要访问非本网段内的主机时,就需要一台设备明确的知道你要访问的主机在何处,而你的主机就必须指向这台设备才行,这台设备就启用转发的功能帮你完成数据包的发送,这个设备就叫做路由设备。
接下来,我们的路由表里还有两条路由规则:
10.0.0.0/24 dev eno16777736 proto kernel scope link src 10.0.0.11 metric 100
说明:当需要发送/接收网段为:10.0.0.0/24报文时,从 eno16777736 网卡进行发送/接收。
192.168.111.0/24 dev eno33554984 proto kernel scope link src 192.168.111.128 metric 100
说明:当需要发送/接收网段为:192.168.111.0/24报文时,从 eno33554984 网卡发送/接收。
删除第二条规则进行验证:
ping 192.168.111.129
对于本机网卡来说,此路由规则就好像是一扇门,当删掉这条路由规则时,门就关闭了,外面的人进不来,里面的人出不去。
因此,我们总结下:
在使用一张物理网卡的主机上,至少需要两条路由规则,一条为默认网关路由,一条为网卡路由。
在使用两张物理网卡的主机上,至少需要三条路由规则,一条为默认网关路由,两条为网卡路由。
以此类推。
如果想让服务器隔离外网,直接删除默认路由即可。
附:
ip route 命令使用如下;
# ip route show 查看路由表
# ip route add default via 10.0.0.1 添加默认路由
# ip route del 192.168.111.0/ 删除路由
# ip route add 192.168.111.0/ dev eno33554984 添加网卡路由
【 浅谈Linux路由机制 】的更多相关文章
- 浅谈Linux中的信号处理机制(二)
首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...
- 浅谈 Linux 内核无线子系统
浅谈 Linux 内核无线子系统 本文目录 1. 全局概览 2. 模块间接口 3. 数据路径与管理路径 4. 数据包是如何被发送? 5. 谈谈管理路径 6. 数据包又是如何被接收? 7. 总结一下 L ...
- 【VS开发】【DSP开发】浅谈Linux PCI设备驱动(二)
我们在 浅谈Linux PCI设备驱动(一)中(以下简称 浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的.后面我们会举个例子来说明Linux PCI设 ...
- (转)浅谈 Linux 内核无线子系统
前言 Linux 内核是如何实现无线网络接口呢?数据包是通过怎样的方式被发送和接收呢? 刚开始工作接触 Linux 无线网络时,我曾迷失在浩瀚的基础代码中,寻找具有介绍性的材料来回答如上面提到的那些高 ...
- []转帖] 浅谈Linux下的五种I/O模型
浅谈Linux下的五种I/O模型 https://www.cnblogs.com/chy2055/p/5220793.html 一.关于I/O模型的引出 我们都知道,为了OS的安全性等的考虑,进程是 ...
- Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博 ...
- 浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释
浅谈linux中shell变量$#,$@,$0,$1,$2,$?的含义解释 下面小编就为大家带来一篇浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释.小编觉得挺不错的,现在就分享给 ...
- 浅谈Linux下/etc/passwd文件
浅谈Linux 下/etc/passwd文件 看过了很多渗透测试的文章,发现在很多文章中都会有/etc/passwd这个文件,那么,这个文件中到底有些什么内容呢?下面我们来详细的介绍一下. 在Linu ...
- 浅谈linux IO csy 360技术 2021-01-18
浅谈linux IO csy 360技术 2021-01-18
随机推荐
- LeetCode 3——无重复字符的最长子串
1. 题目 2. 解答 2.1. 方法一 我们从前往后遍历字符串,start 代表最长子串的起始位置,一开始设置为零. 如果没有遇到重复字符,则更新子串的长度,向后遍历. 如果遇到重复字符时,则更新字 ...
- kaldi解码及特征提取详解
目录 1. 注意事项 2. 流程图: 3. 具体流程指令: 1. 注意事项 首先要训练好模型,用到3个文件,分别是: final.mdl(训练模型得到的模型文件) final.mat(用来特征转换) ...
- sping事务的理解
阅读数:2020 一.事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤 ...
- lintcode-95-验证二叉查找树
95-验证二叉查找树 给定一个二叉树,判断它是否是合法的二叉查找树(BST) 一棵BST定义为: 节点的左子树中的值要严格小于该节点的值. 节点的右子树中的值要严格大于该节点的值. 左右子树也必须是二 ...
- DataView RowFilter Syntax [C#]
RowFilter语法 private void btnEnquiry_Click(object sender, EventArgs e) { string filterExpression = st ...
- 用js通过url传参把数据从一个页面传到另一个页面
好长时间没写博客了,时值五一,外面到处人山人海,本宝宝还是好好呆在家学习吧.好了,言归正传.在没有后台支持的情况下,如何实现从一个页面像另一个页面来传递数据呢?应该很多人遇到过这个问题吧.那我就来说说 ...
- [STL] 遍历删除两个vector中交集
#include <vector> #include <string> #include <algorithm> using namespace std; int ...
- 隐马尔可夫模型HMM
隐马尔可夫模型HMM的探究 1 HMM基本概念1.1 定义1.2 观测序列生成过程1.3 HMM的三个问题2 概率计算算法2.1 直接计算算法2.2 前向算法forward algorithm2.3 ...
- Python数据分析(二)pandas缺失值处理
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 3), index=['a', 'c', 'e' ...
- 第一个贴上XMT标签的Hadoop程序
距离老板留给我并行化做属性约简的任务开始到今天,已是一周有余,期间经历过各种呕心沥血,通宵达旦,终于运行出了一个结果.其中在配置过程中,浪费了爷大量的时间,有时回想自己上个周干的事情,会觉得分明的本末 ...