0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CML2 を使い倒す

Posted at

CML2を使った検証環境の作成

前提条件

  • 検証環境・検証機器を既存のWAN/LANに接続させない(CML2のExternal Connector のBridgeで利用しない)
    • 既存のLANのIPアドレスから採番したくない
    • 既存の環境の機器のクローンが動かせないため
  • External Connector をNATで利用したなくない
    • NAT(NAPT)にすると外部からアクセスできないため
    • NAT内にアクセスするには、VPNサーバのノードを作成する必要がある
      → 5ノードしか使えないのに無駄遣いしたくない
  • CML2内の検証環境のネットワークをL2延伸したい or 別の検証環境用のセグメントとL3接続する
    • 既存のLANに影響を与えずに、検証できるようにしたい
    • 物理的に独立している(CML2外)の検証機器等と連携して検証環境を作成する

確認結果

検証環境用の物理ルータのセグメントをCML2のホストにL2延伸を行い、そのL2にBridge接続を行いたい。
→ 仮想基盤を管理している or 既存LANとは別に仮想基盤でスイッチを作成し、そのスイッチを中心にLANを作成する。仮想化基盤にVMLBなどのブリッジ作成の話をしてくれている方の記事などを参照

L2延伸が難しい場合、L3で接続できるようにする。(本記事はこの話)
既存のWAN/LANにL2パケットを流さないようにする。

構成

/* 後で差し替え */
image.png

構築

  1. CML2 のインストール(最新版は2.9.0)
  2. 検証LAN2の作成
  3. VPNの確立
  4. FW(iptables)の修正
  5. 経路交換
  6. AWX/Ansibleの準備

1. CML2 のインストール(最新版は2.9.0)

他の方がいろいろ解説してくださっているので省略。
Proxmox にインストールするときはSCSI Controllerを変更しないと起動しないので注意

image.png

ProxmoxでOVAをインストールする際は、CPUの種類をHostに修正する

image.png

CML2のホストに手を入れていくので、アカウントの設定とreference platforms のインストールが終わった後に、VMをテンプレートに変換しておくといいかも。

2. 検証LAN2の作成

2-1. インターフェイス・ネットワークの作成

CML2 が利用できるようになったことを確認した後、
https://<cml2 の管理IP>:9090/virl2/maintenance
にアクセスし、DHCP Networksを展開する。
「⊕Add Network」を押し、「Enable outbound traffic through NAT」のチェックを外し、Bridge欄の名前がLocal0 になっていることを確認し、「⊕Apply」を押す。
image.png

2-2. FW(iptables)の修正

Local0は本来NATセグメント用のvirbr0 であり、IPマスカレードを有効にしていないだけのため、Local0 インターフェイスを持たない機器からの通信ができない。そのため、NAT・BridgeモードのExternal Connector に接続しているCML2 のノードからアクセスができず、また物理的に分けられている環境からのアクセスは当然できない。物理の検証環境からアクセスできないのは困るので、下記のコマンドでFWを修正してL3接続できるようにする。(再起動ごとに設定が必要)

FWI_LINE=$(sudo iptables -L LIBVIRT_FWI -v --line-numbers | grep local0 | awk '{print $1}')
FWO_LINE=$(sudo iptables -L LIBVIRT_FWO -v --line-numbers | grep local0 | awk '{print $1}')

sudo iptables -D LIBVIRT_FWI "${FWI_LINE}"
sudo iptables -D LIBVIRT_FWO "${FWO_LINE}"

sudo iptables -I LIBVIRT_FWI -i local0 -j ACCEPT
sudo iptables -I LIBVIRT_FWO -o local0 -j ACCEPT

そのうちスクリプトにしたい。。。。

3. VPNの確立

これはお好きなVPNを利用して、別マシンとのVPNを構築する

例)暗号化なしのGREトンネリングを利用
CML2 側でトンネル終端のI/F gre1 を作成して、IPアドレスを割り当てる。

sudo ip tunnel add gre1 mode gre local 192.168.200.1 remote 192.168.100.1
sudo ip addr add 172.16.31.253/30 dev gre1
sudo ip link set gre1 up

対向機器でGRE トンネリングを作成する

(cisco router)
interface Tunnel0
 ip address 172.16.31.254 255.255.255.252
 tunnel source 192.168.100.1
 tunnel destination 192.168.200.1

トンネルが確立できて問題がなければ、設定を保存する。
cml2 の場合は、/etc/netplan/ に保存する。

network:
 version: 2
 renderer: networkd
 tunnels:
   gre1:
     mode: gre
     local: 192.168.200.1
     remote: 192.168.100.1
     addresses: [172.16.31.252/30]
     mtu: 1476

5. 経路交換

Linux

6. AWX/Ansibleの準備

おわりに

cml2.9 のfree tier をインストールさせてもらったが、インスタンスがいろいろ増えていたのでcml2 だけで遊べる範囲が広がったが、docker container で動作する機器がまだ不安定なので、修正してもらえるのを気長に待たせていただきます。
docker container のノードにアクセスできなくなったときは、下記のコマンドを実行してから再度アクセスを行う。

sudo systemctl restart virl2-lowlevel-driver
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?