Ubuntu
AWS VPC 中的第二個 ENI 在 Ubuntu 實例上無法訪問
我剛剛進入 VPC,試圖了解一切是如何運作的。到目前為止,我遇到的最大障礙是,每當我向機器添加第二個彈性 NIC 時,VPC 中的任何其他人都無法訪問第二個 IP。這就是我所做的
- 推出 Canonical 為 Ubuntu 12.10 x64 EBS 提供的 AMI。
- 在啟動期間,我為兩個網路介面(同一子網)配置了它
- 機器啟動後,我將以下內容添加到 /etc/network/interfaces :
汽車 eth1
iface eth1 inet dhcp
- ifup eth1
- 執行ifconfig,驗證第二個地址是否已啟動。
在我的主要(網際網路可訪問)實例上:
- ping(新實例 eth0 的 IP) - 有效
- ping(新實例 eth1 的 IP) - 失敗
沒有阻止 ping 的 ACL,因為它適用於 eth0。機器上沒有防火牆設置。我已經在具有多個介面的多個 SG 和 AZ 上嘗試了 4 個不同的實例,結果都相同。
我把頭撞在牆上的時間比我願意承認的要長。我無法弄清楚錯誤在哪裡。
預設情況下,路由表只會將流量路由到
eth0
. 即使 ubuntu 檢測到另一個 ENI,您仍然必須將流量路由到它。你必須做一些高級路由:
1) 立即和臨時啟用對第二個 ENI 的訪問。
來源:http ://www.rjsystems.nl/en/2100-adv-routing.php
# this will show your route table, i'll assume you have eth0 and eth1 # and your default is for eth0 to point to the gateway # for this example lets assume the following: # eth0 = 192.168.100.5 # eth1 = 192.168.100.10 # gateway = 192.168.100.1 ip route show ; # first step is to create a routing table for your new device cat /etc/iproute2/rt_tables ; echo 2 eth1_rt >> /etc/iproute2/rt_tables ; # next add the eth1_rt route table, so by default it will also point to the gateway ip route add default via 192.168.100.1 dev eth1 table eth1_rt ; # next take a look at your ip rules # i'll assume the defaults here, and things flows to default with priority 32767 ip rule; # let's add a rule, if we see traffic from eth1's IP address, # use its new routing table we setup, and give it higher priority than default ip rule add from 192.168.100.10 lookup eth1_rt prio 1000 ; # done! now check your traffic from both IPs, they should both work.
2) 在重新啟動時啟用對第二個 ENI 的訪問但持久。
來源:http ://blog.bluemalkin.net/multiple-ips-and-enis-on-ec2-in-a-vpc/
此外,如果您希望此更改保持不變,您可以在介面文件中進行所有這些更改,然後重新啟動網路服務或重新啟動以使其生效。
# NOTE: add the eth1_rt routing table to /etc/iproute2/rt_tables as show in previous section # original config to make dchp, I add mine to /etc/network/interfaces.d/eth1.cfg auto eth1 iface eth1 inet dchp # your extra rules for eth1 up ip route add default via 192.168.100.1 dev eth1 table eth1_rt up ip rule add from 192.168.100.10 lookup eth1_rt prio 1000
要使其完全生效,請重新啟動系統。
**注意:**我試過
/etc/init.d/networking restart;
了,但沒有發現路由/規則的變化,不知道為什麼,所以我重啟了。如果您想讓它立即和持久,請執行這兩種方法。