41 | 案例篇:如何优化 NAT 性能?(上)
NAT 原理
- 静态 NAT,即内网 IP 与公网 IP 是一对一的永久映射关系;
- 动态 NAT,即内网 IP 从公网 IP 池中,动态选择一个进行映射;
- 网络地址端口转换 NAPT(Network Address and Port Translation),即把内网 IP 映射到公网 IP 的不同端口上,让多个内网 IP 可以共享同一个公网 IP 地址。
- 第一类是源地址转换 SNAT,即目的地址不变,只替换源 IP 或源端口。SNAT 主要用于,多个内网 IP 共享同一个公网 IP ,来访问外网资源的场景。
- 第二类是目的地址转换 DNAT,即源 IP 保持不变,只替换目的 IP 或者目的端口。DNAT 主要通过公网 IP 的不同端口号,来访问内网的多种服务,同时会隐藏后端服务器的真实 IP 地址。
- 第三类是双向地址转换,即同时使用 SNAT 和 DNAT。当接收到网络包时,执行 DNAT,把目的 IP 转换为内网 IP;而在发送网络包时,执行 SNAT,把源 IP 替换为外部 IP。
- 本地服务器的内网 IP 地址为 192.168.0.2;
- NAT 网关中的公网 IP 地址为 100.100.100.100;
- 要访问的目的服务器 baidu.com 的地址为 123.125.115.110。
- 当服务器访问 baidu.com 时,NAT 网关会把源地址,从服务器的内网 IP 192.168.0.2 替换成公网 IP 地址 100.100.100.100,然后才发送给 baidu.com;
- 当 baidu.com 发回响应包时,NAT 网关又会把目的地址,从公网 IP 地址 100.100.100.100 替换成服务器内网 IP 192.168.0.2,然后再发送给内网中的服务器。
iptables 与 NAT
- filter 表中,内置 INPUT、OUTPUT 和 FORWARD 链;
- nat 表中,内置 PREROUTING、POSTROUTING、OUTPUT 等。
- PREROUTING,用于路由判断前所执行的规则,比如,对接收到的数据包进行 DNAT。
- POSTROUTING,用于路由判断后所执行的规则,比如,对发送或转发的数据包进行 SNAT 或 MASQUERADE。
- OUTPUT,类似于 PREROUTING,但只处理从本机发送出去的包。
SNAT
$ iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
$ iptables -t nat -A POSTROUTING -s 192.168.0.2 -j SNAT --to-source 100.100.100.100
DNAT
$ iptables -t nat -A PREROUTING -d 100.100.100.100 -j DNAT --to-destination 192.168.0.2
双向地址转换
iptables -t nat -A POSTROUTING -s 192.168.0.2 -j SNAT --to-source 100.100.100.100
iptables -t nat -A PREROUTING -d 100.100.100.100 -j DNAT --to-destination 192.168.0.2
sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
cat /etc/sysctl.conf | grep ip_forward
net.ipv4.ip_forward=1
小结
41 | 案例篇:如何优化 NAT 性能?(上)相关推荐
- 42 | 案例篇:如何优化 NAT 性能?(下)
上一节,我们学习了 NAT 的原理,明白了如何在 Linux 中管理 NAT 规则.先来简单复习一下. NAT 技术能够重写 IP 数据包的源 IP 或目的 IP,所以普遍用来解决公网 IP 地址短缺 ...
- windows 10 优化 (另一篇windows7优化的基础上 补充)
软件推荐: 卫士:火绒 (360.腾讯的话,要改好设置项,但是你改了也没大啥用) 搜索:Everything 压缩:7z.winRAR.360压缩 文本编辑:bowpad 桌面整理:腾讯桌面 --其 ...
- mysql实例和数据的安全_数据库安全--案例篇
目的 由于<数据库安全浅析>一文中,主要介绍了数据库安全方面的一些基本安全策略,缺少了必要的案例分析和处理过程.为了进一步丰富数据库安全的内容,特撰文案例篇,主要介绍数据库安全上遇到的案例 ...
- python 速度 memmap_从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例
<从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例>要点: 本文介绍了从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例,希望对您有用.如果有疑问,可 ...
- 优化反射性能的总结(上)
原文链接:http://www.cnblogs.com/fish-li/archive/2013/02/18/2916253.html 优化反射性能的总结(上) 阅读目录 开始 用Emit方法优化反射 ...
- 转 从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例
注: 转自 微信公众号"高可用架构":从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例 导读:Python 被很多互联网系统广泛使用,但在另外一方面,它也存在一 ...
- 【Linux 性能优化系列】Linux 性能优化 -- CPU 性能篇(三) Linux 软中断
[Linux 性能优化系列]Linux 性能优化 -- CPU 性能篇(三) Linux 软中断 [1]相关概念 [1.1]中断 中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力:为了减少 ...
- 【Linux 性能优化系列】Linux 性能优化 -- CPU 性能篇(一) 平均负载、上下文切换、CPU 使用率
[Linux 性能优化系列]Linux 性能优化 -- CPU 性能篇(一) 平均负载.上下文切换.CPU 使用率 [1]相关概念 [1.1]平均负载 平均负载是指单位时间内,系统处于可运行状态和不可 ...
- rust python扩展_Rust语言优化Python性能案例
原标题:Rust语言优化Python性能案例 导读:Python 被很多互联网系统广泛使用,但在另外一方面,它也存在一些性能问题,不过 Sentry 工程师分享的在关键模块上用另外一门语言 Rust ...
最新文章
- android测试点整理
- 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 1...
- 【作业】第六章 面向对象基础
- 计算机在课堂中的应用论文,任务教学法在计算机教学中的应用论文
- 洛谷——1064金明的预算方案————有依赖的背包
- 人工智能诗歌写作平台_智能写作VS人工写作,Giiso写作机器人解放你的创造力...
- 四元数(Quaternion)和欧拉角(Eulerangle)
- c++ scanf读取_使用scanf()读取内存地址并在C中打印其值
- 风变的python课程怎么样_风的解释|风的意思|汉典“风”字的基本解释
- 解决vue视图不渲染
- openstack 报错
- oracle共享锁与排他锁 详解
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_05 IO字符流_3_字符输出流_Writer类FileWriter类...
- Android设备通过fastboot刷入TWRP
- 量化交易1-backtrader介绍
- android u盘加载_[转] android 通过usb读取 U盘
- Typora常用快捷键(仅记录常用功能)
- NDK-r25交叉编译qemu:tests/qtest/libqos/libqos.fa.p/pci.c.o报错
- 怎樣制作线段动画_教您怎样才能演示图形平移过程?
- 目标检测 SSD: Single Shot MultiBox Detector - SSD在MMDetection中的实现
热门文章
- 大兴计算机职业学校,北京大兴区第一职业学校
- html本地路径图片转成base64,canvas-toDataURL()将图片转为dataURL(base64)
- select 统计数量_leetcode题库-sql练习精讲系列--十三、简单分组统计类问题
- react 哲学_细聊Concent amp; Recoil , 探索react数据流的新开发模式
- Spark SQL:SQLContext
- 24 个好用到爆的 Python 实用技巧!
- 危!我用python克隆了女朋友的声音!
- 3种Python数据结构,13种创建方法,这个总结,超赞!
- 专家解读:阅读AI论文对找工作有帮助吗?
- 数据分析、机器学习必读书,李航《统计学习方法》发布算法推导视频啦!(附作业讲解)...