QEMU/KVM に nic を 1 つ増やして計 2 つの nic を準備。
これを物理 nic に割り当てて macvtap で用いる。
macvtap で同じ nic にぶら下がっている母艦と VM を通信させるのは難しいみたいなコメントが表示されたのだが、
幸い母艦側には nic が 3 つあったので、それぞれ、VM WAN 側、VM LAN 側、母艦 LAN 側に割り当て。
具体的には
母艦では母艦 LAN 側の NIC (enps0f1) のみ DHCP 構成にして、その他は未設定に、
これは Ubuntu Desktop の NetworkManager から GUI で設定しており設定は以下に生成されてた。
具体的には、
VM WAN 側には割り当てられている IP を
VM LAN 側には 192.168.1.1/24 を
Ubuntu 18.04 LTS で標準の netplan を用いておおよそ以下のように設定。
/etc/netplan/config.yaml
LAN 内の DHCP サーバーも兼ねるので、
dnsmasq を導入。
/etc/dnsmasq.d/lan.conf に
firewall は
ufw enable にして default deny
LAN 側の IP に対しては基本 allow にするんだけど、
今回の場合、IP 無い状態で DHCP から IP 取れないといけないため LAN 側 nic に対して基本 allow としておく。
NAPT (ip masquerade) は以下の公式ガイドを参考に設定。
まず /etc/default/ufw の以下の行を ACCEPT に
これを物理 nic に割り当てて macvtap で用いる。
macvtap で同じ nic にぶら下がっている母艦と VM を通信させるのは難しいみたいなコメントが表示されたのだが、
幸い母艦側には nic が 3 つあったので、それぞれ、VM WAN 側、VM LAN 側、母艦 LAN 側に割り当て。
具体的には
- eth0 : VM WAN 用
- enp2s0f0 : VM LAN 用
- enp2s0f1 : 母艦 LAN 用
母艦では母艦 LAN 側の NIC (enps0f1) のみ DHCP 構成にして、その他は未設定に、
これは Ubuntu Desktop の NetworkManager から GUI で設定しており設定は以下に生成されてた。
- /var/lib/NetworkManager/dhclient-enp2s0f1.conf
具体的には、
VM WAN 側には割り当てられている IP を
VM LAN 側には 192.168.1.1/24 を
Ubuntu 18.04 LTS で標準の netplan を用いておおよそ以下のように設定。
/etc/netplan/config.yaml
network: version: 2 renderer: networkd ethernets: ens3: addresses: [xxx.xxx.xxx.xxx/24] gateway4: xxx.xxx.xxx.1 nameservers: addresses: [yyy.yyy.yyy.yyy, zzz.zzz.zzz.zzz] ens4: addresses: [192.168.1.1/24]
LAN 内の DHCP サーバーも兼ねるので、
dnsmasq を導入。
/etc/dnsmasq.d/lan.conf に
interface=ens4 #listen-address=192.168.1.1 dhcp-range=192.168.1.2,192.168.1.254,255.255.255.0,6h
firewall は
ufw enable にして default deny
LAN 側の IP に対しては基本 allow にするんだけど、
今回の場合、IP 無い状態で DHCP から IP 取れないといけないため LAN 側 nic に対して基本 allow としておく。
ufw enable ufw default deny ufw allow 192.168.0.0/16 ufw allow in on ens4
NAPT (ip masquerade) は以下の公式ガイドを参考に設定。
- Ubuntu 18.04 » Ubuntuサーバーガイド » セキュリティ » Firewall # IP マスカレーディング
まず /etc/default/ufw の以下の行を ACCEPT に
DEFAULT_FORWARD_POLICY="ACCEPT"加えて、/etc/ufw/sysctl.conf の以下の行をアンコメントして有効化
net/ipv4/ip_forward=1更に /etc/ufw/before.rules の先頭のコメント直後に以下を追加。
# nat Table rules *nat :POSTROUTING ACCEPT [0:0] # Forward traffic from ens4 through ens3. -A POSTROUTING -s 192.168.1.0/24 -o ens3 -j MASQUERADE # don't delete the 'COMMIT' line or these nat table rules won't be processed COMMITあとは ufw を再起動しておく。
タグ
コメントをかく