多公網(wǎng)IP配置,你學(xué)會(huì)了嗎?
背景
面對(duì)某些客戶做視頻、網(wǎng)站類業(yè)務(wù)場(chǎng)景,一部分機(jī)器會(huì)因?yàn)榱髁窟^大,導(dǎo)致單個(gè)網(wǎng)卡流量打滿,所以需要配置多個(gè)網(wǎng)卡,每個(gè)網(wǎng)卡配置一個(gè)公網(wǎng)IP地址,一般來說,eth0配置一個(gè)公網(wǎng)IP,eth1配置一個(gè)公網(wǎng)IP+一個(gè)內(nèi)網(wǎng)IP。
聲明:由于業(yè)務(wù)需要綁定雙網(wǎng)卡的同時(shí),第一塊網(wǎng)卡還存在ipv6地址,故此centos8系統(tǒng)可以使用nmcli 命令行形式進(jìn)行配置;centos6和7因版本bug不兼容,使用配置文件形式進(jìn)行處理。
網(wǎng)絡(luò)拓?fù)鋱D:
一、centos8系統(tǒng)
01查看連接的網(wǎng)卡信息
nmcli con show
enp1s0f0 xxx ethernet enp1s0f0
enp1s0f1 xxx ethernet enp1s0f1
nmcli network #查看networkmanager是否接入網(wǎng)絡(luò)配置,如返回結(jié)果為enabled則表示接入
nmcli n #縮寫
接入networkmanager命令
nmcli n on
取消接入
nmcli n off
顯示networkmanager狀態(tài)
nmcli g s #這里直接用縮寫比較方便
查看當(dāng)前網(wǎng)卡連接狀態(tài)(簡(jiǎn)單來說就是你配置了幾塊在運(yùn)行的網(wǎng)卡)
nmcli con show
刪除網(wǎng)卡
nmcli con del xxx(網(wǎng)卡名稱或uuid)
添加網(wǎng)卡
nmcli connection add ifname 網(wǎng)卡名 autoconnect yes type ethernet ipv4.addresses ip地址/子網(wǎng)掩碼 ipv4.gateway 網(wǎng)關(guān)
重啟網(wǎng)絡(luò)配置文件
nmcli con reload
重啟網(wǎng)卡
nmcli con up 網(wǎng)卡名
修改網(wǎng)卡配置信息:
# 修改指定網(wǎng)卡的ip地址和子網(wǎng)掩碼
nmcli connection modify 網(wǎng)卡名 ipv4.addresses ip地址/子網(wǎng)掩碼
# 修改指定網(wǎng)卡的ip地址和子網(wǎng)掩碼以及網(wǎng)關(guān)
nmcli connection modify 網(wǎng)卡名 ipv4.addresses ip地址/子網(wǎng)掩碼 ipv4.gateway 網(wǎng)關(guān)
# 修改指定網(wǎng)卡的ip地址和子網(wǎng)掩碼、網(wǎng)關(guān)以及DNS
nmcli connection modify 網(wǎng)卡名 ipv4.addresses ip地址/子網(wǎng)掩碼 ipv4.gateway 網(wǎng)關(guān) ipv4.dns dns地址
# 添加第二個(gè)ip
nmcli connection modify eth1 +ipv4.addresses ip地址/子網(wǎng)掩碼
# 刪除第二個(gè)ip
nmcli connection modify eth1 -ipv4.addresses ip地址/子網(wǎng)掩碼
# 添加第二個(gè)DNS
nmcli connection modify eth1 +ipv4.dns dns地址
# 刪除第二個(gè)DNS
nmcli connection modify eth1 +ipv4.dns dns地址
# 修改為靜態(tài)配置,默認(rèn)是 auto
nmcli c m eth1 ipv4.method manual
# 將 IPv6 禁用
nmcli c m ens22 ipv6.method disabled
# 開機(jī)啟動(dòng)
nmcli c m ens22 connection.autoconnect yes
02刪除所有配置
(注意,此處會(huì)斷網(wǎng),所以操作的時(shí)候?qū)蓚€(gè)網(wǎng)卡分別操作,或者在遠(yuǎn)程控制臺(tái)操作)
nmcli con del xxx #第一塊網(wǎng)卡
nmcli con del xxx #第二塊網(wǎng)卡
注意:確認(rèn)在云上的oss外網(wǎng)地址綁定的是第幾塊網(wǎng)卡,如果是第一塊網(wǎng)卡,建議先刪除第二塊網(wǎng)卡,等到第二塊網(wǎng)卡綁定成功后,遠(yuǎn)程可以登陸,在對(duì)一塊網(wǎng)卡進(jìn)行刪除操作
03新創(chuàng)建兩個(gè)網(wǎng)卡,其中網(wǎng)卡2包含兩個(gè)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前后的網(wǎng)卡名稱并不一樣,不要寫錯(cuò)了,要根據(jù)實(shí)際情況通過命令ip a查看具體網(wǎng)卡信息在操作
04對(duì)網(wǎng)卡2分別增加路由表以及對(duì)應(yīng)策略路由
(+ 是新增加配置,-是減少配置,無符號(hào)這是替代)
nmcli con modify 網(wǎng)卡名 +ipv4.routes "192.168.0.0/16 192.168.xxx.1,0.0.0.0/0 網(wǎng)卡2ip地址 table=100 src=xxx"
nmcli con modify 網(wǎng)卡名 +ipv4.routing-rules "priority 100 from 51.xxx/27 table 100"
注意:這里的table 100 指的是(table_id) 路由表,如果不指定就會(huì)加入到默認(rèn)路由表中
05加載配置
nmcli con reload
06重新激活對(duì)應(yīng)的網(wǎng)卡
nmcli con up 網(wǎng)卡1名稱
nmcli con up 網(wǎng)卡2名稱
07查看默認(rèn)路由信息
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 網(wǎng)卡2名稱 proto static src 網(wǎng)卡2ip地址 metric 104
51.xxx dev 網(wǎng)卡2名稱 proto static scope link src 網(wǎng)卡2ip地址 metric 104
09查看策略路由信息
ip rule show
100: from 51.xxx/27 lookup 100
10配置第一塊網(wǎng)卡 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重啟網(wǎng)卡1
nmcli con reload
nmcli con up 網(wǎng)卡1名稱
12測(cè)試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系統(tǒng)
內(nèi)?IP: 192.168.xxx
內(nèi)??關(guān): 192.168.xxx.1
公?ip: 15.xxx
公???: 255.255.255.192
公??關(guān): 15.xxx
01配置eth1多ip,公網(wǎng)+內(nèi)網(wǎng) 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
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
04eth0網(wǎng)卡增加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網(wǎng)關(guān)
05配置eth0 ipv6路由
[root@xxx network-scripts]# cat route6-eth0
2001:xxxx:00ff dev eth0
default via 2001:xxxx:00ff
06關(guān)閉NetworkManager,重啟network
因centos6和7的系統(tǒng)和centos8系統(tǒng)使用nmcli 命令配置默認(rèn)網(wǎng)關(guān)0.0.0.0/0 地址有bug,不支持/0掩碼,故關(guān)閉NetworkManager,使用network
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network
07測(cè)試網(wǎng)卡配置是否生效
[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
使用測(cè)試工具測(cè)試IPV6地址是否有效 :https://ipw.cn/ipv6ping/
三、總結(jié)
多公網(wǎng)IP的優(yōu)勢(shì)主要包括:
提高了網(wǎng)絡(luò)安全性:多公網(wǎng)IP可以將不同的網(wǎng)絡(luò)設(shè)備分別使用不同的公網(wǎng)IP,從而增強(qiáng)了網(wǎng)絡(luò)安全性,也防止了黑客攻擊和網(wǎng)絡(luò)入侵。
保障了業(yè)務(wù)連續(xù)性:尤其是在做網(wǎng)站或者視頻類的業(yè)務(wù)場(chǎng)景,多公網(wǎng)IP極大的避免了當(dāng)某個(gè)IP出現(xiàn)故障時(shí),可以使用備用的公網(wǎng)IP,保障業(yè)務(wù)的連續(xù)性。
提高網(wǎng)絡(luò)質(zhì)量:多公網(wǎng)IP可以更充分的分配網(wǎng)絡(luò)流量,從而減少網(wǎng)絡(luò)擁堵,提高用戶的觀看體驗(yàn)。
便于管理:可根據(jù)不同的業(yè)務(wù)需求進(jìn)行資源的分配和管理,比如視頻業(yè)務(wù)用IP1,音頻類業(yè)務(wù)用IP2,后續(xù)也方便運(yùn)維開發(fā)等人員進(jìn)行監(jiān)控和維護(hù)。