集羣網絡搭建小案例

最近想搭一個Hadoop的集羣,但是迫於硬件環境有限,於是使用了5個虛擬機來進行,基本環境如下圖:
這裏寫圖片描述
然後我簡單描述一下我的設計方案:

  • 小集羣內部可以相互訪問
  • 集羣內每個主機都可以訪問外網
  • 外部網的任何主機都不能直接訪問內部任何一臺主機,但可以訪問Server_main,以便對內部進行管理
  • 使用Server_main爲網關和防火牆
  • 內部主機之間使用集線器連接
  • 主機1,2,3,4 需要從Server_main動態獲取IP

下面就是配置網絡相關信息:
Server_main:
系統:CentOS 7.3
首先保證Server_main具有兩部網卡,關於硬件的安裝,這裏不贅述了
我的兩部網卡信息:

  • 網卡一:
    • 網卡名:eno16777736
    • MAC:00:0c:29:8e:fe:44
  • 網卡二:
    • 網卡名:eno33554984
    • MAC:00:0c:29:8e:fe:4e

配置文件內容:

網卡一:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=eno16777736
UUID=7ba0c495-599e-4a35-8016-d21744374984
DEVICE=eno16777736
IPADDR=192.168.1.1
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes

網卡二:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno33554984 
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=eno33554984
DEVICE=eno33554984
GATEWAY=192.168.30.2
ONBOOT=yes

DHCP的配置文件爲:

[root@localhost ~]# cat /etc/dhcp/dhcpd.conf | grep '^[^#]'
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.2 192.168.1.100;
    option routers 192.168.1.1;
    option domain-name-servers 114.114.114.114;
    option broadcast-address 192.168.1.255;
    default-lease-time 3600;
    max-lease-time 12800;
}

按上面配置文件配置後,Server_main就可以提供DHCP服務服務了,但是這只是第一步,下面配置客戶端:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=eno16777736
UUID=7ba0c495-599e-4a35-8016-d21744374984
DEVICE=eno16777736
ONBOOT=yes

然後,客戶端的網絡基本就搭建好了
但是現在內部網絡內的主機無法上網,那是因爲Server_main沒有設置數據轉發,數據包無法被髮到外部,因此我就開始來設置網關的數據轉發

  1. 關閉防火牆
    查看防火牆狀態
[root@localhost ~]# systemctl status firewalld.service 

這裏寫圖片描述

可以看到狀態是running,於是我們需要關閉,如果是 Active是inactive (dead),則表明你已經關閉防火牆

關閉防火牆

[root@localhost ~]# systemctl stop firewalld.service

這裏寫圖片描述

已經關閉成功

禁止防火牆開機自啓

[root@localhost ~]# systemctl disable firewalld.service

安裝iptables

[root@localhost ~]# yum install iptables.x86_64
[root@localhost ~]# yum install iptables-services

將iptables加入開機啓動

[root@localhost ~]#systemctl enable iptables.service

設置內核參數,使其支持數據轉發

[root@localhost ~]# cat /etc/sysctl.conf 
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p  #不用重啓啓用更新
net.ipv4.ip_forward = 1

配置數據轉發策略:

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.30.132  #將內網的數據轉發到外網,192.168.30.132爲對外網口的IP
[root@localhost ~]# iptables-save  > /etc/sysconfig/iptables # 將更改保存至文件,以使主機重啓後依然有效
發佈了129 篇原創文章 · 獲贊 203 · 訪問量 45萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章