天天看點

多公網IP配置

作者:新钛雲服

背景

面對某些客戶做視訊、網站類業務場景,一部分機器會因為流量過大,導緻單個網卡流量打滿,是以需要配置多個網卡,每個網卡配置一個公網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            

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,後續也友善運維開發等人員進行監控和維護。

繼續閱讀