简介:本文详细讲解Linux系统下双线双网卡、双IP、双网关的配置方法,涵盖网络拓扑分析、网卡配置、路由表设置及故障排查,适用于企业多线路接入场景。
在当今企业网络架构中,单线路接入已难以满足高可用性、负载均衡和安全隔离的需求。双线双网卡配置通过同时接入两个不同运营商(如电信+联通)或两个不同网络区域(如内网+外网),可实现以下核心价值:
典型应用场景包括:金融行业交易系统、医疗行业HIS系统、政府机构政务外网等对网络可靠性要求极高的环境。
net-tools、iproute2、ifmetric等工具apt-get install -y net-tools iproute2 ifmetric
## 三、核心配置步骤### 1. 网卡物理配置首先通过`lspci | grep -i ethernet`确认网卡识别情况,然后编辑网卡配置文件:**CentOS 7配置示例**:```bash# 主网卡(eth0 - 电信线路)cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOFTYPE=EthernetBOOTPROTO=staticNAME=eth0DEVICE=eth0ONBOOT=yesIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1EOF# 备网卡(eth1 - 联通线路)cat > /etc/sysconfig/network-scripts/ifcfg-eth1 <<EOFTYPE=EthernetBOOTPROTO=staticNAME=eth1DEVICE=eth1ONBOOT=yesIPADDR=10.0.0.100NETMASK=255.255.255.0# 注意:此处不设置网关EOF
Ubuntu 20.04配置示例:
# 主网卡配置cat > /etc/netplan/01-netcfg.yaml <<EOFnetwork:version: 2renderer: networkdethernets:eth0:dhcp4: noaddresses: [192.168.1.100/24]gateway4: 192.168.1.1nameservers:addresses: [8.8.8.8, 8.8.4.4]eth1:dhcp4: noaddresses: [10.0.0.100/24]# 不设置网关EOFnetplan apply
Linux通过路由表实现多网关管理,需创建自定义路由表并配置策略路由:
步骤1:创建路由表文件
# 编辑/etc/iproute2/rt_tables(需root权限)echo "100 tel_table" >> /etc/iproute2/rt_tablesecho "200 unicom_table" >> /etc/iproute2/rt_tables
步骤2:添加路由规则
# 为电信线路添加路由ip route add 192.168.1.0/24 dev eth0 src 192.168.1.100 table tel_tableip route add default via 192.168.1.1 dev eth0 table tel_table# 为联通线路添加路由ip route add 10.0.0.0/24 dev eth1 src 10.0.0.100 table unicom_tableip route add default via 10.0.0.1 dev eth1 table unicom_table
步骤3:配置策略路由规则
# 根据源IP选择路由表ip rule add from 192.168.1.100 table tel_tableip rule add from 10.0.0.100 table unicom_table# 根据目标地址选择路由(示例:访问特定IP走联通线路)ip rule add to 203.0.113.0/24 table unicom_table
负载均衡配置:
# 使用iproute2实现基于包的负载均衡echo "200 balance" >> /etc/iproute2/rt_tablesip route add default scope global nexthop via 192.168.1.1 dev eth0 weight 1 nexthop via 10.0.0.1 dev eth1 weight 1 table balanceip rule add fwmark 0x1 table balanceiptables -t mangle -A PREROUTING -j MARK --set-mark 0x1
故障转移配置:
# 使用keepalived实现VIP高可用# 安装keepalivedyum install -y keepalived# 配置文件示例cat > /etc/keepalived/keepalived.conf <<EOFvrrp_script chk_httpd {script "killall -0 httpd"interval 2weight 2}vrrp_instance VI_1 {interface eth0state MASTERvirtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.200}track_script {chk_httpd}}EOF
# 查看网卡状态ip addr show# 查看路由表ip route show table mainip route show table tel_tableip route show table unicom_table# 测试连通性ping -I 192.168.1.100 8.8.8.8ping -I 10.0.0.100 8.8.4.4# 跟踪路由路径traceroute -i eth0 8.8.8.8traceroute -i eth1 8.8.4.4
问题1:路由冲突导致网络中断
ip route输出,确保没有重复的默认网关
# 删除冲突的默认网关ip route del default via 10.0.0.1 dev eth1
问题2:策略路由不生效
iptables -t mangle -L -v -n
**问题3:双线负载不均衡**- 现象:某条线路带宽占用过高- 解决:调整权重参数或使用更智能的负载均衡算法```bash# 修改权重值(原为1:1)ip route change default scope global nexthop via 192.168.1.1 dev eth0 weight 2 nexthop via 10.0.0.1 dev eth1 weight 1 table balance
监控体系搭建:
定期维护计划:
安全加固措施:
# 示例规则:只允许特定IP访问管理端口iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j DROP
文档管理规范:
通过tc(Traffic Control)实现更精细的流量管理:
# 为HTTP流量分配60%带宽tc qdisc add dev eth0 root handle 1: htb default 12tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbittc class add dev eth0 parent 1:1 classid 1:10 htb rate 600mbittc class add dev eth0 parent 1:1 classid 1:12 htb rate 400mbittc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
对于需要同时连接多个ISP的场景,可配置BGP协议:
# 安装Quagga BGP实现yum install -y quagga# 配置BGP守护进程cat > /etc/quagga/bgpd.conf <<EOFrouter bgp 65001neighbor 192.168.1.1 remote-as 65002neighbor 10.0.0.1 remote-as 65003!address-family ipv4network 192.168.1.0/24network 10.0.0.0/24exit-address-familyEOF
双线双网卡配置是构建高可用网络架构的基础技术,通过合理配置可实现:
未来发展趋势包括:
建议运维人员定期参加RFC文档研读会,关注IETF发布的网络标准更新,保持技术前瞻性。对于超大规模部署,可考虑使用Ansible等自动化工具进行批量配置管理。