LoginSignup
1
4

More than 3 years have passed since last update.

netplanでポリシールーティングする

Last updated at Posted at 2020-06-27

ipアドレスはちょっと変更しているので、ミスってたらすみません。

概要

背景

1.
LIVAで構築していたProxy Server(Squid)をクライアントPC上のHyper-V上にリプレースすることにしました。
メインPCをB550マザーで一式リプレースしたので、マシンパワーが余剰となったので物理機を一台削除することにしたのでした。
Sandyおじがんばった!感動した。(ケースだけ流用)
Zen3がきたらCPUだけ交換するぞ(たぶん)

2.
Hyper-Vホストとゲストでファイルコピーをできるようになったらしいのでできるようにしておく。

Proxyでやりたいこと

クライアントPCのブラウザプロキシ設定で、ipv6、またはipv4の回線で自由に接続を変更できるようにしたい。

  • Proxy Port 8081にアクセスすると、ipv4の回線でインターネットアクセスする。
  • Proxy Port 3128にアクセスすると、ipv6の回線でインターネットアクセスする。

設定の変更点

Ubuntuのネットワーク設定が/etc/network/interfacesから/etc/netplanに変更がありました。

ネットワークの状態

ONU----ipv6用のルータ-----クライアントPC(squid on Hyper-V)
 |       | <---LAN側ポート同士が結線されている。
 |----ipv4用のルータ

ネットワークの設定

Hyper-VにUbuntuを入れていく

(ry

いままで

過去記事参照
https://qiita.com/yamada6667/items/1cdc080251eef62e12e6

これから

各オブジェクトのIP

・ipv6ルータ 192.168.1.1
・ipv4ルータ 192.168.1.200
・squidサーバ 192.168.1.50:3128,192.168.1.250:8081

squid サーバの設定

いままでは、iptablesやip_forward、rt_tables、ip routeでの設定が必要でしたがこれらは不要になりました。

Squidの設定は以前と変わりません。

squid.conf
# 待ち受けポートと。tcp_outgoingの設定をする。
# 8081ポートにアクセスしに来た場合はIPアドレス.250として外部へ接続しに行く
acl ipv6 localport 3128
acl ipv4 localport 8081
tcp_outgoing_address 192.168.1.50 ipv6
tcp_outgoing_address 192.168.1.250 ipv4 

/etc/ntplan/のyamlファイルを作りましょう。
デフォルトで作られているものをコピーして、アルファベット順にしたときに、後ろになるように
ファイル名を変更して、ファイルを修正する。

netplan.yaml

# やること
# ipアドレスを複数定義する。
# デフォルトゲートウェイはとりあえずipv6側へ
#  ルートテーブル200に.200(ipv4)への経路を追加する。
# squid 8081ポートの通信はIP.250として通信する。その時のゲートウェイはルートテーブル200を使う。

network:
  ethernets:
    eth0:
      addresses:
      - 192.168.1.50/24
      - 192.168.1.250/24
      gateway4: 192.168.1.1
      routes:
      - to: 0.0.0.0/0
        via: 192.168.1.200
        table: 200
      routing-policy:
      - from: 192.168.29.250/32
        table: 200
      nameservers:
        addresses:
        - 192.168.1.1
        - 8.8.8.8
  version: 2

あとはクライアントPCのプロキシの設定で3128か8081かを設定すると、インターネット接続回線が切り替わる。

Hyper-Vとゲストでファイルコピー

ゲストOS
sudo apt install linux-cloud-tools-generic
ホストOS(管理者権限)
 copy-vmfile -name "squid" -sourcepath "D:\tmp\copyfile.txt" -destinationpath "/tmp" -filesource host

コピーされたファイルのパーミッションは

-rwxr--r--  1 root root   27 Jun 27 20:29 copyfile.txt

なので、ファイル操作に注意だ。

1
4
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
1
4