
다른 네트워크(ens3, ens3:0-)에 영향을 주지 않고 인터넷(예: 인터넷(xx5.5/ens3:4) <-> VM1(192.168.122.101)에서 VM1(192.168.122.101)에 연결하고 싶습니다. >3).
문제는 내 VPS에 물리적 NIC가 하나만 있다는 것입니다. 다른 IP는 아래 다이어그램에 표시된 별칭입니다. ens3을 연결하면 별칭이 중단되지 않나요?
나는 팔로우했다이 가이드문자로 전송되지만 ssh
VM(@xx5.5)은 기본 NIC/호스트(@88.88.88.88)에 연결됩니다. ssh
로컬 IP(@192.168.122.101)로 VM에 연결합니다.
인터넷에 연결하고 웹 서버 역할을 할 수 있는 개인 IP를 각 VM(현재 하나의 VM)에 할당하도록 VPS에서 네트워크를 어떻게 구성해야 합니까? Ubuntu 16.04에서 원하는 설정이 불가능한 경우 18/20.04로 업그레이드하면 가능합니까?
구성:
- OVH VPS
- 우분투 16.04
- KVM
- 으악
- 가상민/웹민
네트워크(간체):
Internet
\
|
+------------------------+
| Ubuntu server | virbr0 (192.168.122.1/24)
+------------------------+ NAT
| ens3: 88.88.88.88 | Static IP for VM
+----------------+-------------+------------+-----------------+
| ens3:0 x.x.1.1 | | site1.com | Virtualmin->www
+----------------+-------------+------------+-----------------+
| ens3:1 x.x.2.2 | | site2.com | Virtualmin->www
+----------------+-------------+------------+-----------------+
| ens3:2 x.x.3.3 | | site3.com | Virtualmin->www
+----------------+-------------+------------+-----------------+
| ens3:3 x.x.4.4 | | site4.com | Virtualmin->www
+----------------+-------------+------------+-----------------+
| ens3:4 x.x.5.5 | | VM1/Ubuntu | 192.168.122.101
+----------------+-------------+------------+-----------------+
현재 IP 구성:
root:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:06:3f:2c:05:3b brd ff:ff:ff:ff:ff:ff
inet 88.88.88.88/32 brd 88.88.88.88 scope global ens3
valid_lft forever preferred_lft forever
inet x.x.1.1/32 brd x.x.1.1 scope global ens3:0
valid_lft forever preferred_lft forever
inet x.x.2.2/32 brd x.x.2.2 scope global ens3:1
valid_lft forever preferred_lft forever
inet x.x.3.3/32 brd x.x.3.3 scope global ens3:2
valid_lft forever preferred_lft forever
inet x.x.4.4/32 brd x.x.4.4 scope global ens3:3
valid_lft forever preferred_lft forever
inet x.x.5.5/32 brd x.x.5.5 scope global ens3:4
valid_lft forever preferred_lft forever
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 51:52:00:c9:9b:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 51:52:00:c9:9b:7d brd ff:ff:ff:ff:ff:ff
6: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOWN group default qlen 1000
link/ether 50:54:00:46:ea:7c brd ff:ff:ff:ff:ff:ff
root:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether fa:06:3f:2c:05:3b brd ff:ff:ff:ff:ff:ff
버쉬 구성:
root:~# virsh net-dumpxml default
<network connections='1'>
<name>default</name>
<uuid>54b584b8-b2f5-45cb-a8e1-8d75540dc1a8</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='51:52:00:c9:9b:7d'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
root:~# virsh domifaddr dpcloud
Name MAC address Protocol Address
-------------------------------------------------------------------------------
vnet0 50:54:00:46:ea:7c ipv4 192.168.122.101/24
root:~# ssh [email protected]
...
root:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:46:ea:7c brd ff:ff:ff:ff:ff:ff
inet 192.168.122.101/24 brd 192.168.122.255 scope global dynamic ens2
valid_lft 3470sec preferred_lft 3470sec
inet6 fe80::5054:ff:fe46:ea7c/64 scope link
valid_lft forever preferred_lft forever
답변1
결국 @ChaoxiangN의 조언을 따르게 되었습니다.여기:
- 별칭 제거
- 브리지(br0)를 설정하고 여기에 다른 IP를 추가하세요.
- 자체 브리지 네트워크(virbr0)로 KVM VM 설정
그런 다음 "게스트 내부에서 4/ 다른 IP를 사용하도록 ipv4 구성" 대신 iptables를 사용하여 NAT를 활성화했습니다.
root:~# iptables -t nat -I PREROUTING -p tcp -d 111.122.133.144 --dport 1:65535 -j DNAT --to-destination 192.168.122.88:1-65535
root:~# iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT
참고: 111.122.133.144
= 공용 IP, 192.168.122.88
= VM1 IP
ssh [email protected]
...
user@VM1:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:32:00:11:20:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.88/24 brd 192.168.122.255 scope global dynamic enp1s0
valid_lft 3576sec preferred_lft 3576sec
inet6 fe80::5054:ff:fe73:2096/64 scope link
valid_lft forever preferred_lft forever