实现:由于本次学习是在虚拟机中实现,共有两台linux主机,其中作为服务器的linux主机先称作vm1,要共享网络的linux主机称作vm2,vm2为在vm1中建立的虚拟机
环境:redhalt 6.5
vm2配置:
由于是模拟网络共享的客户机,在vm设置里将网络模式改为host-only(仅主机模式),并记录下vm2的网段。实际需求中只需配置服务器vm1即可
1.
2.点击确定保存后,可以看到此时的vm2已无法访问网络。
3.在虚拟机菜单栏点击 编辑>>>虚拟网络编辑器,可在此查看或编辑你的vm2网段信息。
vm1配置(服务器):
1.修改/etc/sysctl.conf文件,将配置文件中net.ipv4.ip_forward = 0值改为= 1,开启数据包的转发
[root@localhost ~]# sysctl -p -----使配置文件生效
也可直接输入命令:echo 1 >/proc/sys/net/ipv4/ip_forward 重启会失效
2.启动防火墙:/etc/init.d/iptables start
3.依次输入下列两条命令:
[root@localhost ~]# iptables -S 查看红帽防火墙默认的规则链
[root@localhost ~]# iptables -D FORWARD 1 删除FORWARD里序号为1的规则
4.开启地址转换:
[root@localhost ~]# iptables -t nat -I POSTROUTING -s 192.168.148.0/24 -j MASQUERADE ----其中的ip段为vm2配置第三步中的ip段,可自定义
5.至此已搭建完成,只需将vm2设置为该ip段下任一ip即可成功实现访问网络。也可直接通过另外一台设备连接vm1,将ip设置到该网段下即可,vm1并不能自动分配
[root@oracledb ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=
NETMASK=
GATEWAY=
概念补充:
路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。
查看服务器到目标网址经过的ip:traceroute www.baidu.com
查看自己主机上的路由表:route -n
分类:
静态路由表:由系统管理员事先设置好固定的路由表称之为静态(static)路由表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。
动态路由表:动态(Dynamic)路由表是路由器根据网络系统的运行情况而自动调整的路由表。路由器根据路由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。路由器通常依靠所建立及维护的路由表来决定如何转发。
在局域网中,主机可以通过广播的方式来进行网络数据包的发送,但是在不同的网段类的主机想要互相连接时就必须通过路由器来实现。
路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。
转载于:https://my.oschina.net/shaoyu/blog/854330
来源:https://my.oschina.net/shaoyu/blog/854330
原作者删帖 不实内容删帖 广告或垃圾文章投诉
智能推荐
apache开启请求转发
实现访问goto.test,返回内容为purchase.plate.test 修改httpd.conf配置,将下面的两个模块开启 image.png 修改vhost.conf配置,添加转发 image.png 转发的网址后面一定要加反斜杠,否则静态文件不转发。...
转发与路由选择
转发:分组在单一的路由器的一条输入链路中,由路由器将该分组移动到合适的输出链路 路由选择:一个网络中,分组从发送方到接收方时,所采用的路径 举个栗子:如果要从北京到成都 路由选择是:北京->武汉->四川->成都 转发是:你在北京,你要用火车去武汉,而不是上海。...
路由转发功能
一、iptables工具移植 1、交叉编译iptables-1.4.12 ./configure --prefix=/home/huabiao/bin --exec-prefix=/home/huabiao/bin --host=arm --with- kernel=/home/huabiao/share/HI3520D/linux-3....
路由转发原理
自我总结,以强记忆。 实验图(未配置前) 图1未对PC和路由器端口(默认down)配置IP和下一跳,故无法通信。 先说说配置下一跳的不同方式的区别: 1.下一跳为本路由器的出口接口; 当配置静态路由时使用出口接口做为下一跳时,路由器会认为目标网络和接口处在“直连网络”中,而在直连网络中不同设备间的通信是通过ARP协议广播来获取到要到达的目标主机的MAC地址。故当pc7与pc...
路由转发流程
IP 地址和路由转发 此文档为回忆文档,不会详细解释原理 文章目录 IP 地址和路由转发 一、IP 地址 1.1 作用 1.2 分类 1.3 子网掩码 二、IP地址识别(路由转发) 2.1 路由器转发规则 2.2 最长匹配原则 2.3 路由迭代规则 2.3 缺省路由匹配 一、IP 地址 1.1 作用 IP 地址是用于识别计算机网络位置的地址;(IP 协议处于网络层) MAC 地址是计算机物理地址,...
猜你喜欢
DLINK 企业路由器内网部署web开启端口转发后还需要开启是否支持端口回流功能...
跑后台使用的服务器,配置一般都很低,带宽只有2Mb 一些大型文件比如app的更新包使用这种服务器不可行 但是公司的网络是100Mb对等静态ip专线 所以能利用起来,每年将会省下8万块 说干就干,这个步骤应该不难 我自己用ac88u在家也有搭建web,开启端口转发就可以了 但是这个di-7100死活就是不行, 无奈之下,打客服吧 告知ip端口和用户名密码之后那边设置了一下...
Linux运维之LVS使用NAT(路由转发)模式实现负载均衡
一、lvs-nat模式原理 LVS的转发主要通过修改IP地址 (NAT模式,分为源地址修改SNAT和目标地址修改DNAT)、修改目标MAC(DR模式)来实现。 NAT模式: 网络地址转换 NAT(Network Address Translation)是一种外网和内网地址映射的技术。NAT模式下,网络数据报的进出都要经过LVS的处理。LVS需要作为RS(真实服务器)的网关。当包到达LVS时,LVS...
论坛报名 | 智能信息检索与挖掘的最新进展和挑战
与6位图灵奖得主和100多位专家 共同探讨人工智能的下一个十年 长按图片或点击阅读原文,内行盛会,首次免费注册 2020年6月21-24日,第二届北京智源大会(官网:https://2020.baai.ac.cn)将邀请包括6位图灵奖获得者在内的上百位人工智能领袖,一起回顾过去,展望未来,深入系统探讨“人工智能的下一个十年”。本次大会将开设19个专题论坛,主题涵盖人工智能数...
2021年Java开发者常见面试题,学习路线+知识点梳理
基础 JAVA基础 JAVA集合 JAVA多线程并发 网络 数据结构与算法 框架 Spring SpringMVC MyBatis 设计模式 分布式 负载均衡 Zookeeper Redis MQ/kafka 微服务 Netty与RPC Spring Boot Spring Cloud Dubbo 调优 MySQL JVM Tomcat 最后 即使是面试跳槽,那也是一个学习的过程。只有全面的复习,...
zabbix api 使用,如何看官方文档。
zabbix 提供的丰富的API接口,几乎可以完成所有在zabbix web界面上的 *** 作,实现一个需求我们可以选用不同的API接口,提供多种解决方案。 官方文档说明 官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/api 点击链接会进入到下面的界面,介绍了API的使用以及提供的一些方法和一些示例。 在侧边栏我们可以看到不同的API接口...
相关问题
开启字节
如何使用Python将端口转发到路由器
在过滤查询后,Azure路由未转发到端点
Mikrotik路由器端口转发 - 无法从Web访问
C#开启枚举
路由器端口转发和HttpContext.Current.Request.URL
Zend_Router,在参数提供时,向indexController /转发路由
使用路由或mod_rewrite是否要转发旧URL?
Winsock客户端端口和路由器端口转发
使用UPnP以编程方式添加端口转发条目进入路由器?
相关文章
windows开启路由转发
Linux 路由转发实验
linux做路由并实现路由转发
Windows 10上开启路由转发及添加路由
Windows 10上开启路由转发及添加路由
Iptables-linux服务器做路由转发
虚拟机中linux系统实现路由转发功能
linux 路由转发及udhcpd的配置上网
linux配置静态路由实现路由转发和quagga实现动态路由实验
OpenWrt路由开启DDNS+端口转发进行外网访问
热门文章
美国W+NMN科普:NMN对肝脏的作用:NMN对肝脏的作用如何?
python 持续集成 教程_dotnet 部署 github 的 Action 进行持续集成|简明python教程|python入门|python教程...
java运行 mavenzip包_java application maven项目打自定义zip包实例(必看)
laravel 8学习记录(1)—— 配置phpstorm开发环境
A Critical Review of Recurrent Neural Networks for Sequence Learning
ngnix支持thinkphp3.2路由重写模式的配置,即URL_MODEL=>2的情况
Rabbit MQ 无法访问到 web 页面
Linux基础_使用基础技巧
C# Owin初探 概念理解
osi七层模型tcp四层模型
推荐文章
【行研资料】2021中国互联网医疗内容行业研究报告——附下载链接
软件测试和评估
SPI Base Knowledge
Idea 添加JDK自带的反编译工具javap
抽象类与接口的区别
JavaScript笔记(5.27)
周志华 机器学习 Day17
声纹识别的三生三世
快速构建Windows 8风格应用34-构建Toast通知
java格子布局怎么设置高度_自动布局:获取UIImageView高度以正确计算单元格高度...
相关标签
环境配置
windows开启路由转发
路由转发
windows
计算机网络
Windows
linux路由
ubuntu
虚拟机
linux
Copyright © 2018-2023 - All Rights Reserved - www.pianshen.com
网站内容人工审核和清理中!本站和cxyzjd等抄袭本站模板的网站没有任何关系,请注意分辨!
本站在春节期间即将改版,对人工核实过的涉及csdn版权文章做删除处理,
仅保留摘要,大家可以点击摘要后面的“查看原文”跳转到csdn查看。改版后的网站不再发布任何和csdn有关的文章,谢谢理解。
由于数据、程序改动较大,加之时间匆忙,本次改版会持续数日,可能会间歇性影响用户访问。
同时由于csdn自身存在大量版权争议文章,例如机器人账号、转载和不实标注原创问题,本次数据改动均采取人工核实,难免有遗漏和偏差,请来信指正。
一、概述 1. 什么是NAT 在传统的标准的TCP/IP通信过程中,所有的路由器仅仅是充当一个中间人的角色,也就是通常所说的存储转发,路由器并不会对转发的数据包进行修改,更为确切的说,除了将源MAC学校换成自己的MAC学校以外,路由器不会对转发的数据包做任何修改。NAT(Network Address Translation中国络学校翻译)恰恰是出于某种特殊需要而对数据包的源ip学校、目的ip学校、源端口、目的端口进行改写的 *** 作。 2. 为什么要进行NAT 我们来看看再什么情况下我们需要做NAT。 假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的IP学校都是伪IP,但是部分用户要求建立自己的WWW服务器对外发布信息,这时候我们就可以通过NAT来提供这种服务了。我们可以在防火墙的外部中国卡上绑定多个合法IP学校,然后通过NAT技术使发给其中某一个IP学校的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。 再比如使用拨号上中国的中国吧,因为只有一个合法的IP学校,必须采用某种手段让其他机器也可以上中国,通常是采用 中国服务器的方式,但是中国服务器,尤其是应用层中国服务器,只能支持有限的协议,如果过了一段时间后又有新的服务出来,则只能等待中国服务器支持该新应用的升级版本。如果采用NAT来解决这个问题, 因为是在应用层以下进行处理,NAT不但可以获得很高的访问速度,而且可以无缝的支持任何新的服务或应用。 还有一个方面的应用就是重定向,也就是当接收到一个包后,不是转发这个包,而是将其重定向到系统上的某一个应用程序。最常见的应用就是和squid配合使用成为透明中国,在对http流量进行缓存的同时,可以提供对Internet的无缝访问。 3. NAT的类型 在linux2.4的NAT-HOWTO中,作者从原理的角度将NAT分成了两种类型,即源NAT(SNAT)和目的NAT(DNAT),顾名思义,所谓SNAT就是改变转发数据包的源学校,所谓DNAT就是改变转发数据包的目的学校。 二、原理 在“用iptales实现包过虑型防火墙”一文中我们说过,netfilter是Linux 核心中一个通用架构,它提供了一系列的"表"(tables),每个表由若干"链"(chains)组成,而每条链中可以有一条或数条规则(rule)组成。并且系统缺省的表是"filter"。但是在使用NAT的时候,我们所使用的表不再是"filter",而是"nat"表,所以我们必须使用"-t nat"选项来显式地指明这一点。因为系统缺省的表是"filter",所以在使用filter功能时,我们没有必要显式的指明"-t filter"。 同filter表一样,nat表也有三条缺省的"链"(chains),这三条链也是规则的容器,它们分别是: PREROUTING:可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip学校,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NATPOSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则。 OUTPUT:定义对本地产生的数据包的目的NAT规则。 三、 *** 作语法 如前所述,在使用iptables的NAT功能时,我们必须在每一条规则中使用"-t nat"显示的指明使用nat表。然后使用以下的选项: 1. 对规则的 *** 作 加入(append) 一个新规则到一个链 (-A)的最后。 在链内某个位置插入(insert) 一个新规则(-I),通常是插在最前面。 在链内某个位置替换(replace) 一条规则 (-R)。 在链内某个位置删除(delete) 一条规则 (-D)。 删除(delete) 链内第一条规则 (-D)。 2. 指定源学校和目的学校 通过--source/--src/-s来指定源学校(这里的/表示或者的意思,下同),通过--destination/--dst/-s来指定目的学校。可以使用以下四中方法来指定ip学校: a. 使用完整的域名,如“至美.linuxaid中国中国”b. 使用ip学校,如“192.168.1.1”c. 用x.x.x.x/x.x.x.x指定一个中国络学校,如“192.168.1.0/255.255.255.0”d. 用x.x.x.x/x指定一个中国络学校,如“192.168.1.0/24”这里的24表明了子中国掩码的有效位数,这是 UNIX环境中通常使用的表示方法。 缺省的子中国掩码数是32,也就是说指定192.168.1.1等效于192.168.1.1/32。 3. 指定中国络接口 可以使用--in-interface/-i或--out-interface/-o来指定中国络接口。从NAT的原理可以看出,对于PREROUTING链,我们只能用-i指定进来的中国络接口而对于POSTROUTING和OUTPUT我们只能用-o指定出去的中国络接口。 4. 指定协议及端口 可以通过--protocol/-p选项来指定协议,如果是udp和tcp协议,还可--source-port/--sport和 --destination-port/--dport来指明端口。 四、准备工作 1. 编译内核,编译时选中以下选项,具体可参看“用iptales实现包过虑型防火墙”一文: Full NAT MASQUERADE target support REDIRECT target support 2. 要使用NAT表时,必须首先载入相关模块: modprobe ip_tables modprobe ip_nat_ftp iptable_nat 模块会在运行时自动载入。 五、使用实例 1. 源NAT(SNAT) 比如,更改所有来自192.168.1.0/24的数据包的源ip学校为1.2.3.4: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 1.2.3.4 这里需要注意的是,系统在路由及过虑等处理直到数据包要被送出时才进行SNAT。 有一种SNAT的特殊情况是ip欺骗,也就是所谓的Masquerading,通常建议在使用拨号上中国的时候使用,或者说在合法ip学校不固定的情况下使用。比如 # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 可以看出,这时候我们没有必要显式的指定源ip学校等信息。 2. 目的SNAT(DNAT) 比如,更改所有来自192.168.1.0/24的数据包的目的ip学校为1.2.3.4: iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -j DNAT --to 1.2.3.4 这里需要注意的是,系统是先进行DNAT,然后才进行路由及过虑等 *** 作。 有一种DNAT的特殊情况是重定向,也就是所谓的Redirection,这时候就相当于将符合条件的数据包的目的ip学校改为数据包进入系统时的中国络接口的ip学校。通常是在与squid配置形成透明中国时使用,假设squid的监听端口是3128,我们可以通过以下语句来将来自192.168.1.0/24,目的端口为80的数据包重定向到squid监听 端口: iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-port 3128 六、综合例子 1. 使用拨号带动局域中国上中国 小型企业、中国吧等多使用拨号中国络上中国,通常可能使用中国,但是考虑到成本、对协议的支持等因素,建议使用ip欺骗方式带动区域中国上中国。 成功升级内核后安装iptables,然后执行以下脚本: #载入相关模块 modprobe ip_tables modprobe ip_nat_ftp #进行ip伪装 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 2. ip映射 假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的IP学校都是伪IP,但是部分用户要求建立自己的WWW服务器对外发布信息。我们可以再防火墙的外部中国卡上绑定多个合法IP学校,然后通过ip映射使发给其中某一个IP学校的包转发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。 我们假设以下情景: 该ISP分配给A单位至美服务器的ip为: 伪ip:192.168.1.100 真实ip:202.110.123.100 该ISP分配给B单位至美服务器的ip为: 伪ip:192.168.1.200 真实ip:202.110.123.200 linux防火墙的ip学校分别为: 内中国接口eth1:192.168.1.1 外中国接口eth0:202.110.123.1 然后我们将分配给A、B单位的真实ip绑定到防火墙的外中国接口,以root权限执行以下命令: ifconfig eth0 add 202.110.123.100 netmask 255.255.255.0 ifconfig eth0 add 202.110.123.200 netmask 255.255.255.0 成功升级内核后安装iptables,然后执行以下脚本: #载入相关模块 modprobe ip_tables modprobe ip_nat_ftp 首先,对防火墙接收到的目的ip为202.110.123.100和202.110.123.200的所有数据包进行目的NAT(DNAT): iptables -A PREROUTING -i eth0 -d 202.110.123.100 -j DNAT --to 192.168.1.100 iptables -A PREROUTING -i eth0 -d 202.110.123.200 -j DNAT --to 192.168.1.200 其次,对防火墙接收到的源ip学校为192.168.1.100和192.168.1.200的数据包进行源NAT(SNAT): iptables -A POSTROUTING -o eth0 -s 192.168.1.100 -j SNAT --to 202.110.123.100 iptables -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT --to 202.110.123.200 这样,所有目的ip为202.110.123.100和202.110.123.200的数据包都将分别被转发给192.168.1.100和192.168.1.200而所有来自192.168.1.100和192.168.1.200的数据包都将分 别被伪装成由202.110.123.100和202.110.123.200,从而也就实现了ip映当服务器迁移,因为DNS未同步或某些人使用ip访问,一些流量还是会流向老的服务器。 使用iptables及其伪装特性,将所有流量转发到老的服务器。 点击看iptables的介绍 。 本文假设没有运行的iptables,至少没有针对prerouting链和postrouting链的NAT表的转发规则。1) 首先开启端口转发 # echo "1" >/proc/sys/net/ipv4/ip_forward 或sysctl net.ipv4.ip_forward=12) 增加端口转发 将端口1111上的流量转发到主机2.2.2.2 上的端口1111。# iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111然后告诉IPtables伪装起来(masquerade)# iptables -t nat -A POSTROUTING -j MASQUERADE仅仅重定向一个固定网络甚至是一台主机的流量 # iptables -t nat -A PREROUTING -s 192.168.1.1 -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111仅仅重定向一个网段的流量# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 1111 -j DNAT --to-destination 2.2.2.2:1111 这就可以进行Linux端口转发流量了。 查看转发规则 sudo iptables -t nat -nL 1) docker bridge模式2) 安全方面,同主机上端口指定网卡ip上的流量转发 3) 端口转发到另外的服务器,见上边案例 4) snat场景 5) dnat场景,内网访问外网https://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/欢迎分享,转载请注明来源:内存溢出
评论列表(0条)