Linux双网卡路由器配置
Linux双网卡路由器配置
一、测试工作室的网络要求:
测试工作室在会议室内,作为独立测试环境,希望于公司现有网络分开;因为希望能够访问公司内网的资源,也希望不用去会议室就可以远程桌面访问测试服务器,或者通过不同端口访问发布在工作室内部的应用程序。 这里就提出了两个要求:
1、 测试工作室可以随意访问公司内网(主要是访问内网的数据库服务器或者共享文件);
2、 公司内网可以通过特定端口访问测试工作室(http协议访问应用程序,远程桌面访问控制测试服务器)。
这恰巧就是一台普通路由器应该具备的功能。普通家庭用的路由器就是具备路由转发功能,实现共享上网,然后还可以映射端口,供外网访问到内网开启的对外服务。 这里重点写下里面的路由实现原理,以解释我们访问实现方法。
二、liunx双网卡代理服务器的信息
操作系统:Redhat Linux9
网络图: 公司内网(10网段)——公司网关——外网| 网卡Eth0(10.1.10.173) | linux代理做的路由 | 网卡Eth1(192.168.1.1) | 交换机——工作组(192网段)
网卡: Eth0:IP:10.1.10.173 Mask:255.255.255.0 Gateway:10.1.10.254 Eth1:IP:192.168.1.1 Mask:255.255.255.0 Gateway:空 路由表:
设置完毕后,系统自动添加 Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth1 10.1.10.0 * 255.255.255.0 U 0 0 0 eth0 default 10.1.10.254 0.0.0.0 UG 0 0 0 eth0
路由脚本: touch /var/lock/subsys/local
#到达指定目录
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp /sbin/modprobe ip_conntrack_ftp
#加载这些功能模块
/sbin/iptables –F
#删除file表中的全部规则
/sbin/iptables -F -t nat
#删除nat表中的全部规则
/sbin/iptables –X
#删除用户指定的链
/sbin/iptables –Z
#把所有链的包及字节的计数器清空
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
#指定默认的链 INPUT、FORWARD、OUTPUT都允许。
echo 1 > /proc/sys/net/ipv4/ip_forward
#开启内核包转发功能
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 10.1.10.173
#修改出去的192.168.1.*的包成转化为地址10.1.10.173出去
echo "60" > /proc/sys/net/ipv4/tcp_keepalive_time
#TCP链路保持连接时间60s
echo "45" > /proc/sys/net/ipv4/tcp_keepalive_intvl
#keepalive探测包的发送间隔
echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes
#如果对方不予应答,探测包的发送次数
iptables -t nat -A PREROUTING -d 10.1.10.173 -p tcp --dport 7001 -j DNAT --to 192.168.1.11:7001
iptables -t nat -A PREROUTING -d 10.1.10.173 -p tcp --dport 3389 -j DNAT --to 192.168.1.11:3389
#端口映射(-t 表nat, -A后面增加一条, PREROUTING 修改路由之前进入的包, -p 采用的tcp协议,--dport 端口号,-j 目标跳转,DNAT 进来的时候改变目的地址)对nat表增加一条进来的地址为10.1.10.173,端口为*的包跳转到内网地址的对应的端口。3389为远程桌面默认端口。
三、路由包转发说明
1、测试工作室机器互相访问 测试工作室的机器(IP为192.168.1.*)的机器访问同一网段的机器当然没有问题,默认路由表里面已经有了,192.168.1.*网段的数据包都通过eth1网卡转发。(没有这块网卡其实也是可以访问的,只不过是通过对局域网进行广播寻找到目的地址)。
2、测试工作室机器对公司内网访问 测试工作室的机器(192.168.1.*)的机器对公司内网机器(10.1.10.*)的访问,网卡自动识别目的地址为10.1.10.*的数据包,于是eth1就把数据表交给eth0,然后从eth0发给公司内网的机器。
3、公司内网通过端口访问测试工作室的机器 公司内网的机器(10.1.10.*)访问测试工作室的机器(192.168.1.*)时,并不能直接访问到192.168.1.*网段,因为我们的网关是10.1.10.254,他找不到测试工作室的网段。但是我们可以访问10.1.10.173,这块和我们同一个网段的网卡,同时也是路由的eth0外网卡,然后路由识别对10.1.10.173的访问,然后把包丢该eth1,eth1按照我们设置好的规则(脚本里面的规则),把对不同端口访问的数据包丢给相应的测试工作室的机器。
其中需要说明的重点:
1、“开启内核包转发功能”,路由才会去把两个网段之间访问的数据在两块网卡之间转发。
2、我们发送的数据都是被打包分成很多很多小的数据包转发的,数据包里面包含了源地址、目的地址、校验码等等信息。数据包通过网卡转发的时候,网卡会修改这些信息,以实现我们夸网段的访问。 比如192.168.1.2访问10.1.10.6,数据包地址经过一次192.168.1.2转换为10.1.10.173,由eth0发给10.1.10.6,当返回请求的数据包到达10.1.10.173,网卡了解到请求是192.168.1.2发出的,所以再把10.1.10.173地址修改为192.168.1.2交给eth1去转发给192.168.1.2。 这些都是基于TCP/IP协议的访问。
由此我们还可以自己思考下,测试工作室的机器(IP为192.168.1.*)访问google的时候数据包经过eth1转发,再通过公司网关10.1.10.254伪装成公司公网地址*.*.*.*转发,当我们的请求返回的时候可想而知数据包包含的信息量,以及TCP/IP这些底层协议的奇妙。
Linux双网卡路由器配置相关推荐
- linux双网卡驱动配置,linux网卡驱动安装、双网卡绑定
本次课程包含RAID0/1/5/6/10/50/60配置实验(使用Dell R720服务器实验).Redhat/CentOS/ubuntu/windows操作系统安装.windows/linux网卡绑 ...
- linux双网卡绑定配置lacp,Redhat和Centos操作系统双网卡绑定
Redhat和Centos操作系统双网卡绑定 猫先生 • 2019 年 05 月 31 日 在我们日常Linux使用中,一般对于生产网都会使用双网卡或多网卡接入,这样既能添加网络带宽,同时又能做相应的 ...
- linux实现双网卡互通,linux 双网卡互通配置
ubuntu下 #!/bin/sh #前提用联通IP登录系统 cp /etc/iproute2/rt_tables /etc/iproute2/rt_tables.bak # telecom #ech ...
- linux双网卡私网,linux双网卡路由配置私网专线
ifcfg-enp2s0f0公网如下: cat /etc/sysconfig/network-scripts/route-ifcfg-enp2s0f0 TYPE=Ethernet PROXY_METH ...
- Linux操作系统下双网卡路由表配置
Linux操作系统下双网卡路由表配置 作者:佚名 字体:[增加 减小] 来源:互联网 时间:09-08 17:08:11 我要评论 如果eth0为192.168.10.123/255.255.255. ...
- linux配置网卡绑定后不生效,Linux双网卡绑定实现负载均衡和失效保护
在这介绍的Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作.其实这项 ...
- Linux 双网卡双IP配置
Linux 双网卡双IP配置 当一台服务器接了两根网线,配置了两个IP,此时网络数据包的流向是如何走的? 我在cnaaa.com上购买了云服务器. 先说一下背景,原服务器IP为192.168.10.8 ...
- 设置双网卡mic linux,linux双网卡绑定为逻辑网卡
网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术. 生产环境服务器为:DELL 网卡为:光纤 bond需要修改涉及的网卡配置文件 /e ...
- Linux双网卡绑定bond详解
Linux双网卡绑定bond详解 bond 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术 通过以下命令确定内核是否支持 bondi ...
最新文章
- Day 08 周六下午的活动
- oracle数据库if else,[数据库]oracle中if/else的3种写法
- 从一个Android码农视角回顾2018GDD大会
- .Net Core实现健康检查
- 选择版本Win7系统VS2010下搭建qt开发环境
- es 全量同步mysql_使用canal将mysql同步到es中
- 带哨兵节点的链_Redis 哨兵节点之间相互自动发现机制(自动重写哨兵节点的配置文件)...
- 交叉熵的本质是极大似然估计
- php log日志管理,PHP日志LOG类定义与用法示例
- 如何设置Parallels Desktop游戏模式?
- linux zk服务 关闭_linux上安装zookeeper 启动和关闭的教程
- ADMM之1范数理解
- php如何将时间戳,PHP如何将时间戳转换日期
- adb shell 查看CPU架构
- 李飞飞计算机视觉课程CS231n总结
- 满减折扣促销功能代码优化实战
- 如何用PS把照片变成红/白/蓝底
- Keil、uVision、RealView、MDK、Keil C51之间的区别
- 怎么样才能在CODELITE中输出中文呢!!!
- python面试指南
热门文章
- 如何将本地django项目部署到服务器,Django本地项目部署到云服务器
- ubuntu安装记录——安装作业部落cmd markdown
- PTA 乙级 1026 程序运行时间 (15point(s))
- MLK | 特征工程系统化干货笔记+代码了解一下(上)
- OSPF协议简述(二)
- 台式电脑怎么调分辨率_台式电脑分辨率怎么调(分辨率调多少合适)
- OpenCV_7漩涡
- 西安:食肉种族的最爱
- 401 错误原因和解决方案
- Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性