AmazonEC2のUbuntu18.04インスタンスに2番目のネットワークインターフェースを追加しようとしています。私はそれを行う方法についてAmazonの このガイド に従い、次の内容の/etc/netplan/51-eth1.yamlファイルを追加しました:
network:
version: 2
renderer: networkd
ethernets:
eth1:
addresses:
- 172.31.10.13/20
dhcp4: no
routes:
- to: 0.0.0.0
via: 172.31.0.1
scope: link
table: 1001
routing-policy:
- from: 172.31.10.13
table: 1001
したがって、ルーティングテーブルは次のようになります。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.31.0.1 0.0.0.0 UG 100 0 0 eth0
172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth1
172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
172.31.0.1 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
ただし、ping -Iを使用して同じサブネット上のアドレスにpingを実行すると、eth1インターフェイスからのみ機能します。 eth0に正しく応答が届くのはわかりますが、OSが何らかの理由でそれらを無視しているようです。同じインターフェイスでtcpdumpと一緒にeth0でpingを実行すると、次の出力が得られます。
PING 172.31.5.193 (172.31.5.193) from 172.31.10.197 eth0: 56(84) bytes of data.
06:00:15.186249 02:bb:3e:8f:3f:1c > 02:29:0b:80:74:b4, ethertype IPv4 (0x0800), length 98: 172.31.10.197 > 172.31.5.193: ICMP echo request, id 3538, seq 1, length 64
06:00:15.186635 02:29:0b:80:74:b4 > 02:bb:3e:8f:3f:1c, ethertype IPv4 (0x0800), length 98: 172.31.5.193 > 172.31.10.197: ICMP echo reply, id 3538, seq 1, length 64
06:00:16.201069 02:bb:3e:8f:3f:1c > 02:29:0b:80:74:b4, ethertype IPv4 (0x0800), length 98: 172.31.10.197 > 172.31.5.193: ICMP echo request, id 3538, seq 2, length 64
06:00:16.201513 02:29:0b:80:74:b4 > 02:bb:3e:8f:3f:1c, ethertype IPv4 (0x0800), length 98: 172.31.5.193 > 172.31.10.197: ICMP echo reply, id 3538, seq 2, length 64
^C
--- 172.31.5.193 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1030ms
したがって、すべてのアドレスは正しいですが、パケットは失われたと見なされます。同じことがインターフェイス上のTCP接続でも発生します-SYN-ACKが到着しますが、無視されます。iptablesルールがデフォルトで受け入れられ、他のルールが存在しないことを確認しました。ここで何が問題なのか考えてみてください。 ?
同じサブネットに2つのNICが必要なのはなぜですか?それはほとんど必要ありません。
単に2つのプライベートIPまたは2つのElastic IPが必要な場合は、既存のインターフェイスにsecondaryを割り当てることができます。 セカンダリプライベートIPアドレス
お役に立てば幸いです:)