前两篇文章介绍了XCP-ng的基础配置和使用方法,开设的小鸡是独立的IP,如果没有多IP的服务器就需要用到NAT了。
这篇文章介绍XCP-ng的NAT网络配置。首先登录到XCP-ng的SSH,开启IPv4转发:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p
验证是否开启成功,回显1说明OK:
cat /proc/sys/net/ipv4/ip_forward
启用xenbr0接口的伪装:
iptables -t nat -A POSTROUTING -o xenbr0 -j MASQUERADE
XCP-ng默认有一条转发链的规则,给它删掉,否则会影响小鸡的网络:
iptables -D FORWARD -j RH-Firewall-1-INPUT
注:这些iptables规则没有永久生效,重启后会还原。
打开XenOrchestra面板,新建-网络(接口选择你的主网卡名,例如我是eth0):
打开Hosts-网络,可以看到刚新建的网络,把mode改为static:
然后点左边的铅笔按钮配置静态地址,这里随便用一个内网的IP地址就可以,我用的是192.168.0.1(网关地址留空):
在设置-IPs添加IP地址块,这步的作用是后续让小鸡只允许使用地址块内的某一个或几个IP,防止IP冲突或是被冒充盗用:
回到XCP-ng的SSH查看刚才的配置是否正常:
xe network-list
如果正常你应该可以看到一个桥接在xapi(x)接口的新网络:
执行如下命令:
ip a
应该能看到xapi0具有192.168.0.1的IP地址:
执行如下命令:
ifconfig
应该也可以看到这个新的接口具有192.168.0.1的IP地址:
在XCP-ng上安装DHCP服务,实现小鸡自动配置网络(可选:)
yum -y install dhcp
编辑dhcpd.conf:
nano /etc/dhcp/dhcpd.conf
写入如下配置:
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.2 192.168.0.254; option domain-name-servers 8.8.8.8, 8.8.4.4; option routers 192.168.0.1; default-lease-time 3200; max-lease-time 7200; }
编辑systemd服务文件:
nano /usr/lib/systemd/system/dhcpd.service
让它只监听刚才新建的xapi0接口:
[Unit] Description=DHCPv4 Server Daemon Documentation=man:dhcpd(8) man:dhcpd.conf(5) Wants=network-online.target After=network-online.target After=time-sync.target [Service] Type=notify ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid xapi0 [Install] WantedBy=multi-user.target
如图所示,只需要在ExecStart后面加上你的接口名就行:
使修改生效/重启DHCF服务/设置开机自启:
systemctl daemon-reload systemctl restart dhcpd systemctl enable dhcpd
现在我们就可以回到XenOrchestra开一台小鸡试试看了:
注:
如果使用DHCP自动分配IP地址,在上面的这个新建小鸡界面不要选择指定IP,留空即可。
因为DHCP分配的IP地址是随机的,你在这个界面如果指定了IP那么后续DHCP如果分配的不是你指定的这个IP小鸡是没有网络的。
这其实是XCP-ng的一个功能,也就是之前配置的防止IP冲突的作用。
你可以在小鸡安装完成之后,查看DHCP分配给小鸡的IP,然后在小鸡的网络界面设置成一样的IP:
这样这台小鸡就只能用你指定的这个IP了,小鸡的使用者如果擅自修改小鸡内的IP,无论修改成哪一个都是没有网的。
简单测试一下小鸡的网络:
现在小鸡内是有网络的了,如果我们需要暴露小鸡内的服务给外部,使用DNAT即可,例如我现在要把这台小鸡的SSH服务暴露给外网,那么在XCP-ng上执行:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 23334 -j DNAT --to-destination 192.168.0.4:22
现在访问XCP-ng的公网IP:23334端口相当于访问了192.168.0.4:22。
这篇文章差不多就是这样了,后续再水一篇介绍下如何给XCP-ng生出来的小鸡“优化”性能。。。
高产似母猪