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
配置计算节点的默认网关¶
在计算节点上,需要将管理节点quantum设置为默认网关。可以通过以下命令配置:
[root@cu01 ~]# route add default gw 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
批处理执行¶
集群有很多计算节点,每个计算节点都按上面执行一遍太费时间了。写个shell脚本node-network-set.sh,借助pdsh并行远程命令批处理执行即可。
node-network-set.sh
放在/opt/temp目录下,加可执行权限,并用pdsh并行远程命令批处理执行.
#!/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
[root@quantum ~]# chmod +x /opt/temp/node-network-set.sh
[root@quantum ~]# pdsh -a /opt/temp/node-network-set.sh
本站总访问量 次