Networking

在 AWS EC2 上的 eth1(附加網路介面)CentOS 7 上無法訪問伺服器

  • January 17, 2017

我在EC2上創建了一個****CentOS 7實例,安裝了我所需的應用程序,為預設網路介面(eth0 )分配了 1 個****彈性 IP ,並且它都可以訪問。

現在我創建了另一個Network Interface,為其分配了一個彈性 IP,然後將ENI附加到實​​例。現在,無法在eth1(新的附加網路介面)上訪問該實例。

我嘗試了在Google上找到的各種方法,在**/etc/sysconfig/network-scripts創建****ifcfg-eth1**但沒有運氣。

尋求幫助,這是ifconfig -a的輸出(IP 被屏蔽):

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
       inet 1XX.3XX.2XX.4XX  netmask 255.255.240.0  broadcast 1XX.3XX.2XX.4XX
       inet6 fe80::2e:a1ff:fe01:c763  prefixlen 64  scopeid 0x20<link>
       ether 02:2e:a1:01:c7:63  txqueuelen 1000  (Ethernet)
       RX packets 219  bytes 28188 (27.5 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 284  bytes 31055 (30.3 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4098<BROADCAST,MULTICAST>  mtu 1500
       ether 02:78:73:34:66:35  txqueuelen 1000  (Ethernet)
       RX packets 0  bytes 0 (0.0 B)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 0  bytes 0 (0.0 B)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
       inet 127.0.0.1  netmask 255.0.0.0
       inet6 ::1  prefixlen 128  scopeid 0x10<host>
       loop  txqueuelen 0  (Local Loopback)
       RX packets 23  bytes 4968 (4.8 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 23  bytes 4968 (4.8 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

這是來自ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP qlen 1000
   link/ether 02:2e:a1:01:c7:63 brd ff:ff:ff:ff:ff:ff
   inet 1XX.3XX.2XX.4XX/20 brd 1XX.3XX.2XX.4XX scope global dynamic eth0
      valid_lft 3404sec preferred_lft 3404sec
   inet6 fe80::2e:a1ff:fe01:c763/64 scope link
      valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
   link/ether 02:78:73:34:66:35 brd ff:ff:ff:ff:ff:ff

我的**/etc/sysconfig/network-scripts/ifcfg-eth0**文件包含以下內容:

DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="yes"
PEERDNS="yes"
IPV6INIT="no"
PERSISTENT_DHCLIENT="1"

最後,除了這個人之外沒有人幫助我: https ://www.internetstaff.com/multiple-ec2-network-interfaces-on-red-hat-c​​entos-7/。

為了在將來連結失效時保留資訊,以下是文章中富有成果的內容:

  1. 強制您的預設網關為eth0

編輯**/etc/sysconfig/network**並添加:

GATEWAYDEV=eth0

不這樣做會將主路由表的預設網關設置為要配置的最後一個介面,這會導致一些奇怪的行為。 2. 配置您添加的每個附加介面:

在**/etc/sysconfig/network-scripts中,為每個新介面創建一個ifcfg-eth X。**

調整:

  1. 與ENI匹配的DEVICE名稱。
DEVICE="eth1"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="yes"
PEERDNS="yes"
IPV6INIT="no"
PERSISTENT_DHCLIENT="1"
3. 為每個附加介面添加自定義路由。


再次在**/etc/sysconfig/network-scripts**中,為每個介面創建一個**route-eth *X文件。***


調整:


 設備名稱。
 增加表號。
 您的 VPC 子網網關的網關。
 將源 IP 更改為 ENI 分配的內部網路地址。
fault via 10.0.0.1 dev eth0 table 1
.0.0.0/24 dev eth0 src 10.0.0.10 table 1
4. 同樣在**/etc/sysconfig/network-scripts**中,為每個介面創建一個**rule-eth *X。***


調整:


 增加表號以匹配**route-eth *X***。
 將 IP 更改為 ENI 分配的內部網路地址。
om 10.0.0.10/32 table 1


重新啟動網路服務,您應該可以啟動並執行。您可以使用**ip rule**進行確認:

ip rule

0: from all lookup local 32764: from 10.0.0.10 lookup 3 32765: from 10.0.0.11 lookup 2 32766: from all lookup main 32767: from all lookup default


請注意,亞馬遜為**eth0**建議了自定義路由和規則,但我們發現允許**eth0**使用預設主路由表不僅有效,而且更靈活。

引用自:https://serverfault.com/questions/826607