Xenserver環境:vim
一:環境準備api
內網:192.168.2.100bash
外網:x.x.x.xtcp
1.1:登錄XenCenter測試
1.2:進入Xenserver中的Networking選項this
1.3:點選下邊的Configure...按鈕,進入Configure IP Addresses對話框rest
1.4:點選Add IP address新建虛擬交換機code
1.5:Network 1 網卡鏈接外網server
Network 2 網卡鏈接內網虛擬交換機blog
二:創建Centos7虛擬機並配置網卡
2.1:vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no #BOOTPROTO=dhcp BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth1 #UUID=dd48994a-7f5c-44c1-a8d3-107f4e4b579f DEVICE=eth1 #ONBOOT=no ONBOOT=yes IPADDR=x.x.x.x(固定IP或可聯通外網的IP) NETMASK=255.255.255.x GATEWAY=x.x.x.x DNS1=8.8.8.8 DNS2=x.x.x.x
2.2:vim /etc/sysconfig/network-scripts/ifcfg-eth2
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no #BOOTPROTO=dhcp BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth3 #UUID=34b419e0-ca01-4ca4-964b-45d2a9973002 DEVICE=eth3 #ONBOOT=no ONBOOT=yes IPADDR=192.168.2.100 NETMASK=255.255.255.0
2.3:ping baidu.com
三:配置ipv4轉發
3.1:查看IPv4轉發狀態,默認爲0即關閉狀態
cat /proc/sys/net/ipv4/ip_forward
3.2:開啓轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
四:藉助iptables作地址轉發:
4.1:配置iptables作SNAT,基於源的數據包轉發
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source x.x.x.x
4.2:192.168.2.0網段的虛擬機,須要上外網,只要把網關配置成192.168.2.100便可
五:加開機運行:
5.1:爲了防止重啓後這些配置失效,將這兩條命令加入到rc.local中,使其開機自動運行,
vim /etc/rc.d/rc.local
#!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot. touch /var/lock/subsys/local echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source x.x.x.x
5.2:由於CentOS7開始,rc.local默認沒有執行權限,還要加一條命令
chmod +x /etc/rc.d/rc.local
重啓測試:reboot
六:iptables配置:
vim iptables.sh
#!/bin/sh iptables -F iptables -X iptables -Z iptables -P INPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -s x.x.x.x -j ACCEPT iptables -A INPUT -s 192.168.2.0/24 -j ACCEPT iptables -A INPUT -p icmp --icmp-type any -j ACCEPT #iptables -A INPUT -p udp -m udp --dport 67 --in-interface xenapi -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source x.x.x.x iptables -t nat -A PREROUTING -i eth1 -p tcp -d x.x.x.x --dport 30022 -j DNAT --to-destination 192.168.2.100:22 iptables -A FORWARD -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP service iptables save systemctl restart iptables.service
注意:iptables -P INPUT ACCEPT這條規則必須先運行,不然會鏈接不上iptables -A FORWARD -j ACCEPT這條規則與POSTROUTING配套使用開啓ip轉發:echo 1 > /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source x.x.x.x寫入開機啓動:chmod +x /etc/rc.d/rc.localecho 1 > /proc/sys/net/ipv4/ip_forward端口轉發:iptables -t nat -A PREROUTING -i eth1 -p tcp -d x.x.x.x --dport 30022 -j DNAT --to-destination 192.168.2.100:22