我目前正在使用VMWare ESXi 5.5服务器进行虚拟化。 networking设置是这样的:
PFSense防火墙是它的中心,连接到:LANnetworking(由VMWare分配的物理NIC 1)DMZnetworking(VMWare分配的没有物理网卡)WAN(物理网卡2仅由VMWare分配给防火墙)
主机是LANnetworking的成员。 在DMZ和LANnetworking中有几个服务器都是基于Linux的,所以一点也不奇怪。
在我的情况下,防火墙负责pipe理所有stream量,物理网卡2专门用于防火墙(不是主机)。 这样防火墙就能够通过DHCP(有线提供商)获取由我的互联网提供商分配的公共IP地址。
最后,我现在可以从我的客户端(这是LANnetworking的成员)访问我想要的所有服务器,并且需要我通过PFSense上的特定防火墙规则pipe理的服务器。 到目前为止,一切都很好。
所以现在我的问题是如何在KVM中实现这个场景,并使KVM主机(这可能是一个Ubuntu服务器13.10或14.04或基于Debian的),一个networking相关的“哑”主机,让防火墙成为所有的坑networkingstream量。
我已经在我的带有KVM的笔记本电脑上进行了一些尝试,并安装了一个guest虚拟机(基于Ubuntu服务器13.10),但它只有一个物理网卡,并且我不想为此testing拉动网线。 🙂
所以所有的帮助,build议和想法如何得到这个设置完成非常感激。 如果缺乏信息,请告诉我,我会尽力更新这篇文章,但我希望在这篇文章中明确我想要做的事情。
VJ
PS:为了更好的理解这里是我目前的VMWarenetworking设置的图片。
简单。 我们假设:
WAN – > eth0
局域网 – > eth1
你要做的是用设备eth0创build一个网桥(让我们把它命名为br_wan),并在主机没有configurationIP的情况下(主机没有为br_wan设置IP)。
现在用设备eth1创build另一个桥(我们称之为br_lan),并让主机通过DHCP从这个桥取IP(假设PFSense是这里的DHCP服务器)。
对于PFSense虚拟机,您将同时为br_wan和br_lan作为以太网设备(使用virtio获得更好的性能)。 PFSense最有可能将它们视为eth0和eth1。
有些configuration基础知识,还没有testing过,但是你需要做的就是在/ etc / network / interfaces里面设置正确的configuration,下面的行是从我的内存中,没有经过testing,但应该是正确的:
====== / etc / network / interfaces在HOST ======
auto br_wan iface br_wan inet static address 0.0.0.0 bridge_ports eth0 auto br_lan iface br_lan inet dhcp bridge_ports eth1
据我所知,你需要几乎相同的设置,所以我会试着描述一下:
具有2个NIC的我的KVM服务器运行带有KVM + Libvirt的Ubuntu 13.10服务器。 一个NIC作为LAN上的网桥,另一个直接从ISP传递到虚拟防火墙(运行Vyatta)。
我的ISP分配IP绑定到MAC地址的DHCP。 虚拟防火墙处理到ISP的DHCP客户端呼叫,因此IP被直接分配给它。 在KVM服务器/主机上,我必须在面向网卡的ISP上设置静态本地地址,以阻止它进行DHCP客户端调用(因为我的ISP只会租用一个IP)
这是主机上的/ etc / network / interfaces(eth0连接到LAN交换机,eth1直接连接到ISP):
auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 10.0.0.2 netmask 255.255.255.0 gateway 10.0.0.1 network 10.0.0.0 broadcast 10.0.0.255 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 dns-nameservers 10.0.0.4 dns-search lan auto eth1 iface eth1 inet static address 10.0.99.1 netmask 255.255.255.252
这是虚拟机的接口configuration:
<interface type='direct'> <mac address='52:54:00:b6:58:85'/> <source dev='eth1' mode='vepa'/> <target dev='macvtap0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <interface type='bridge'> <mac address='52:54:00:88:94:6e'/> <source bridge='br0'/> <target dev='vnet1'/> <model type='virtio'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </interface>
Vyatta接口configuration如下所示(eth1连接到LAN /网桥,eth0是面向来自主机eth1的连接的ISP):
interfaces { ethernet eth0 { address dhcp duplex auto firewall { in { name wan2lan } local { name wan2gw } } hw-id 52:54:00:b6:58:85 smp_affinity auto speed auto } ethernet eth1 { address 10.0.0.1/24 duplex auto hw-id 52:54:00:88:94:6e smp_affinity auto speed auto } loopback lo { } }
这样我就可以将我的ISP的DHCP地址直接连接到虚拟防火墙,并且主机上的路由将按照我的要求通过虚拟防火墙。
希望这可以帮助 :-)