集群网络搭建小案例

最近想搭一个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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章