CentOS/RHEL on EC2でENIを追加した時はそれぞれのNICに対してルーティング設定をしてあげる必要があります。
ENIの追加やIPの払い出し、EC2へのアタッチは以下のように済んでいる状態です。
名称 | プライベートアドレス | EIP |
---|---|---|
Gateway | 172.16.1.1/24 | |
ens5 | 172.16.1.10/24 | x.x.x.x |
ens5:1 | 172.16.1.11/24 | y.y.y.y |
ens6 | 172.16.1.20/24 | z.z.z.z |
ens5もens6も同じVPCに所属しています。
NICの設定
ens6のDEFROUTEはnoにしないと、サーバから出て行くデフォルトのNICがens6となります。(最後にifupしたNICがデフォルトになるため)
vi /etc/sysconfig/network-scripts/ifcfg-ens5
-----
BOOTPROTO=dhcp
DEVICE=ens5
HWADDR=0a:25:b5:xx:yy:zz
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
GATEWAY=172.16.1.1
----
vi /etc/sysconfig/network-scripts/ifcfg-ens5:1
----
DEVICE="ens5:1"
IPADDR="172.16.1.11"
NETMASK="255.255.255.0"
----
vi /etc/sysconfig/network-scripts/ifcfg-ens6
----
BOOTPROTO=dhcp
DEVICE=ens6
HWADDR=0a:76:29:xx:yy:zz
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
DEFROUTE=no
----
テーブル作成
各NIC用にテーブルを追加します。
vi /etc/iproute2/rt_tables
-----
100 t1
101 t2
----
ルーティング設定
各NICに対してルーティングの設定をします。
vi /etc/sysconfig/network-scripts/route-ens5
----
# route-ens5
172.16.0.0/16 dev ens5 src 172.16.1.10 table t1
default via 172.16.1.1 dev ens5 table t1
----
vi /etc/sysconfig/network-scripts/route-ens5:1
----
# route-ens5:1
172.16.0.0/16 dev ens5:1 src 172.16.1.11 table t1
----
vi /etc/sysconfig/network-scripts/route-ens6
----
# route-ens6
172.16.0.0/16 dev ens6 src 172.16.1.20 table t2
default via 172.16.1.1 dev ens6 table t2
----
vi /etc/sysconfig/network-scripts/rule-ens5
----
# rule-ens5
table t1 from 172.16.1.10
----
vi /etc/sysconfig/network-scripts/rule-ens5:1
----
# rule-ens5:1
table t1 from 172.16.1.11
----
vi /etc/sysconfig/network-scripts/rule-ens6
----
# rule-ens6
table t2 from 172.16.1.20
----
ARP関連の設定
kernelのパラメーターを修正します。
vi /etc/sysctl.conf
----
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
----
反映
設定を反映させるためにOSの再起動をします。
reboot
確認
自分のPC等から外部からEC2への疎通確認を行います。
ping x.x.x.x
ping y.y.y.y
ping z.z.z.z
EC2から外部への疎通確認を行います。
※ping -I を使った確認だとうまくできないようなので、telnetでソースIPを指定して確認します。
参考 https://access.redhat.com/solutions/30564
telnet -b 172.16.1.10 外部のWEBサーバ 80
telnet -b 172.16.1.11 外部のWEBサーバ 80
telnet -b 172.16.1.20 外部のWEBサーバ 80