Home Lab家庭实验室搭建之网络配置篇

本文讲的是Home Lab家庭实验室搭建之网络配置篇,在本文中,我将介绍构建网络的基本设置,这是一个简单的平面化网络,处于作为防火墙,NAT,DHCP和VPN的路由器的后面。

第一个操作是创建一个虚拟交换机,该平面网络中的所有虚拟机都将连接到该虚拟交换机。 几乎所有的虚拟解决方案都支持在一个名称或另一个名称下配置虚拟交换机。由于我为我的家庭实验室选择了ESXi,下文中所显示的命令都是用于此平台的命令,但一般来说,你可以使用Hyper-V或XenServer完成相同的操作。

我通过命令行显示所有步骤的主要原因是它们可以在以后的脚本中实现自动化,这将会是一个重复多次的过程。

当前网络

我将使用PowerShell模块PowerCLI 来进行配置(在Windows,Linix和OS X中均可以使用)。 我们首先在PowerCLI窗口中创建到ESXi服务器的会话,然后使用Connect-VIServer cmdlet进行连接。

PowerCLI C:\> Connect-VIServer -Server 192.168.1.3 -Credential (Get-Credential root) -Force
WARNING: The server certificate is not valid.  
Name                           Port  User
----                           ----  ----
192.168.1.3                    443   root

一旦连接,我们可以查看服务器上第一台交换机的端口组。默认的情况下,第一个交换机将被设置用于管理端口组,另一个交换机用于虚拟机的使用名称为vSwitch0,除非它已重命名。

PowerCLI C:\> Get-VirtualSwitch -Name vSwitch0 | Get-VirtualPortGroup  
Name                      Key                            VLanId PortBinding NumPorts 
----                      ---                            ------ ----------- -------- Management Network        key-vim.host.PortGroup-Mana... 0 VM Network                key-vim.host.PortGroup-VM N... 0

你可以看到VM的端口组被命名为VMNetwork。 这个网络将是我们的实验室构建块的外部网络。 我们可以通过使用Format-List cmdlet来查看交换机的详细信息,如:查看switch对象的所有属性,以便了解已经连接到哪一个网络接口。

PowerCLI C:\> Get-VirtualSwitch -Name vSwitch0 | Format-List -Property *   Id                : key-vim.host.VirtualSwitch-vSwitch0 
Key               : key-vim.host.VirtualSwitch-vSwitch0 
Name              : vSwitch0 NumPorts          : 1792 
NumPortsAvailable : 1779 
Nic               : {vmnic0} 
Mtu               : 1500 
VMHostId          : HostSystem-ha-host 
VMHost            : 192.168.1.3 
VMHostUid         : /VIServer=root@192.168.1.3:443/VMHost=HostSystem-ha-host/ Uid               : /VIServer=root@192.168.1.3:443/VMHost=HostSystem-ha-host/VirtualSwitch=key-vim.host.VirtualSwitch-v                     Switch0/ 
ExtensionData     : VMware.Vim.HostVirtualSwitch 
Client            : VMware.VimAutomation.ViCore.Impl.V1.VimClient

我们可以看到连接的网络接口是vmnic0。 所有的这些信息告诉我们当前的网络配置看起来像下图所示的内容:

这就是我们为家庭实验室所考虑的外部网络构建块。VyOS路由器的外部接口将连接在VM网络的端口组上。

实验室的虚拟交换机和端口组

现在我们需要创建将用于托管我们的虚拟机的虚拟交换机和端口组。我们依旧使用PowerCLI来进行配置。 为此,我们将使用 New-VirtualSwitch 这个cmdlet进行操作,然后我们需要确认没有NIC连接到该虚拟交换机。

PowerCLI C:\> New-VirtualSwitch -Name "Lab1" 
Name                           NumPorts   Mtu   Notes
----                           --------   ---   -----
Lab1                           1792       1500  
PowerCLI C:\> Get-VirtualSwitch -Name lab1 | Format-List -Property *  
Id                : key-vim.host.VirtualSwitch-Lab1
Key               : key-vim.host.VirtualSwitch-Lab1
Name              : Lab1
NumPorts          : 1792
NumPortsAvailable : 1778
Nic               :
Mtu               : 1500
VMHostId          : HostSystem-ha-host
VMHost            : 192.168.1.3
VMHostUid         : /VIServer=root@192.168.1.3:443/VMHost=HostSystem-ha-host/ Uid               : /VIServer=root@192.168.1.3:443/VMHost=HostSystem-ha-host/VirtualSwitch=key-vim.host.VirtualSwitch-L                     ab1/
ExtensionData     : VMware.Vim.HostVirtualSwitch
Client            : VMware.VimAutomation.ViCore.Impl.V1.VimClient

现在我们来创建一个端口组,以便我们可以将虚拟机连接到路由器的内部接口。 我们可以使用New-VirtualPortGroup 这个cmdlet。

PowerCLI C:\> New-VirtualPortGroup -Name Lab1 -VirtualSwitch Lab1  
Name                      Key                            VLanId PortBinding NumPorts 
----                      ---                            ------ ----------- -------- 
Lab1                      key-vim.host.PortGroup-Lab1    0

在ESXi虚拟交换机中,默认情况下有一个安全策略,以防止进行发送安全攻击,如网络嗅探,ARP Spoofing和其他基于网络的攻击技术。 如果希望练习这些内容,可以手动开启,但是这会降低虚拟交换机的安全等级。 要查看当前正在应用的安全策略,可以使用Get-SecurityPolicy 这个cmdlet。

PowerCLI C:\> Get-VirtualSwitch -Name lab1 | Get-SecurityPolicy 
VirtualSwitch                  AllowPromiscuous   ForgedTransmits  MacChanges -------------                  ----------------   ---------------  ----------
Lab1                           False              True             True

可以看出,交换机的输出将允许伪造传输,改变MAC地址,但不允许将接口置为混杂模式。 要修改策略,我们可以使用Set-SecurityPolicy 这个cmdlet。 在下面的示例中,我将AllowPromiscuous设置为true。

PowerCLI C:\> Get-VirtualSwitch -Name lab1 | Get-SecurityPolicy | Set-SecurityPolicy -AllowPromiscuous $true 
VirtualSwitch                  AllowPromiscuous   ForgedTransmits  MacChanges -------------                  ----------------   ---------------  ----------
Lab1                           True               True             True

安装VyOS路由器

对于我的家庭实验室,我喜欢使用VyOS作为我的路由器操作系统,它除了支持路由和NAT之外它还可以作为防火墙和VPN解决方案(L2TP / IPSEC和OpenVPN)。 该路由操作系统是开源的,可以通过ISO镜像文件进行安装,或者VMware设备文件(OVA),甚至在Amazon EC2上有一个可以预构建的设备文件进行部署。 你可以从VyOS Web页面下载安装文件。

我将使用PowerCLI部署VMware OVA设备文件,但是如果你要使用ISO镜像文件安装的话,你可以参考VyOS用户指南。

我们可以使用Import-vApp 这个cmdlet将OVA导入ESXi。 当我们查看该cmdlet的帮助信息时,我们可以看到Source和VMHost是必需指定的参数。

PowerCLI C:\> help Import-VApp
NAME
    Import-VApp
SYNOPSIS
    This cmdlet imports OVF (Open Virtualization Format) and OVA packages. The package can contain a virtual appliance
    or a virtual machine.
SYNTAX
    Import-VApp [-Source] <String> [-OvfConfiguration <Hashtable>] [[-Name] <String>] [-Location <VIContainer>]
    [-VMHost] <VMHost> [-Datastore <StorageResource>] [-Force] [-DiskStorageFormat <VirtualDiskStorageFormat>]
    [-Server <VIServer[]>] [-RunAsync] [-WhatIf] [-Confirm] [<CommonParameters>
DESCRIPTION
    This cmdlet imports OVF (Open Virtualization Format) and OVA packages. The package can contain a vApp or a virtual
    machine. The cmdlet returns a VApp object when the OVF contains a vApp and a VirtualMachine object when the OVF
    contains a single virtual machine.
RELATED LINKS
    Online version: http://www.vmware.com/support/developer/PowerCLI/PowerCLI63R1/html/Import-VApp.html
    Export-VApp
    Get-VApp
    New-VApp
    Remove-VApp
    Set-VApp
    Start-VApp
    Stop-VApp
    Move-VApp
REMARKS
    To see the examples, type: "get-help Import-VApp -examples".
    For more information, type: "get-help Import-VApp -detailed".
    For technical information, type: "get-help Import-VApp -full".
    For online help, type: "get-help Import-VApp -online"

为了确保我们所提供的值都是正确的, 我们首先将我们要部署的OVA文件的ESXi服务器的VMhost 保存到一个变量中。

PowerCLI C:\> $vmhost = Get-VMHost

其中有一个参数是Datastore,它不是强制性要指定的参数,但我想确保VM存储在我的服务器上的SSD中,所以我列出了可用的数据存储。

PowerCLI C:\> Get-Datastore  
Name                               FreeSpaceGB      CapacityGB 
----                               -----------      ---------- 
datastore1                             690.048         691.000 
SSD1                                   904.075         931.250 
isostore                             1,554.740                                690.048         691.000

一旦我决定了存储的位置,那我就会将其保存在一个变量中。

$datastore = Get-Datastore -Name "SSD1"

现在我就可以导入我刚刚从VyOS Web页面中下载的OVA文件了。

PowerCLI C:\> Import-VApp -Source C:\vyos-1.1.7-amd64-signed.ova -Name "Lab1_Router" -VMHost $vmhost -Datastore $datastore  
Name                 PowerState Num CPUs MemoryGB 
----                 ---------- -------- -------- 
Lab1_Router          PoweredOff 1        1.000

当我们查看VM的网络适配器时,我们看到它只有一个网络适配器1,并且它连接到了“VM网络”的端口组。

PowerCLI C:\> Get-NetworkAdapter -VM "Lab1_Router"  Name                 Type       NetworkName  MacAddress         WakeOnLan                                                                   Enabled ----                 ----       -----------  ----------         --------- Network adapter 1    Vmxnet3    VM Network                           True

我们需要向VM中添加另一个网络适配器,并将其添加到我们创建的Lab1端口组中。 我们首先将端口组对象保存到变量中,并将该变量与New-NetworkAdapter 这个cmdlet的PortGroup参数一起使用,以便在VM上创建新的网络适配器。

PowerCLI C:\> $pg = Get-VirtualPortGroup -Name lab1 
PowerCLI C:\> Get-VM -Name "lab1_router" | New-NetworkAdapter -Portgroup $pg -StartConnected 
WARNING: Parameter 'VM' is obsolete. Passing multiple values to this parameter is obsolete.  Name                 Type       NetworkName  MacAddress         WakeOnLan                                                                   Enabled 
----                 ----       -----------  ----------         --------- 
Network adapter 2    e1000      Lab1

一旦我们添加了第二块网络适配器,我们的逻辑路由器网络配置应该看起来像下图所示的网络:

路由器配置

现在我们开始配置路由器。 本文示例的家庭网络是192.168.1.0/24网络,并且内部网络将是10.101.101.0/24的网络。 在本文这个示例中,我需要使用其他路由器或其他接口创建一个子网,我将使用第三个八位字节来区分它们。 我倾向于提交并保存我的配置信息,以便在我不断向前推进时能够进行测试。

路由器的初始IP配置将如下图所示。

我们使用vyos / vyos的默认登陆凭证连接到路由器的控制台,在命令行提示中我们可以使用show命令验证接口名称并运行show interfaces,一旦名称确认之后,我可以通过进入配置模式启动配置并设置IP地址和网关信息。

configure 
set interfaces ethernet eth0 address 192.168.1.9/24 
set interfaces ethernet eth1 address '10.101.101.1/24' 
set system gateway-address  192.168.1.1 
commit 
save

我们可以使用ping命令来测试我们的配置,使用ping命令后在配置模式提示的三个请求 8.8.8.8的回显结果来确定我们是否可以到达网关。

@vyos# ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=54 time=50.3 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=54 time=53.6 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=54 time=47.5 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 47.570/50.545/53.675/2.508 ms
[edit]
vyos@vyos#

一旦我们将基本配置设置完毕,我们就可以命名路由器,并将vyos帐户的默认密码设置的更加安全。 如果要使用特殊字符,需要将密码括在引号之间。

set system login user vyos authentication plaintext-password '$secureP@ss' 
set system host-name R0 
commit 
save

现在我们在路由器上启用SSH以进行远程管理。 在这种情况下,我们只是启用服务。 我建议你使用密钥,限制密码和MA C地址以及采取其他措施来探索强化路由系统,以便养成配置实验室的好习惯,把它当成是一个生产环境去配置。

set service ssh port '22' 
commit 
save

在下一步中,我们将在路由器上对外部和内部的接口进行标记,然后创建第一个NAT网络10.101.0.0/16。 记住在开始时我提到的:我们可以使用第三个八位字节来创建子网并区分它们。

###########################
# Configura NAT interfaces
##########################
set interfaces ethernet eth0 description 'OUTSIDE'
set interfaces ethernet eth1 description 'INSIDE'
#####################
# Configure NAT rule.
#####################
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '10.101.0.0/16'
set nat source rule 100 translation address masquerade
commit
save

下一步将设置内部DHCP服务器的初始配置。 此服务器将为我们的实验室中部署的VM分配IP地址和基本配置信息。

IP地址池:10.101.101.20 – .254

域名:“acmelabs.pv”(你可以使用任何你喜欢的域名)

DNS服务器:10.101.101.1(一旦我们有了Active Directory域控制器,我们将更改该地址)

默认网关:10.101.101.1

##########################
# Configure DHCP service.
#########################
set service dhcp-server disabled 'false'
set service dhcp-server shared-network-name LAN subnet 10.101.101.0/24 default-router '10.101.101.1'
set service dhcp-server shared-network-name LAN subnet 10.101.101.0/24 dns-server '10.101.101.1'
set service dhcp-server shared-network-name LAN subnet 10.101.101.0/24 domain-name 'acmelabs.pvt'
set service dhcp-server shared-network-name LAN subnet 10.101.101.0/24 lease '86400'
set service dhcp-server shared-network-name LAN subnet 10.101.101.0/24 start '10.101.101.20' stop '10.101.101.254'
commit
save

由于在DHCP池中我们将路由器指定为了DNS服务器,因此我们将配置路由器作为DNS转发器,并指定两个Google的公共DNS服务器。 缓存大小设置为0,以便它总是能够获取最新地址,你可以改变这个设置值如果你愿意的话,我们将在路由器的内部接口中把它设置为监听状态。

###########################
# Configure DNS Forwarding.
###########################
set service dns forwarding cache-size '0'
set service dns forwarding listen-on 'eth1'
set service dns forwarding name-server '8.8.8.8'
set service dns forwarding name-server '8.8.4.4'
commit
save

接下来,我们将配置一组基本的防火墙规则,并且为每个规则都设置一个名称。

OUTSIDE-LOCAL是针对从外部流向防火墙上运行的服务的流量。

OUTSIDE-IN是从外部到内部网络的流量

防火墙的规则设置比较容易。 我们将允许以下网络流量从外部流入到路由器:

ICMP-ECHO请求,Ping。

SSH连接。

针对SSH的暴力破解。

######################
# Configure Firewall.
#####################
# Default Drop Rules
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'
# Accept Ping requests
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request'
set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp'
set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'
# Deter SSh brute-force attacks by allowing only 4 new connections within 60 seconds
set firewall name OUTSIDE-LOCAL rule 30 action 'drop'
set firewall name OUTSIDE-LOCAL rule 30 destination port '22'
set firewall name OUTSIDE-LOCAL rule 30 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 30 recent count '4'
set firewall name OUTSIDE-LOCAL rule 30 recent time '60'
set firewall name OUTSIDE-LOCAL rule 30 state new 'enable'
# Allow SSH to Router from the outside.
set firewall name OUTSIDE-LOCAL rule 31 action 'accept'
set firewall name OUTSIDE-LOCAL rule 31 destination port '22'
set firewall name OUTSIDE-LOCAL rule 31 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 31 state new 'enable'
# Apply firewall rules
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'
commit
save

结论

在本系列文章的第二部分也就是本文中,我们讲述了以下几点:

为内部网络创建虚拟交换机和端口组。
部署了VyOS路由器镜像。
在路由器上进行了基本NAT,SSH和防火墙配置。

在下一篇博文中,我将介绍用于访问内部网络的L2TP / IPSec和OpenVPN的VPN配置。一如既往的希望你能在这找到有用的信息。

原文发布时间为:2017年2月26日

本文作者:丝绸之路

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-08-04 14:24:34

Home Lab家庭实验室搭建之网络配置篇的相关文章

XP与Vista的N个不同之网络配置篇

在计算机的使用过程中,网络访问是另一重要应用.Windows操作系统自2000版本以来,就为使用者提供了丰富的网络性能,进入Vista时代后,网络功能更是得到了充分的发展.那么与XP相比,Vista究竟有哪些改变呢?且听我一一为大家分析. 1.计算机名设置 Windows XP:在桌面"我的电脑"的右键属性菜单中选择"属性"命令进入,然后在"计算机名"选项卡下设置. 主题"> Windows Vista:选择"我的电脑&

《网络安全测试实验室搭建指南》目录—导读

版权网络安全测试实验室搭建指南• 著 [美] Michael Gregg 译 曹绍华 刘俊婷 张青锋 刘 玺 责任编辑 傅道坤 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn • 读者服务热线:(010)81055410 反盗版热线:(010)81055315 版权声明网络安全测试实验室搭建指南Michael Gregg The Network Security

利用备份文件快速切换网络配置

移动办公是现代社会的趋势,利用笔记本电脑的网卡接口连入局域网,马上就可以进入工作状态.但是每个局域网的设置是不相同的,例如IP地址.网关等等,那么每到一个新的局域网中,你就需要重新进行设置,这样还是显得有些麻烦. 其实我们可以将不同环境下的网络设置备份下来,当你需要在某个网络环境中使用时,调入相应的备份文件即可完成网络的相关设置,这样就免去了手工设置的烦恼 ,非常方便快捷. 首先当然是进行网络配置的备份.例如你在家中和单位里所使用的网络配置是不同的,需要分别对其进行备份.先将电脑的网络设置为家中

数据中心服务器托管VMware虚拟化网络配置最佳实践

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1765796 通常把自己购买的服务器托管到一个具有双线网络接入的机房是一个不错的选择,每年的成本在1万元左右. 虚拟化能通过增加硬件的利用率来降低运行和维护物理服务器的成本.可以减少运行服务器工作负载所需的硬件数量.虚拟化的核心优势在于通过"一虚多"的方法提高灵活性和可扩展性,简化IT管理降低资金和运维等方

第五天 网络配置和文件服务器

复习: 判断题: 1.useradd -G test group 会添加用户test,并把用户加入到group组中 2.gpasswd -G test group 会把已经存在的用户test添加入用户组group中 3.setfacl -m d:u:aa:rwx -R /test 会给/test目录和目录下所有文件设定用户aa拥有rwx权限 4.ls >> aa 2>&1 会把ls命令的正确与错误输出都追加到文件aa中 5./etc/rc.d/init.d/httpd start

《网络安全测试实验室搭建指南》—第1章1.1节为什么要搭建一个实验室

第1章 搭建硬件及软件的测试平台 网络安全测试实验室搭建指南 有些人希望对信息安全的重要性有更好的理解,而本书恰好是为这一类读者准备的.本章将引导读者搭建一个包含软件和硬件的测试平台.回想一下你的小时候有没有这样的经历,你很好奇电视.收音机甚至电脑是怎么工作的,于是你找来了电烙铁.改锥甚至还有榔头,自己动手把电视机拆了个零零散散.这个过程和你阅读本书学习网络安全的工作原理是类似的,不同的是你的工具不再是改锥和榔头,而是一些安全协议和应用.当然你也会用到一些常用的检测工具,这些工具将会对你分析网络

局域网-一点击视频文件链接播放器就出现找不到文件位置或者网络配置不正确

问题描述 一点击视频文件链接播放器就出现找不到文件位置或者网络配置不正确 我在单位局域网里的一台电脑搭建一个视频点播系统,里面有100个左右WMV格式的视频文件,文件名字中文英文都有.我发现同一楼层的电脑能正常播放,不同楼层的电脑就不能播放,一点击视频文件链接播放器就出现找不到文件位置或者网络配置不正确,晕死,求大神相助 解决方案 看下网络的配置,网络本身通不通.

《LoadRunner 12七天速成宝典》—第1章 1.3节环境搭建之虚拟机配置

1.3 环境搭建之虚拟机配置云云:接着给你介绍一下怎么配置虚拟机,以后你就可以自己操作了,也不用总让我帮你重装系统了. 恋恋:你说我笨好了. 云云(无语). 恋恋:伤自尊了! 云云(继续无语). 恋恋(一气之下去洗碗去了). 云云:讲个笑话给你吧,别生气了,你知道变形金刚里面擎天柱为什么变形那么慢? 恋恋:电影呗,不就是给你这种宅男看的特效吗? 云云:不对,因为它没有用美孚一号. 恋恋(不语). 云云:打开VMware,单击"创建新的虚拟机",弹出向导对话框,如图1-12所示. 这里选

随心所欲:网络配置轻松切换

很多使用http://www.aliyun.com/zixun/aggregation/9600.html">笔记本电脑上网的朋友都会遇到这样的麻烦:由于在家里上网所设置的网卡IP地址.网关.DNS等与办公室的不一样,当拿着"本本"到办公室上班时,就得重新对TCP/IP属性进行设置,下班回家后又要把这个设置改回来,这样一天反反复复改几次,相当烦人.在这里给经常需要对TCP/IP属性进行变换的朋友推荐一个好软件--IPSwitcher Basic,只要我们把不同的 网络配