# 20200915 雲端技術與虛擬化技術簡介

## 課堂資料

#### 林柏億的Linux筆記：

{% embed url="<https://github.com/istar0me/linux-note>" %}

#### Oracle VM VirtualBox：

{% embed url="<https://www.virtualbox.org/wiki/Downloads>" %}

#### download mirror for CentOS - CentOS Mirrors List：

{% embed url="<http://isoredirect.centos.org/centos/7/isos/x86_64/>" %}

### 虛擬機環境架設

![NAT 轉換](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MH_BIIXdt2hQ_bnmjIO%2F-MH_O0zU3MCnxmTMtWQO%2FCloud%20Communication%20-%20NAT%E8%BD%89%E6%8F%9B.jpg?alt=media\&token=814abfd5-415f-428c-9248-5acecace2103)

#### 設定 vm1 網路卡

![第一張網路卡設為 NAT](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MHoPXnFPU-_0HlpkFwl%2F-MHoQ5eCiNNHhkRGVHM7%2F00.jpg?alt=media\&token=a24e2f1d-74c7-44a1-8b43-02b73336c9ca)

![第二張網路卡設為 Host-Only](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MHoPXnFPU-_0HlpkFwl%2F-MHoQhnSxSAEz2nxJnkP%2F01.jpg?alt=media\&token=a9ffec2f-27d8-4611-9bb0-00c9f7937c02)

![第三張網路卡設為內部網路](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MHoPXnFPU-_0HlpkFwl%2F-MHoR33eiF23rEukGXZC%2F01-1.jpg?alt=media\&token=08fb720c-a8d1-43ed-837e-d8612b98490a)

> #### vm1：
>
> 內部網路：enp0s9 ( 网卡名称 )

> 內部路由：192.168.1.1

#### 設定 vm2 網路卡

![第一張網路卡設為內部網路](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MHoPXnFPU-_0HlpkFwl%2F-MHoRVOreBZ7-mwHcN4V%2F02.jpg?alt=media\&token=e7d4e7e4-e981-4bf8-94e6-eeedc110cfb6)

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MHoPXnFPU-_0HlpkFwl%2F-MHoSCKha6p_KnA1RXfo%2F03.jpg?alt=media\&token=7b0480e8-b249-4d96-a20f-24c3a7bbbdd4)

> #### vm2：
>
> 內部網路：enp0s3 ( 网卡名称 )
>
> 內部路由：192.168.1.2

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MHoPXnFPU-_0HlpkFwl%2F-MHoRjyDWC8W79cEqjUc%2F03.jpg?alt=media\&token=ab297d25-0a7a-436e-8d86-c9571744e3f8)

![取消其他張網路卡](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MHoPXnFPU-_0HlpkFwl%2F-MHoRhx_7W34JH9rrM12%2F03.jpg?alt=media\&token=08a4db3b-8097-4b8c-a621-3e862ef19d37)

> 設定時須先登入 su ( Super User )，密碼為管理者密碼

{% tabs %}
{% tab title="NAT 轉換 " %}

#### (讓第二台電腦通過第一台電腦連到網路)

#### vm1 \[ 設定網路卡 ( 增加 ip 到 enp0s9 ) ]：

```
ip addr add 192.168.1.1/24 brd + dev enp0s9
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MIJHu0v3q_XOo3Su0iE%2F-MIJm1PhtWe4zrxIQ3or%2F06.jpg?alt=media\&token=845f1def-872e-48b7-b05c-c9052fd3c72a)

#### vm2 \[ 設定網路卡 ( 增加 ip 到 enp0s3 ) ]：

```
ip addr add 192.168.1.2/24 brd + dev enp0s3
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MIJHu0v3q_XOo3Su0iE%2F-MIJm53V4HUJzOlP1kQq%2F07.jpg?alt=media\&token=730a1bc0-8e2b-4971-a4ad-8d0efd3e30b6)

#### vm2 ( 設定內定路由 )：

```
ip route add default via 192.168.1.1
```

> 查詢路由是否設定成功

```
ip route show
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MIJHu0v3q_XOo3Su0iE%2F-MIJls7S7PCU4QcJy4Lv%2F08.jpg?alt=media\&token=24f7a8b5-1a11-484d-9e20-2d20da418ae3)

#### vm1 ( 設定轉發功能 )：

```
echo 1 > /proc/sys/net/ipv4/ip_forward
```

> 查詢轉發功能是否設定成功

```
cat 1 > /proc/sys/net/ipv4/ip_forward
```

#### vm1 ( 連線開始建立起來 )：

```
iptables -A FORWARD -o enp0s3 -i enp0s9 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
```

* -A ( append )
* -o ( output )
* -i ( input )
* ACCEPT ( 接受 )

#### vm1 ( 讓所有資料可進行穿透不會被拒絕 )：

```
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
```

#### vm1 ( 把封包改變成 ip 位置 )：

```
iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.1.0/24 -j MASQUERADE
```

* -t ( table )
* -A ( Add )
* -j ( jump )
* MASQUERADE (  )

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MIJHu0v3q_XOo3Su0iE%2F-MIJmP0NinEP_52CHG8I%2F10.jpg?alt=media\&token=9e06bb2a-cefb-4fac-9867-b98f8ef15fad)
{% endtab %}

{% tab title="docker" %}

* docker 基本操作
* docker 應用
* docker 倉庫
* dockerfile
* docker-compose
* docker swarm
* kubernetes ( K8S )
  {% endtab %}
  {% endtabs %}

{% hint style="warning" %}
需要開啟兩台 LINUX 虛擬機 ( Oracle )
{% endhint %}
