百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

多公网IP配置 公网ip配置服务器

nanshan 2024-12-29 04:52 19 浏览 0 评论

背景

面对某些客户做视频、网站类业务场景,一部分机器会因为流量过大,导致单个网卡流量打满,所以需要配置多个网卡,每个网卡配置一个公网IP地址,一般来说,eth0配置一个公网IP,eth1配置一个公网IP+一个内网IP。

声明:由于业务需要绑定双网卡的同时,第一块网卡还存在ipv6地址,故此centos8系统可以使用nmcli 命令行形式进行配置;centos6和7因版本bug不兼容,使用配置文件形式进行处理。

网络拓扑图:


一、centos8系统

01

查看连接的网卡信息

nmcli con show


enp1s0f0  xxx  ethernet  enp1s0f0 


enp1s0f1  xxx  ethernet  enp1s0f1 

nmcli 命令是centos8网卡配置的常用命令,这里简单给大家介绍一下:

nmcli network #查看networkmanager是否接入网络配置,如返回结果为enabled则表示接入


nmcli n #缩写




接入networkmanager命令
nmcli n on 


取消接入
nmcli n off


显示networkmanager状态
nmcli g s   #这里直接用缩写比较方便


查看当前网卡连接状态(简单来说就是你配置了几块在运行的网卡)
nmcli con  show


删除网卡
nmcli con del  xxx(网卡名称或uuid)




添加网卡
nmcli connection add ifname 网卡名 autoconnect yes type ethernet ipv4.addresses ip地址/子网掩码 ipv4.gateway 网关


重启网络配置文件
nmcli con  reload




重启网卡
nmcli con up  网卡名


修改网卡配置信息:
# 修改指定网卡的ip地址和子网掩码
nmcli connection modify 网卡名 ipv4.addresses ip地址/子网掩码


# 修改指定网卡的ip地址和子网掩码以及网关
nmcli connection modify 网卡名 ipv4.addresses ip地址/子网掩码 ipv4.gateway 网关


# 修改指定网卡的ip地址和子网掩码、网关以及DNS
nmcli connection modify 网卡名 ipv4.addresses ip地址/子网掩码 ipv4.gateway 网关 ipv4.dns dns地址


# 添加第二个ip
nmcli connection modify eth1 +ipv4.addresses ip地址/子网掩码
# 删除第二个ip
nmcli connection modify eth1 -ipv4.addresses ip地址/子网掩码


# 添加第二个DNS
nmcli connection modify eth1 +ipv4.dns dns地址
# 删除第二个DNS
nmcli connection modify eth1 +ipv4.dns dns地址


# 修改为静态配置,默认是 auto
nmcli c m eth1 ipv4.method manual


# 将 IPv6 禁用
nmcli c m ens22 ipv6.method disabled


# 开机启动
nmcli c m ens22 connection.autoconnect yes


02

删除所有配置

(注意,此处会断网,所以操作的时候对两个网卡分别操作,或者在远程控制台操作)

nmcli con del xxx    #第一块网卡


nmcli con del xxx    #第二块网卡

注意:确认在云上的oss外网地址绑定的是第几块网卡,如果是第一块网卡,建议先删除第二块网卡,等到第二块网卡绑定成功后,远程可以登陆,在对一块网卡进行删除操作


03

新创建两个网卡,其中网卡2包含两个ip(ipv4)

nmcli con add type ethernet con-name xxx ifname xxx ipv4.method manual ipv4.address 198.xxx/24 ipv4.gateway 198.xxx ipv4.dns 1.1.1.1


nmcli con add type ethernet con-name xxx ifname xxx ipv4.method manual ipv4.addresses 51.xxx/27,192.xxx/24 ipv4.dns 8.8.8.8

注意:这里ifname前后的网卡名称并不一样,不要写错了,要根据实际情况通过命令ip a查看具体网卡信息在操作


04

对网卡2分别增加路由表以及对应策略路由

(+ 是新增加配置,-是减少配置,无符号这是替代)

nmcli con modify 网卡名 +ipv4.routes "192.168.0.0/16 192.168.xxx.1,0.0.0.0/0 网卡2ip地址 table=100 src=xxx"


nmcli con modify 网卡名 +ipv4.routing-rules "priority 100 from 51.xxx/27 table 100"

注意:这里的table 100 指的是(table_id) 路由表,如果不指定就会加入到默认路由表中


05

加载配置

nmcli con reload


06

重新激活对应的网卡

nmcli con up 网卡1名称


nmcli con up 网卡2名称


07

查看默认路由信息

ip route show


192.168.0.0/16 via 192.168.xxx.1 dev xxx proto static metric 104 


08

查看路由表100的路由信息

ip route show table 100


default via 51.xxx dev 网卡2名称 proto static src 网卡2ip地址 metric 104 


51.xxx dev 网卡2名称 proto static scope link src 网卡2ip地址 metric 104


09

查看策略路由信息

ip rule show


100:  from 51.xxx/27 lookup 100


10

配置第一块网卡 ipv6地址

[root@xxx network-scripts]# cat ifcfg-ethxx
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=198.xxx
PREFIX=24
GATEWAY=198.xxx
DNS1=1.1.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=xxx
UUID=xxx
DEVICE=xxx
ONBOOT=yes


NS1=2001:xxx
IPV6ADDR=xxx/64
IPV6INIT=yes
IPV6_DEFAULTGW=2001:xxx:00ff


11

重启网卡1

nmcli con reload
nmcli con up 网卡1名称


12

测试ipv6 地址是否生效

[root@xxx network-scripts]# ping6 2001:xxx:00ff
PING 2001:xxx:00ff(2001:xxx:ff) 56 data bytes
64 bytes from 2001:xxx:ff: icmp_seq=1 ttl=64 time=0.577 ms
64 bytes from 2001:xxx:ff: icmp_seq=2 ttl=64 time=0.534 ms
64 bytes from 2001:xxx:ff: icmp_seq=3 ttl=64 time=0.747 ms
^C
--- 2001:xxx:00ff ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2070ms
rtt min/avg/max/mdev = 0.534/0.619/0.747/0.094 ms



二、centos6和7系统

内?IP: 192.168.xxx

内??关: 192.168.xxx.1

公?ip: 15.xxx

公???: 255.255.255.192

公??关: 15.xxx

 cat /etc/sysconfig/network-scripts/ifcfg-eth1
 DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.xxx
IPADDR1=15.xxx
NETMASK=255.255.255.0
NETMASK1=255.255.255.192
ONBOOT=yes


02

配置路由(ipv4)

 cat /etc/sysconfig/network-scripts/route-eth1


 default via 15.xxx dev eth1 src 15.xxx table wan1


 192.168.0.0/16 via 192.168.xxx.1


03

配置路由策略(ipv4)

 cat /etc/sysconfig/network-scripts/rule-eth1


 from 15.xxx table wan1  pref 100


04

eth0网卡增加IPv6配置

[root@xxx network-scripts]# cat ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=static
DEVICE=eth0
HWADDR=0C:xxx:44
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
USERCTL=no
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=xxx
IPADDR=145.xxx
NETMASK=255.255.255.0
GATEWAY=145.xxx
DNS1=1.1.1.1


NS1=2001:41d0:xxx::1
IPV6ADDR=2001:xxx::/64
IPV6INIT=yes
#IPV6_DEFAULTGW=2001:xxxx:00ff    #注释掉ipv6网关


05

配置eth0 ipv6路由

[root@xxx network-scripts]# cat route6-eth0 
2001:xxxx:00ff dev eth0
default via  2001:xxxx:00ff


06

关闭NetworkManager,重启network

因centos6和7的系统和centos8系统使用nmcli 命令配置默认网关0.0.0.0/0 地址有bug,不支持/0掩码,故关闭NetworkManager,使用network

systemctl stop NetworkManager
systemctl  disable NetworkManager
systemctl  restart network


07

测试网卡配置是否生效

[root@xxx network-scripts]# ping6 2001:xxx:00ff 
PING 2001:xxx:00ff (2001:xxx:00ff ) 56 data bytes
64 bytes from 2001:xxx:00ff:  icmp_seq=1 ttl=64 time=0.904 ms
64 bytes from 2001:xxx:00ff:  icmp_seq=2 ttl=64 time=1.24 ms
64 bytes from 2001:xxx:00ff:  icmp_seq=3 ttl=64 time=0.670 ms
^C
--- 2001:xxx:00ff ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.670/0.940/1.246/0.236 ms


使用测试工具测试IPV6地址是否有效 :https://ipw.cn/ipv6ping/


三、总结

多公网IP的优势主要包括:

  • 提高了网络安全性:多公网IP可以将不同的网络设备分别使用不同的公网IP,从而增强了网络安全性,也防止了黑客攻击和网络入侵。
  • 保障了业务连续性:尤其是在做网站或者视频类的业务场景,多公网IP极大的避免了当某个IP出现故障时,可以使用备用的公网IP,保障业务的连续性。
  • 提高网络质量:多公网IP可以更充分的分配网络流量,从而减少网络拥堵,提高用户的观看体验。
  • 便于管理:可根据不同的业务需求进行资源的分配和管理,比如视频业务用IP1,音频类业务用IP2,后续也方便运维开发等人员进行监控和维护。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: