linux添加源地址ping,实战经验:Linux Source NAT在Ping场景下的应用

原标题:实战经验:Linux Source NAT在Ping场景下的应用

有时候,有这样的一种需求:

需要修改IP数据包中的源地址,比如,从某一个主机发送Ping包到另一个主机,需要修改源地址为另一个源(通常,发出Ping请求的主机有多个网卡地址)。

为了解决这一需求,Linux下的netfilter组件中有个Source NAT的功能,可以修改IP数据包中的源地址。

此功能实际上是通过iptables在POSTROUTING链中添加一条规则,此规则在数据包被最终发送出去之前被应用。下面是一个实例:

主机A网络配置:

eth0: 192.168.10.10

eth1: 172.18.10.10

主机B:

eth0: 192.168.10.1

1) 第一张场景

从A发送Ping请求到B:

# ping 192.168.10.1

通过WireShark抓包可以知道,Ping包中的源地址为192.168.10.10(默认Ping请求从eth0出来),目的地址是192.168.10.1。

2) 第二种场景

从A发送Ping请求到B,并使用-I选项:

# ping 192.168.10.1 -I 172.18.10.10

在此场景下,这里指定了-I选项,表明指定源地址为172.18.10.10。

所以,Ping请求包中的源地址变为172.18.10.10,目的地址不变,依然为192.168.10.1。

问题来了:怎样在第二种场景中(在指定-I选项的情况下)将源地址修改为192.168.10.10?

解决方法:添加Source NAT规则。具体步骤如下:

添加规则:

# iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to 192.168.10.10

添加完上述规则后,再次执行ping 192.168.10.1 -I 172.18.10.10,可以通过抓包发现Ping请求中的源地址已经由172.18.10.10修改为192.168.10.10。

备注:

如果想删除上面添加的Source NAT规则,可以执行如下指令删除:

删除规则:

# iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to 192.168.10.10

查看规则:

# iptables -nvL -t nat

参考资料:

以下内容来自netfilter官网帮助文档,也记录在这里留作参考:

1) Source NAT

You want to do Source NAT; change the source address of connections to something different. This is done in the POSTROUTING chain, just before it is finally sent out; this is an important detail, since it means that anything else on the Linux box itself (routing, packet filtering) will see the packet unchanged. It also means that the `-o’ (outgoing interface) option can be used.

Source NAT is specified using `-j SNAT’, and the `–to-source’ option specifies an IP address, a range of IP addresses, and an optional port or range of ports (for UDP and TCP protocols only).

16128228ec52befb199dade688b7a955.png

Masquerading

There is a specialized case of Source NAT called masquerading: it should only be used for dynamically-assigned IP addresses, such as standard dialups (for static IP addresses, use SNAT above).

You don’t need to put in the source address explicitly with masquerading: it will use the source address of the interface the packet is going out from. But more importantly, if the link goes down, the connections (which are now lost anyway) are forgotten, meaning fewer glitches when connection comes back up with a new IP address.

8facb4f40c290015f70574c0a097af4e.png

2) Destination NAT

This is done in the PREROUTING chain, just as the packet comes in; this means that anything else on the Linux box itself (routing, packet filtering) will see the packet going to its `real’ destination. It also means that the `-i’ (incoming interface) option can be used.

Destination NAT is specified using `-j DNAT’, and the `–to-destination’ option specifies an IP address, a range of IP addresses, and an optional port or range of ports (for UDP and TCP protocols only).

07755f55e2ece4cf483565b843d6099c.png

Redirection

There is a specialized case of Destination NAT called redirection: it is a simple convenience which is exactly equivalent to doing DNAT to the address of the incoming interface.

723a882b22422ae1aa52e2c6e2480ee5.png

Note that squid needs to be configured to know it’s a transparent proxy!返回搜狐,查看更多

责任编辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux升级glibc版本汉字乱码,Linux CentOS6升级glibc库过程

CentOS6升级glibc库过程hadoop无法加载native库,可能原因是 glibc库版本过低,需要升级。第一:安装以下软件yum -y install zlib zlib-devel gcc gcc-c libtool openssl openssl-devel automake autoconf libtool pcre*第二、查看系统glibc版本…

linux图形界面 革命,Windows 95带来的革命

CDECDE1993年6月-在“公用桌面环境“是与Sun,惠普,IBM和合资Unix系统实验室。CDE,通用桌面环境(CommonDesktopEnvironment)的缩写。CDE是一种运行于UNIX,基于Motif部件工具箱开发的商业桌面环境。惠普的OpenVMS采用CDE作为标准的桌…

real time linux pdf,【整理】ubuntu real time Linux

ubuntu real timeUbuntu不支持实时可参考看看如何才能支持想要自己编译实时内核的话参考去:下载:The Real Time Preempt Patch然后自己编译即可。对于实时系统所支持的功能和特性以及平台,详见这里提供了 已编译好的实时的Debian相关内容或参…

苹方字体 for linux,苹果苹方字体

苹果苹方字体是一款很实用的字体软件,苹果苹方字体是为中国苹果用户打造的全新字体,共有六种字重,使用方便,能够满足用户在阅读时不同的字体需求,并且苹果苹方字体还可以在安卓、Linux 等其他平台和设备上使用&#xf…

c语言龙贝格积分法实验报告,数值作业:龙贝格算法计算积分C语言实现

数值作业:龙贝格算法计算积分C语言实现数值作业:龙贝格算法计算积分C语言实现根据Romberg算法计算定积分,和变步长的Simpson算法的输入都一样.算法基本分析:输入a,b(积分上下限),n为积分区间等分数,eps为计算精度,我这…

w ndows7文档加密取消,win7文件夹怎么加密?windows7文件加密方法

win7文件夹怎么加密?电脑文件隐私问题一直都是很多用户的关注重点,尤其是自己电脑经常被他人使用的朋友。也许使用第三方软件为文件夹加密比较方便,但如果能够不借助“外力”完成这一任务就更加完美。下面,我们就一起来看看windows7文件加密…

小世界网络模型代码 c 语言,新的小世界网络模型实现文本特征的提取方法与流程...

本发明涉及语义网络技术领域,具体涉及新的小世界网络模型实现文本特征的提取方法。背景技术:目前常用的文本特征提取方法,包括词频-反文档频率方法—TF-IDF、信息增益方法、互信息等方法;TF-IDF的简单结构并不能有效地反映词汇或短…

米4用linux刷机救转,小米4变砖之后如何刷机自救?大神教你小米4线刷救砖方法...

三:使用miflash工具刷机的步骤本工具适用于小米,华为,联想等手机品牌高通版本,不只是小米专用,教程仅供参考,看完一遍后再刷机。第一步:刷机工具安装1.下载小米手机刷机工具MiPhone2015731&…

com.android.phone已停止运行怎么解决方法,com.android.phone已停止运行怎么解决

在安卓手机上,不少用户都会遇过com.android.phone已停止的弹窗,尤其经常刷机的最明显。导致的原因实在太多,有刷机步骤不对的,乱改系统文件的,这里小编综合网上的情况以及自身经历,给广大安卓用户一个com.a…

android动画放大后缩小,Android 补间动画 scale(缩放)

今天又遇到了关于Android 动画方面的问题,免不了一番疯狂找资料,所幸解决了自己的问题,为了避免以后遇到同样的问题,再次到处找资料,于是决定写篇随笔记录下来,方便自己方便大家^_^;废话就不说了…

android 机器人动画,Android 5.X与Android4.X版本机器人动画的区别以及制作动画的方法...

今天翻了下墙,解决了一直以来的疑惑问题:为什么Android5.0以及6.0的recovery版本,机器人动画怎么就只有一张图片?这个问题,我百思不得其解,看了很多网文,也只是有了个概念。请参考以下文档&…

android .9编译,在Ubuntu 9.04下编译Android源码

一直都是刷官方的版本,准备自己编译一下刷机。首先是下载,Android的源码是托管在Linux Kernel的源码站点,所以版本工具是git。关于git的使用和安装请见我的另一篇文章《在Ubuntu Server上安装Git》。创建一个存放Andorid的目录,然…

android rn框架开发的例子,RN与安卓通信架构篇

本篇文章介绍的搭建Android与Rn之间的简易通信架构,需要了解通信的基本使用的同学可以参考下面的链接开篇先上图 - “简易版的通信架构图”RN与Android之间通信的架构图本架构实现的功能有:自定义通信规则,并以Json作为数据传输格式进行传输实…

go 生成hash_go基础之map-写在前面(一)

为什么分析map在计算机编程语言当中,用的最多的数据结构估计就是map。map以他近乎o(1)的查找效率和修改效率让他在大多数场景下都比较受青睐。map的常规的实现方式都是hash其他数据结构,如java是hash红黑树,而我现在即将要分析的go的实现方式…

大学数学建模大赛是用计算机,北京大学第十届“江泽涵杯”数学建模与计算机应用竞赛试题...

消息来源:http://www.math.pku.edu.cn:8000/news/read.php?newsid8014A题:投篮问题投篮是篮球运动中一项关键性技术,是一项重要的得分手段。在篮球赛中有三种特殊的投篮方式,“三分球”、“两分球”和“一分球(罚篮)”。其中&…

dynamo方程怎么写_【简明自控】为什么特征方程如此重要

简明自动控制——为什么特征方程如此重要。热场视频:自平衡杆-双轴反作用轮倒立摆_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com顶个棍子!具有主动脚轮的全向移动机器人_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com我自行车怎么少…

和佳股份有没有纳米机器人_新高赛复赛入围项目(49)一种纳米硅质绝热材料及其制备方法...

点击上方“蓝字”关注我们“2020中国山东新旧动能转换高价值专利培育大赛”(简称“新高赛”)是由山东省市场监督管理局(知识产权局)主办,由山东省知识产权事业发展中心、知识产权出版社有限责任公司共同承办的以新旧动能转换高价值专利培育为主题的创新大赛。新高赛…

mastercam加工报表生成_2020北京加工中心编程培训工厂教学行业

2020北京加工中心编程培训工厂教学行业河北德玛数控培训自办工厂 全程四轴五轴实践 学生直接面对客户 承揽加工各种异形件复杂件 终身技术支持 可勤工俭学 解决企业各种技术问题,每个校区都有实训车间,实训图档不限、不限、时间不限、并且不另收费&#…

背景调查 跳槽_分享 | 录用背景调查,查的到底是什么?

招聘对于HR而言,是一项常规工作,同时也是一项非常重要的工作,招聘有一系列的步骤和程序,每一道步骤和程序都必不可少,显得那么的重要,这其中包括我们常说的笔试、面试、体检,还包括不常说的正式…

.class文件转换.java_Java中的动态链接VS操作系统动态链接

在操作系统OS中为了优化内存的使用会采用一种动态链接方式,一个文件想要在操作系统中运行必须经过编译、汇编译、链接、装载等步骤。可以参考Java程序是怎么跑起来的。本篇主要讲解Java栈帧中动态链接部分与操作系统的的动态链接的区别与联系操纵系统为什么需要动态…