У меня есть несколько гостей KVM, работающих на хосте Fedora 22, использующих мостовую сеть. Кажется, все идет хорошо, кроме одной мелочи. У одного из гостей работает apache. Любой доступ к веб-серверу на гостевой машине показывает IP-адрес хоста в журналах, а не IP-адрес фактического источника. «who -mu» на гостевой системе также показывает IP-адрес или, скорее, имя хоста физического хоста KVM, а не фактический IP-адрес источника, с которого я использую SSH.
Так, например:
Я использую SSHing с 10.10.10.3, который является физическим хостом Debian, на 10.10.10.5, который является гостевым KVM Ubuntu, работающим на физическом хосте Fedora 22, то есть 10.10.10.4. Когда я успешно вошел в систему 10.10.10.5 и ввел «who -mu», я вижу имя хоста машины 10.10.10.4, а не машины 10.10.10.3. Точно так же, если я получаю доступ к страницам Apache в 10.10.10.5 с машины 10.10.10.3, в журналах Apache отображается 10.10.10.4.
Вот мой ifcfg-br0:
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
IPADDR=10.10.10.4
NETMASK=255.255.255.0
GATEWAY=10.10.10.22
DNS1=10.10.10.22
SEARCH="example.co"
ONBOOT=yes
NM_CONTROLLED=no
IPV6INIT=no
STP=on
И ifcfg-enp2s0 (физический адаптер на хосте Fedora:
TYPE=Ethernet
DEVICE=enp2s0
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
Кто-нибудь знает, что мне нужно сделать, чтобы исходный IP-адрес отображался правильно? Я предполагаю, что на хосте Fedora есть iptables-fu?
РЕДАКТИРОВАТЬ: добавлены выходы iptables по запросу. Это из коробки с запущенным virsh:
>
# iptables -vnL
Chain INPUT (policy ACCEPT 26M packets, 65G bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
Chain FORWARD (policy ACCEPT 72720 packets, 14M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * virbr0 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- virbr0 * 192.168.122.0/24 0.0.0.0/0
0 0 ACCEPT all -- virbr0 virbr0 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- * virbr0 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 REJECT all -- virbr0 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
1340M 1496G DOCKER-ISOLATION all -- * * 0.0.0.0/0 0.0.0.0/0
805M 1454G DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0
805M 1454G ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
535M 42G ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 27M packets, 1068G bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:68
Chain DOCKER (1 references)
pkts bytes target prot opt in out source destination
31058 4176K ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.2 tcp dpt:80
5388 265K ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.17.0.2 tcp dpt:22
Chain DOCKER-ISOLATION (1 references)
pkts bytes target prot opt in out source destination
1340M 1496G RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
# iptables -vnL -t nat
Chain PREROUTING (policy ACCEPT 3676K packets, 277M bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * * 0.0.0.0/0 10.10.10.4 tcp dpt:443 to:10.10.10.106:443
0 0 DNAT tcp -- * * 0.0.0.0/0 10.10.10.4 tcp dpt:8443 to:10.10.10.50:10000
0 0 DNAT tcp -- * * 0.0.0.0/0 10.10.10.4 tcp dpt:5223 to:10.10.10.50:4040
0 0 DNAT tcp -- * * 0.0.0.0/0 10.10.10.4 tcp dpt:4040 to:10.10.10.50:4040
0 0 DNAT tcp -- * * 0.0.0.0/0 10.10.10.4 tcp dpt:81 to:10.10.10.4:80
24172 6451K DOCKER all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT 165K packets, 65M bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 53577 packets, 6455K bytes)
pkts bytes target prot opt in out source destination
3390 251K DOCKER all -- * * 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2 622 RETURN all -- * * 192.168.122.0/24 224.0.0.0/24
0 0 RETURN all -- * * 192.168.122.0/24 255.255.255.255
0 0 MASQUERADE tcp -- * * 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 192.168.122.0/24 !192.168.122.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 192.168.122.0/24 !192.168.122.0/24
3506K 210M MASQUERADE all -- * !docker0 172.17.0.0/16 0.0.0.0/0
67578 8512K MASQUERADE all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE tcp -- * * 172.17.0.2 172.17.0.2 tcp dpt:80
0 0 MASQUERADE tcp -- * * 172.17.0.2 172.17.0.2 tcp dpt:22
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0
5716 343K DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:32180 to:172.17.0.2:80
1133 67980 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:32122 to:172.17.0.2:22