CentOS 7下配置10.70.100.0/24网段用户通过eth1访问IPPBX的路由方案
嗨,看了你的网络配置信息,我来帮你一步步实现需求:让10.70.100.0/24网段的用户(包括你的CentOS 7主机本身)访问IPPBX时,流量通过eth1接口传输。
首先先贴出你的网络配置,方便后续参考:
eth0(LAN接口):
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.70.100.7 netmask 255.255.255.0 broadcast 10.70.100.255 inet6 fe80::4f57:e7c0:4e6a:6c2a prefixlen 64 scopeid 0x20<link> ether 50:6b:8d:a6:58:93 txqueuelen 1000 (Ethernet) RX packets 588935 bytes 43189679 (41.1 MiB) RX errors 0 dropped 5 overruns 0 frame 0 TX packets 2779 bytes 218333 (213.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0eth1(IPPBX接口):
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.89.79.155 netmask 255.255.255.248 broadcast 10.89.79.159 inet6 fe80::333d:b66a:ff:374d prefixlen 64 scopeid 0x20<link> ether 50:6b:8d:98:59:03 txqueuelen 1000 (Ethernet) RX packets 404739 bytes 103605341 (98.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0nmap扫描结果:
- eth0开放端口:22/tcp(ssh)、25/tcp(smtp)、80/tcp(http)、443/tcp(https)、3306/tcp(mysql)
- eth1开放端口:22/tcp(ssh)、25/tcp(smtp)、80/tcp(http)、443/tcp(https)、3306/tcp(mysql)、5060/tcp(sip)、5061/tcp(sip-tls)
前提确认
首先确认IPPBX处于eth1所在的10.89.79.152/29网段(因为eth1的子网掩码是255.255.255.248,对应29位掩码),并且你已经能通过eth1正常ping通IPPBX的地址。
场景一:让CentOS 7主机自身访问IPPBX走eth1
如果只是你的CentOS 7机器本身需要通过eth1访问IPPBX,默认情况下同网段流量会优先走对应接口,但如果存在路由冲突,你可以手动指定静态路由:
1. 临时配置(重启后失效,用于测试)
直接执行以下命令:
# 如果你知道IPPBX的具体IP(比如10.89.79.156),添加单IP路由 ip route add 10.89.79.156/32 dev eth1 # 如果要让整个IPPBX网段的流量都走eth1,用这条 ip route add 10.89.79.152/29 dev eth1
2. 永久配置(重启后依然生效)
编辑/etc/sysconfig/network-scripts/route-eth1文件(不存在的话直接新建),添加以下内容二选一:
# 单IPPBX地址路由 10.89.79.156/32 dev eth1 # 整个IPPBX网段路由 10.89.79.152/29 dev eth1
保存后重启网络服务生效:
systemctl restart network
场景二:让10.70.100.0/24网段的其他用户通过这台CentOS 7访问IPPBX
如果是同网段的其他机器需要通过你的CentOS 7主机中转访问IPPBX,需要开启IP转发并配置相关规则:
1. 开启IP转发
临时开启(重启后失效):
echo 1 > /proc/sys/net/ipv4/ip_forward
永久开启:编辑/etc/sysctl.conf,修改或添加一行:
net.ipv4.ip_forward = 1
执行以下命令让配置立即生效:
sysctl -p
2. 配置路由规则
在CentOS 7上确保10.70.100.0/24的流量能正常转发到eth1:
# 临时添加路由 ip route add 10.70.100.0/24 dev eth0 # 永久添加,编辑route-eth0文件 echo "10.70.100.0/24 dev eth0" >> /etc/sysconfig/network-scripts/route-eth0
同时,需要在10.70.100.0/24网段的其他用户机器上,设置这台CentOS 7的eth0地址(10.70.100.7)为访问IPPBX网段的网关。
3. 防火墙配置(可选,确保流量通行)
如果你的CentOS 7开启了firewalld,需要允许转发和SIP协议的流量:
# 允许地址伪装(转发必备) firewall-cmd --add-masquerade --permanent # 开放IPPBX常用的SIP端口 firewall-cmd --add-port=5060/tcp --add-port=5061/tcp --permanent # 重启防火墙生效 firewall-cmd --reload
验证配置是否生效
完成配置后,用以下命令验证:
# 查看当前路由表,确认新增的路由规则存在 ip route show # 测试访问IPPBX,追踪流量路径,确认走eth1接口 traceroute 10.89.79.156
备注:内容来源于stack exchange,提问作者DevDon

