当前位置: 首页 > news >正文

利用Iptables构建虚拟路由器

利用Iptables构建虚拟路由器

(1)修改网络类型

在VMware Workstation软件中选择“编辑→虚拟网络编辑器”菜单命令,在虚拟网络列表中选中VMnet1,将其配置为“仅主机模式(在专用网络内连接虚拟机)”,设置子网IP为192.168.1.0,子网掩码为255.255.255.0,完成后单击“确定”按钮,如图1-41所示。

 

图1-41 设置主机网络模式

(2)添加网络适配器

在虚拟网络编辑器中添加一个虚拟网络VMnet2,配置为“仅主机模式”,设置子网IP为“192.168.2.0”,子网掩码为“255.255.255.0”,如图1-42、图1-43所示。

 

图1-42 配置主机网络模式

 

图1-43 DHCP设置

(3)添加网卡

使用VMware Workstation创建3个CentOS 7.5系统的虚拟机,分别命名为student1、student2、student3。

student1配置VMnet1,student2配置VMnet2,student3配置VMnet1和VMnet2两块网卡,如图1-44所示。

 

图1-44 student3设置双网卡模式

(4)配置IP地址

使用静态IP配置3个虚拟机的IP地址,使虚拟机student1和虚拟机student2在不同网段,而虚拟机student3两张网卡分别对应着不同的两个网段。虚拟机IP地址详细信息见表1-1。

表1-1 虚拟机网络规划表

主机名

网卡

IP地址

子网掩码(netmask)

网关(gateway)

student1

ens33

192.168.1.128

255.255.255.0

192.168.1.129

student2

ens33

192.168.2.128

255.255.255.0

192.168.2.129

student3

ens33

192.168.1.129

255.255.255.0

192.168.1.1

ens34

192.168.2.129

255.255.255.0

192.168.2.1

(5)远程连接

使用SecureCRT工具远程连接3台虚拟机,用虚拟机student3分别ping虚拟机student1和student2,并让虚拟机student1和虚拟机student2互ping,验证虚拟机student3和student1、student2之间分别相通,虚拟机student1和虚拟机student2不通。

[root@student3 ~]# ping 192.168.1.128 –c 4

PING 192.168.1.128 (192.168.1.128) 56(84) bytes of data.

64 bytes from 192.168.1.128: icmp_seq=1 ttl=64 time=0.365 ms

64 bytes from 192.168.1.128: icmp_seq=2 ttl=64 time=0.356 ms

64 bytes from 192.168.1.128: icmp_seq=3 ttl=64 time=0.433 ms

64 bytes from 192.168.1.128: icmp_seq=3 ttl=64 time=0.433 ms

--- 192.168.1.128 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 2259ms

rtt min/avg/max/mdev = 0.433/0.642/1.020/0.267 ms

[root@student3 ~]# ping 192.168.2.128 –c 4

PING 192.168.2.128 (192.168.2.128) 56(84) bytes of data.

64 bytes from 192.168.2.128: icmp_seq=1 ttl=64 time=0.533 ms

64 bytes from 192.168.2.128: icmp_seq=2 ttl=64 time=0.422 ms

64 bytes from 192.168.2.128: icmp_seq=3 ttl=64 time=0.435 ms

64 bytes from 192.168.2.128: icmp_seq=4 ttl=64 time=0.452 ms

--- 192.168.2.128 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3523ms

rtt min/avg/max/mdev = 0.422/0.460/0.533/0.048 ms

[root@student1 ~]# ping 192.168.2.128 –c 4

PING 192.168.2.128 (192.168.2.128) 56(84) bytes of data.

From 172.24.13.1 icmp_seq=3 Destination Host Unreachable

From 172.24.13.1 icmp_seq=4 Destination Host Unreachable

--- 192.168.2.128 ping statistics ---

4 packets transmitted, 0 received, 100% packet loss, time 23961ms

[root@student2 ~]# ping 192.168.1.128 –c 4

PING 192.168.1.128 (192.168.1.128) 56(84) bytes of data.

From 172.24.13.1 icmp_seq=3 Destination Host Unreachable

From 172.24.13.1 icmp_seq=4 Destination Host Unreachable

--- 192.168.1.128 ping statistics ---

4 packets transmitted, 0 received, 100% packet loss, time 34618ms

(6)构建虚拟路由器

现在将虚拟机student3作为虚拟交换路由器,使得不同网段的虚拟机student1和虚拟机student2可以互相通信。在虚拟机student3中作出如下操作使其成为虚拟路由器。

# echo 'net.ipv4.ip_forward=1' > /etc/sysctl.conf        \\开启包过滤功能即开启路由功能

# echo "net.ipv4.conf.default.rp_filter=0" >> /etc/sysctl.conf    \\启用源路由核查功能

# echo 'net.ipv4.conf.all.rp_filter=0' >> /etc/sysctl.conf      \\关闭反向路径过滤

#sysctl –p                                                 \\内核网络设置生效

(7)修改防火墙配置

修改虚拟机student3的IPtables配置,使其可以接受并转发192.168.1.0/24和192.168.2.0/24两个网段的包。

# iptables –F           \\清空所有 chain中的规则

# iptables –X           \\删除所有用户自定义

# iptables –Z            \\把所有链的包及字节的计数器清空

# iptables-save   \\保存IPtables的配置

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens33  

\\指定192.168.10.0/24网段的包从ens33出去

# iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o ens34

\\指定192.168.20.0/24网段的包从ens34出去

(8)检查连通性

检查虚拟机student1和虚拟机student2之间是否可以连通。

[root@student1 ~]# ping 192.168.2.128 –c 4

PING 192.168.2.128 (192.168.2.128) 56(84) bytes of data.

64 bytes from 192.168.2.128: icmp_seq=1 ttl=63 time=17.2 ms

64 bytes from 192.168.2.128: icmp_seq=2 ttl=63 time=0.873 ms

64 bytes from 192.168.2.128: icmp_seq=3 ttl=63 time=1.11 ms

64 bytes from 192.168.2.128: icmp_seq=3 ttl=63 time=1.11 ms

--- 192.168.2.128 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 2567ms

rtt min/avg/max/mdev = 0.873/6.413/17.256/7.667 ms

[root@student2 ~]# ping 192.168.1.128

PING 192.168.1.128 (192.168.1.128) 56(84) bytes of data.

64 bytes from 192.168.1.128: icmp_seq=1 ttl=63 time=1.03 ms

64 bytes from 192.168.1.128: icmp_seq=2 ttl=63 time=0.842 ms

64 bytes from 192.168.1.128: icmp_seq=3 ttl=63 time=0.833 ms

64 bytes from 192.168.1.128: icmp_seq=3 ttl=63 time=0.833 ms

--- 192.168.1.128 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 2419ms

rtt min/avg/max/mdev = 0.833/0.902/1.031/0.091 ms

(9)IPtables的网络隔离

使用IPtables规则隔离同网段的连接。使虚拟机student2和虚拟机student3直接无法连通。

#iptables -I INPUT -s 192.168.2.0/24 -j DROP   \\设置一个规则来自192.168.2.0/24的包直接drop掉

[root@student2 ~]# ping 192.168.2.129           \\用ping测试192.168.2.0/24网段连通

PING 192.168.1.129 (192.168.1.129) 56(84) bytes of data.

^C

--- 192.168.2.129 ping statistics ---

5 packets transmitted, 0 received, 100% packet loss, time 4679ms

相关文章:

利用Iptables构建虚拟路由器

利用Iptables构建虚拟路由器 (1)修改网络类型 在VMware Workstation软件中选择“编辑→虚拟网络编辑器”菜单命令,在虚拟网络列表中选中VMnet1,将其配置为“仅主机模式(在专用网络内连接虚拟机)”&#x…...

C++——类和对象[中]

0.关注博主有更多知识 C知识合集 目录 1.类的默认成员函数 2.构造函数和析构函数基础 3.构造函数进阶 4.析构函数进阶 5.拷贝构造函数 6.运算符重载 7.日期类 7.1输入&输出&友元函数 8.赋值运算符重载 9.const成员函数 9.1日期类完整代码 10.取地址重载 …...

Symbol.iterator和Symbol.asyncIterator

Symbol是什么? symbol是ES6标准中新增的一种基本数据类型,symbol 的值是通过 Symbol()函数返回的,每一个 symbol 的值都是唯一的,即使传入相同的描述值。 注:Symbol 函数不允许通过 new 的方式调用 Symbol的作用是什…...

忆暖行动|“他一个人推着老式自行车在厚雪堆的道路上走,车上带着学生考试要用的司机”

忆暖行动|“他一个人推着老式自行车在厚雪堆的道路上走,车上带着学生考试要用的sj” 一头白发,满山青葱 在那斑驳的物件褶皱中,透过泛黄的相片,掩藏着岁月的冲刷和青葱的时光。曾经的青年早已经不复年轻,但是那份热爱…...

Python中True、False、None的判断(避坑)

2.4 Python中True、False、None的判断 在Python中,所有的空值和0在作为条件表达式时,隐式的进行bool转换后都是False,比如:空列表:[]、空字符串:‘’、空字典:{}等等。 from icecream import …...

Spring Bean定义有哪些方式?

概述 对于学习Spring的兄弟姐妹来说,觉得这个问题很熟悉,若是要把它回答得很清楚,却是很为难?平时写代码的时候,不会在意这些概念问题,但面试时这个问题出现的频率却是很高,所以还是必须要掌握…...

JVM内存模型的演变

1,背景 class文件、类的加载过程。我们的class文件就要进入到JVM内存里,我们沿着经典的JDK1.6,JDK1.7,JDK1.8看看在其中都经历了哪些改变 概念的统一: 方法区: 方法区可以看作是JVM逻辑上管理一片区域的…...

DataX3同步Mysql数据库数据到Mysql数据库和DataX3同步mysql数据库数据到Starrocks数据库

DataX3同步Mysql数据库数据到Mysql数据库和DataX3同步mysql数据库数据到Starrocks 一、认识DataX二、DataX3概览三、DataX3框架设计四、DataX3插件体系五、DataX3核心架构六、DataX 3六大核心优势1.可靠的数据质量监控2.丰富的数据转换功能3.精准的速度控制4.强劲的同步性能5.健…...

你是否曾经为自己写的代码而感到懊恼?那如何才能写出高质量代码呢?

这里写目录标题 一、 前言二、高质量代码的特征三、编程实践技巧1. 遵循编码规范2. 使用有意义的变量名和函数名3. 减少代码重复4. 使用注释5. 编写单元测试6. 使用设计模式7. 使用版本控制工具8. 保持代码简洁9. 优化代码性能10. 学习和借鉴他人的代码总结 一、 前言 写出高质…...

常用 Composition API【VUE3】

二、常用 Composition API 7. 计算属性与监视 7.1 computed函数 与Vue2.x中computed配置功能一致写法 <template><h1>一个人的信息</h1>姓&#xff1a;<input type"text" v-model"person.firstName"><br><br>名&a…...

--商业模式--

O2O O2O&#xff0c;网络用语中指Online To Offline的缩写&#xff0c;即在线离线/线上到线下&#xff0c;是指将线下的商务机会与互联网结合&#xff0c;让互联网成为线下交易的平台。 O2O概念最早来源于美国。O2O的概念非常广泛&#xff0c;既可涉及到线上&#xff0c;又可…...

JavaWeb《HTML基础标签》

本笔记学习于Acwing平台 MDN官方文档https://developer.mozilla.org/zh-CN/ 目录 1. html文件结构 2. 文本标签 3. 图片 4. 音频和视频 5. 超链接 6. 表单 7. 列表 8. 表格 9. 语义标签 10. 特殊符号 1. html文件结构 文档结构 html的所有标签为树形结构&#xff…...

ChatGpt 能取代人类吗?

目录 前言 一、ChatGpt是什么&#xff1f; 二、ChatGpt能做什么 总结 前言 随着人工智能的不断发展&#xff0c;很多人都开启了学习机器学习&#xff0c;以及现在ChatGpt的出现&#xff0c;对人类社会带来了很多变化。 智能化交流方式&#xff1a;ChatGpt的出现为人们提供了…...

PHP内存溢出Allowed memory size of 解决办法

以前追踪过这个问题,但是那个时候工具用的不太好,没看的这么细,这次搞的比较细,修正了偶以前的看法 .于是写小文一篇总结一下. PHP偶尔会爆一下如下 错误Allowed memory size of xxx bytes exhausted at xxx:xxx (tried to allocate xxx bytes) 不想看原理的,直接跳到最后…...

重回代码,学习总结

回顾加总结 2021年 自动化测试 1.ETL 数据库开发维护(oracle pl/sql) 2.自动化测试(javaseleniumcucumber) 2022年 功能测试 1.功能测试&#xff08;学习测试用例&#xff0c;postman测试&#xff09; 2.性能测试&#xff08;jmeter初学&#xff09; 2023年 测试开发 1.学习了…...

【Leetcode -86.分隔链表 -92.反转链表Ⅱ】

Leetcode Leetcode -86.分隔链表Leetcode -92.反转链表Ⅱ Leetcode -86.分隔链表 题目&#xff1a;给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每…...

算法记录 | 48 动态规划

198.打家劫舍 思路&#xff1a; 1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义&#xff1a;dp[i]&#xff1a;前 i 间房屋所能偷窃到的最高金额。 2.确定递推公式&#xff1a;dp[i] max(dp[i - 2] nums[i-1], dp[i - 1]) i间房屋的最后一个房子是nums[i−…...

CRM部署Always on 后 CRM报无法更新数据库,数据库只读,且读写分离不正常

CRM部署Always on 后 CRM报无法更新数据库&#xff0c;数据库只读&#xff0c;读写分离不正常 问题描述背景信息问题原因解决方案 问题描述 CRM部署Always on 后 CRM报无法更新数据库&#xff0c;数据库只读 读写分离不正常,出现错乱链接。 背景信息 1.2个节点配置SQL serve…...

麓言信息设计创意思维,打开设计师思路

在现在快速发展的时代&#xff0c;信息纷杂繁琐&#xff0c;如果一个设计不能让人眼前一亮&#xff0c;印象深刻&#xff0c;只会沦为平凡作品&#xff0c;无亮点无用处。正所谓&#xff0c;无设计不创意&#xff0c;这句口号正是喊出对设计的要求。   伴随着时代的发展、…...

POJ3704 括号匹配问题 递归方法

目录 题目 算法 完整代码 题目 参考 递归: https://blog.csdn.net/qq_45272251/article/details/103257953 利用了递归, 但思路稍复杂了 循环: https://blog.csdn.net/weixin_50340097/article/details/114579805 (看起来是递归其实是循环. 每次递归其实是循环内一次迭…...

np.meshgrid的indexing参数:从二维到三维的坐标轴映射逻辑解析

1. np.meshgrid的indexing参数&#xff1a;二维世界的坐标系战争 第一次用np.meshgrid时&#xff0c;我也被那个神秘的indexing参数搞得晕头转向。明明只是想把两个一维数组变成网格坐标&#xff0c;怎么出来的结果跟想象中完全不一样&#xff1f;后来才发现&#xff0c;这背后…...

ubuntu 快捷键和常用命令

在使用 ubuntu 作为主机后&#xff0c;对于一些常见的操作&#xff0c;需要更加快捷的方式执行&#xff0c;这也是我选择 ubuntu 的主要原因。这篇文章手机 ubuntu 的快捷键和一些常用的命令。 快捷键 f2是重命名 linux控制台快捷键 ctrl a e CtrlShiftn 新终端 ShiftCt…...

CANN/asc-devkit make_int2向量构造函数

make_int2 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/…...

渗透测试技巧(七)| 系统提权

系统提权基础 实战过程中,你通过漏洞(上传漏洞、弱口令、Web 漏洞)打进服务器,一般只能对应应用服务的账户权限。这个权限常常属于低权限账户,无法查看账号密码、配置系统文件、获取敏感数据等,这时就需要提权!提权就是把低权限账号升级为系统最高权限,从而完全控制服…...

AI智能体如何通过区块链钱包实现自动化加密云存储

1. 项目概述&#xff1a;当AI智能体遇上加密云存储如果你正在使用OpenClaw这类AI智能体平台&#xff0c;并且头疼于如何让它们自动、安全地处理云端数据——比如备份对话记录、上传生成的文件&#xff0c;或者管理需要付费的API服务——那么你很可能需要一个既懂区块链支付、又…...

软件设计原则之OCP开闭原则

(OCP) 开闭原则 Open Closed Principle核心原则对扩展开放&#xff0c;对修改关闭。场景描述还是拿 UserInfo 进行举例。在开发过程中我们需要对我们使用的对象进行多步的组合操作&#xff0c;比如这里要打印账户和密码信息。常规的方式就是在外部直接进行调用&#xff0c;或者…...

Kubernetes部署Dify AI平台:从Docker Compose到K8s原生YAML完整迁移指南

1. 项目概述与核心价值最近在折腾AI应用开发平台&#xff0c;发现Dify这个工具确实挺有意思&#xff0c;它把大模型应用开发的门槛降得很低。不过&#xff0c;官方主要提供了Docker Compose的部署方式&#xff0c;对于已经将生产环境全面容器化、并且用上了Kubernetes的团队来说…...

AIAgent系统崩溃前的7个征兆:基于SITS2026容错框架的实时预警与自愈方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;SITS2026容错框架的理论根基与演进脉络 SITS2026&#xff08;Self-Integrating Tolerance System 2026&#xff09;并非凭空而生&#xff0c;其设计深度植根于分布式系统可靠性理论、形式化验证方法论与…...

如何用AI技术5分钟搞定视频硬字幕提取?这个开源工具让你轻松生成SRT字幕文件

如何用AI技术5分钟搞定视频硬字幕提取&#xff1f;这个开源工具让你轻松生成SRT字幕文件 【免费下载链接】video-subtitle-extractor 视频硬字幕提取&#xff0c;生成srt文件。无需申请第三方API&#xff0c;本地实现文本识别。基于深度学习的视频字幕提取框架&#xff0c;包含…...

终极Zotero插件管理指南:如何一键安装数百个学术研究工具

终极Zotero插件管理指南&#xff1a;如何一键安装数百个学术研究工具 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing, installing, and reviewing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons …...