跳转至

NAT实现计算节点联网

集群管理节点能联网,计算节点用的局域网,现使用网络地址转发(NAT)技术实现计算节点联网,这样在计算节点编译有些软件要联网下载相应依赖库文件就比较方便。

集群环境

集群所有机器安装的是Rocky Linux 8.10系统。

节点 网卡名称 IP/PREFIX 备注
quantum eno2 192.168.10.1/24 管理节点外网网口
eno1 10.1.1.1/16 管理节点局域网网口
cu01 eno1 10.1.255.1/16 计算节点局域网网口

开启IP转发功能

在管理节点quantum机器上,需要启用IP转发,使其能将来自计算节点cu01的网络请求转发到外网。执行以下命令:

[root@quantum ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
为了在重启后仍保持该设置,执行以下命令:
[root@quantum ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
然后执行sysctl -p命令使其生效。

设置iptables进行NAT配置

在管理节点quantum机器上,需要设置iptables规则,允许从局域网(10.1.0.0/16)的流量通过192.168.10.1网卡转发到外网。执行以下命令:

[root@quantum ~]# iptables -t nat -A POSTROUTING -o eno2 -s 10.1.0.0/16 -j MASQUERADE
这里,eno2是管理节点quantum机器上连接外网的网卡名称,可能需要根据你的实际网卡名替换。

配置计算节点的默认网关

在计算节点上,需要将管理节点quantum设置为默认网关。可以通过以下命令配置:

[root@cu01 ~]# route add default gw 10.1.1.1
或者编辑/etc/sysconfig/network-scripts/ifcfg-eno1文件,确保计算节点的默认网关指向管理节点quantum的内网IP(10.1.1.1)。
[root@cu01 ~]# echo 'GATEWAY=10.1.1.1' >> /etc/sysconfig/network-scripts/ifcfg-eno1

计算节点DNS配置

在配置前,先检查计算节点是否可以联网了。

[root@cu01 ~]# ping -c3 www.baidu.com
ping: www.baidu.com: Name or service not known
提示错误,还不能联网。
为了使计算节点能够解析域名上网,确保计算节点的DNS配置正确。可以在计算节点的/etc/resolv.conf中添加DNS服务器,比如Google的DNS:
[root@cu01 ~]# echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
再次确认计算节点能否联网,
[root@cu01 ~]# ping -c3 www.baidu.com
PING www.a.shifen.com (182.61.200.7) 56(84) bytes of data.
64 bytes from 182.61.200.7 (182.61.200.7): icmp_seq=1 ttl=48 time=18.2 ms
64 bytes from 182.61.200.7 (182.61.200.7): icmp_seq=2 ttl=48 time=17.5 ms
64 bytes from 182.61.200.7 (182.61.200.7): icmp_seq=3 ttl=48 time=18.3 ms

--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 17.497/17.991/18.291/0.351 ms
能ping通百度,可以上网。

批处理执行

集群有很多计算节点,每个计算节点都按上面执行一遍太费时间了。写个shell脚本node-network-set.sh,借助pdsh并行远程命令批处理执行即可。

node-network-set.sh
#!/bin/bash
route add default gw 10.1.1.1
neth=`ip a|grep 10.1 |awk '{print $NF}'`
echo 'GATEWAY=10.1.1.1' >> /etc/sysconfig/network-scripts/ifcfg-$neth
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
放在/opt/temp目录下,加可执行权限,并用pdsh并行远程命令批处理执行.
[root@quantum ~]# chmod +x /opt/temp/node-network-set.sh
[root@quantum ~]# pdsh -a /opt/temp/node-network-set.sh

本文阅读量  次
本站总访问量  次