Oracle Cloud: オンプレミスのルータ経由でOCI Compute InstanceからInternetアクセスしてみてみた

Oracle Cloud Infrastructure (OCI)とオンプレミスをプライベート接続するためにFastConnetや IPSec VPNで接続します。
そのときに、OCIのインスタンスからインターネット接続する場合、オンプレミスのルーターを経由してインターネット アクセスしたい場合があったりします。
ということで、オンプレミスのルーターをDefault Gatewayにして、OCIのインスタンスをオンプレミス経由でInternetアクセスしてみてみます。

#■ 構成
![構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/b6eb59f7-743e-1c3a-b483-58ea910f34d9.png)
今回、オンプレミスとOCIへの接続はIPSec VPNを使用します。
構成は以前実施した環境を使い、このオンプレミスのNEX IXルーターにDefault Route(0.0.0.0/0)をBGPでOCIのDRGへ伝搬するよう追加設定します。
・参考: [Oracle Cloud: NEC IXルーターを冗長構成でIKEv2 IPSec VPN接続してみてみた](https://qiita.com/shirok/items/611ffb7cdd96ac95d32b)

また、OCIの Compute Instance(tokyo-inst01)からブラウザでInternet アクセスできることを確認するため、X Window System設定して、オンプレミスのMac BookからXアクセスして確認してみてみます。
・参考: [Macへ X Window Systemで GUI表示してみてみた](https://qiita.com/shirok/items/9f55879bb3facf89082f)


#■ 事前確認
事前にIPSec VPN構成したOCIのCompute Instanceがインターネットアクセスできないことを確認します。

##● OCIインスタンスから Internetへ ping確認
1.1.1.1 などにping実行してInternetアクセスできないことを確認

```shell
[opc@tokyo-inst01 ~]$ ping 1.1.1.1 -c 3
	PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.

	--- 1.1.1.1 ping statistics ---
	3 packets transmitted, 0 received, 100% packet loss, time 2047ms
```

##● NEC IXルーター BGP配信確認
Default Route(0.0.0.0/0)をBGPで配信していないことを確認

```shell
IX-Router01(config)# show ip bgp neighbor  192.168.254.14 advertised-routes
	BGP table version is 37, local router ID is 192.168.254.25
	Local AS number 65000
	Status codes: s - suppressed, * - valid, h - history
				> - best, i - internal
	Origin codes: i - IGP, e - EGP, ? - incomplete

	Network            Next Hop            Metric     LocPrf  Path
	*> 192.168.0.0/24   192.168.254.13           5             i
```


#■ オンプレミス側設定
NEC IXルーターに、以下設定を行いDefault RouteをBGPで配信する設定を実施

##● 設定値

	originate-default

##● 設定手順

```shell
IX-Router01# configure
	Enter configuration commands, one per line. End with CNTL/Z.
IX-Router01(config)# router bgp 65000
IX-Router01(config-bgp)# address-family ipv4 unicast
IX-Router01(config-bgp-af4)# originate-default
```

##● 設定config確認

```shell
IX-Router01(config-bgp-af4)# show running-config
・・・
!
router bgp 65000
  neighbor 192.168.254.14 remote-as 31898
  neighbor 192.168.254.14 timers 10 30
  address-family ipv4 unicast
    originate-default
    neighbor 192.168.254.14 route-map pri1 in
    neighbor 192.168.254.14 route-map pri1 out
    network 192.168.0.0/24
!
・・・
```


##● 設定動作確認
Default Route(0.0.0.0/0)をBGPでOCIへ配信していることを確認
※ 192.168.254.14はOCI側BGP Peer IPです

```shell
IX-Router01(config-bgp-af4)# sho ip bgp neighbor  192.168.254.14 advertised-routes

	BGP table version is 38, local router ID is 192.168.254.25
	Local AS number 65000
	Status codes: s - suppressed, * - valid, h - history
				> - best, i - internal
	Origin codes: i - IGP, e - EGP, ? - incomplete

	Network            Next Hop            Metric     LocPrf  Path
	*> 0.0.0.0/0          192.168.254.13           5             i
	*> 192.168.0.0/24   192.168.254.13           5             i
```

#■ OCI側設定
##● Route Table設定
Default Route(0.0.0.0/0)をDRG(動的ルーティング・ゲートウェイ)へ通すようRoute Tableを設定
![RT設定01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/f741ae21-59ac-2c54-5319-bcb0db6dc3fa.png)




#■ OCI --> Internet接続確認
##● 経路確認
1.1.1.1等のinternetアクセス経路が、オンプレミス BGP IP(192.168.254.13) を経由していることを確認

```shell
[opc@tokyo-inst01 ~]$ sudo traceroute -I 1.1.1.1
	traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
	1  140.91.206.2 (140.91.206.2)  0.108 ms  0.093 ms  0.092 ms
	2  192.168.254.13 (192.168.254.13)  5.806 ms  5.816 ms  5.824 ms
	3  * * *
	4  * * *
	5  * * *
	6  * * *
	7  210.173.176.127 (210.173.176.127)  11.313 ms  8.779 ms  8.764 ms
	8  one.one.one.one (1.1.1.1)  8.538 ms  18.186 ms  18.147 ms
```

##● ping疎通

```shell
[opc@tokyo-inst01 ~]$ ping 1.1.1.1 -c 3
	PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
	64 bytes from 1.1.1.1: icmp_seq=1 ttl=57 time=22.2 ms
	64 bytes from 1.1.1.1: icmp_seq=2 ttl=57 time=12.5 ms
	64 bytes from 1.1.1.1: icmp_seq=3 ttl=57 time=58.1 ms

	--- 1.1.1.1 ping statistics ---
	3 packets transmitted, 3 received, 0% packet loss, time 2003ms
	rtt min/avg/max/mdev = 12.504/30.967/58.191/19.654 ms
```

##● ブラウザ Internetアクセス確認
OCI インスタンスでFirefoxブラウザを起動し、インターネットアクセスできることを確認
OCI インスタンスのFirefoxブラウザを起動するには、以前の記事で実施した、X Window Systemを設定し実行します

・参考: [Macへ X Window Systemで GUI表示してみてみた](https://qiita.com/shirok/items/9f55879bb3facf89082f#-sshd%E8%A8%AD%E5%AE%9A)

(1) XQuartz起動
![X経由Firefoxブラウザ接続01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/5ebe2023-2feb-57ba-a0f2-a74a1692d4ff.png)


(2) OCIインスタンスへssh接続
OCIインスタンス(10.0.0.2)へ接続
また、DISPLAY変数が設定されていることを確認

```shell
bash-3.2$ ssh -X -i id_rsa opc@10.0.0.2
	Last login: Mon Sep 28 14:07:49 2020 from 192.168.100.104
	
[opc@tokyo-inst01 ~]$ env | grep DIS
	DISPLAY=10.0.0.2:10.0
```


(3) firefox起動

```shell
[opc@tokyo-inst01 ~]$ firefox
	Failed to open connection to "session" message bus: /usr/bin/dbus-launch terminated abnormally without any error message
	Running without a11y support!
	libGL error: unable to load driver: swrast_dri.so
	libGL error: failed to load driver: swrast
```

(4) Internetアクセス確認
oracle.com等へIntenetアクセスできることを確認

![X経由Firefoxブラウザ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/7dfa6fec-4645-53cb-8533-5ffeb7f62ef1.png)

#■ 参考
● NEC IXルーター
　・[UNIVERGE IXシリーズ 　FAQ](https://jpn.nec.com/univerge/ix/faq/bgp4.html#Q1-9)
● Qiita
　・[Oracle Cloud: NEC IXルーターを冗長構成でIKEv2 IPSec VPN接続してみてみた](https://qiita.com/shirok/items/611ffb7cdd96ac95d32b)
　・[Macへ X Window Systemで GUI表示してみてみた](https://qiita.com/shirok/items/9f55879bb3facf89082f)