Networking
aws ec2:通過公共 IP 地址在實例之間建立 ipip 隧道
誰能告訴我這首先是可能的還是不可能的?認為:
有兩個 ec2 實例
- 在一個 aws 帳戶/vpc 中。
- 在不同的子網/可用區域中。
- 在 CentOS 7 上執行。
出於某種原因,需要通過它們的公共 IP 地址在實例之間創建一個 ipip 隧道。
而且,隧道不會工作。
- 關聯網路 acl 和安全組明確允許所有流量。
- iptables/firewalld 在每個 ec2 實例上都被禁用。
- 當隧道通過他們的公共地址時,它實際上工作得很好。
為了詳細說明,我嘗試如下所述,但徒勞無功:
實例#1:
- 公共IP地址:xxxx(彈性IP地址)
實例#2:
- 公共IP地址:yyyy(非彈性IP地址)
在實例 #1 上添加隧道:
$ sudo ip tunnel add tun0 mode ipip remote y.y.y.y local x.x.x.x $ sudo ip address add 192.168.1.11 peer 192.168.2.11 dev tun0 $ sudo ip link set mtu 1480 dev tun0 $ sudo ip link tun0 up $ ip address show (snip) 4: tun0@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000 link/ipip x.x.x.x peer y.y.y.y inet 192.168.1.11 peer 192.168.2.11/32 scope global tun0 valid_lft forever preferred_lft forever
- 在實例 #2 上添加隧道:
$ sudo ip tunnel add tun0 mode ipip remote x.x.x.x local y.y.y.y $ sudo ip address add 192.168.2.11 peer 192.168.1.11 dev tun0 $ sudo ip link set mtu 1480 dev tun0 $ sudo ip link tun0 up $ ip address show (snip) 4: tun0@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000 link/ipip y.y.y.y peer x.x.x.x inet 192.168.2.11 peer 192.168.1.11/32 scope global tun0 valid_lft forever preferred_lft forever
- 在實例 #1 上進行測試:
$ ping 192.168.2.11 PING 192.168.2.11 (192.168.2.11) 56(84) bytes of data. ^C --- 192.168.2.11 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 999ms
- 在實例 #2 上進行測試:
$ ping 192.168.1.11 PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data. ^C --- 192.168.1.11 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 999ms
非常感謝任何答案/建議,謝謝。
非常感謝邁克爾,你的評論就是全部。在這裡我將引用它並結束這個問題:
sudo ip tunnel add tun0 mode ipip remote xxxx local yyyy 在這裡,您應該使用 xxxx = remote public 但 yyyy = local private。Internet 網關知道本地實例的公網 IP,但本地實例不知道自己的公網 IP。
再次感謝你。