多公网IP配置

素年锦时静待君丶
发布于 2023-7-31 16:40
4322浏览
0收藏

背景

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

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

络拓扑图:

多公网IP配置-鸿蒙开发者社区

一、centos8系统

01查看连接的网卡信息

nmcli con show

enp1s0f0  xxx  ethernet  enp1s0f0 

enp1s0f1  xxx  ethernet  enp1s0f1 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.

02删除所有配置

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

nmcli con del xxx    #第一块网卡

nmcli con del xxx    #第二块网卡
  • 1.
  • 2.
  • 3.

注意:确认在云上的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
  • 1.
  • 2.
  • 3.

注意:这里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"
  • 1.
  • 2.
  • 3.

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

05加载配置

nmcli con reload
  • 1.

06重新激活对应的网卡

nmcli con up 网卡1名称

nmcli con up 网卡2名称
  • 1.
  • 2.
  • 3.

07 查看默认路由信息

ip route show

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

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

09 查看策略路由信息

ip rule show

100:  from 51.xxx/27 lookup 100
  • 1.
  • 2.
  • 3.

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

11重启网卡1

nmcli con reload
nmcli con up 网卡1名称
  • 1.
  • 2.

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

二、centos6和7系统

内⽹IP: 192.168.xxx

内⽹⽹关: 192.168.xxx.1

公⽹ip: 15.xxx

公⽹⼦⽹: 255.255.255.192

公⽹⽹关: 15.xxx

01配置eth1多ip,公网+内网 ip地址(ipv4)

 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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

03配置路由策略(ipv4)

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

 from 15.xxx table wan1  pref 100
  • 1.
  • 2.
  • 3.

04eth0网卡增加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网关
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

05配置eth0 ipv6路由

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

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
  • 1.
  • 2.
  • 3.

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/
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

多公网IP配置-鸿蒙开发者社区

三、总结

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

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




文章转载自公众号:新钛云服


分类
已于2023-7-31 16:40:19修改
收藏
回复
举报


回复
    相关推荐
    这个用户很懒,还没有个人简介
    觉得TA不错?点个关注精彩不错过
    115
    帖子
    0
    视频
    253
    声望
    9
    粉丝
    最近发布
    社区精华内容