Товарищи, помогите справиться с проблемкой. Понимание сетей и навыки администрирования Linux у меня на зачаточном уровне, поэтому даже гуглить правильно не могу.
Следущая ситуация. Хочется иметь Jenkins со слэйвами для сборки проектов, прогонки интеграционных тестов и т.д. Поскольку опыта настраивания виртуализации с нуля нет, выбрал то, что умею - vagrant с libvirt плагин и KVM+QEMU как бекэнд.
Получилось следующее
* Host - 172.21.0.10, на нем Vagrant проект со следующим содержимым:
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "master", autostart: false do |master|
master.vm.box = "s3than/trusty64"
master.ssh.forward_agent = true
master.vm.network :public_network, ip: "172.21.0.11", netmask: "255.255.0.0", dev: "eth1"
master.vm.network :private_network, ip: "192.168.66.10"
master.vm.synced_folder ".", "/vagrant", type: "nfs"
master.vm.provider "libvirt" do |v|
v.memory = 2048
v.cpus = 4
end
master.vm.provision "shell", path: "provision/profiles/jenkins-master.sh", args: [pgsql_root_password, deploy_key]
end
config.vm.define "slave1", autostart: false do |slave1|
slave1.vm.box = "s3than/trusty64"
slave1.ssh.forward_agent = true
slave1.vm.network :private_network, ip: "192.168.66.11"
slave1.vm.synced_folder ".", "/vagrant", type: "nfs"
slave1.vm.provider "libvirt" do |v|
v.memory = 2048
v.cpus = 4
end
slave1.vm.provision "shell", path: "provision/profiles/jenkins-slave.sh", args: [pgsql_root_password, deploy_key]
end
end
Все поднимается, все работает. Виртуальная сетка между master и slave работает, все друг друга видят, public ip для master (172.21.0.11) тоже работает - могу туда заходить со своего рабочего компа напрямую.
Все бы хорошо, но есть еще одно условие. Чтобы это все заработал окончательно, я хочу чтобы jenkins master получал уведомления от внешнего git хостинга (Bitbucket). Для этого на рутере (zywall 310) настроил port-forwarding. И вот тут возникает проблема.
* Проброс порта на 172.21.0.10 (host) - OK
* Проброс порта на 172.21.0.11 (master/kvm-guest) - connection timeout
И вот тут я не знаю, что дальше делать. Вроде как я могу достучаться до 172.21.0.11 отовсюду из сетки 172.21.0.0/16. Точно так же могу достучаться до 172.21.0.10. Но проброс порта работает только для хоста.
iptables на guest'ах нету. На хосте:
# Generated by iptables-save v1.4.21 on Tue May 31 08:55:14 2016
*mangle
:PREROUTING ACCEPT [409406:661493518]
:INPUT ACCEPT [231564:29751763]
:FORWARD ACCEPT [177721:631731053]
:OUTPUT ACCEPT [14463:1973481]
:POSTROUTING ACCEPT [192184:633704534]
-A POSTROUTING -o virbr2 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
-A POSTROUTING -o virbr1 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Tue May 31 08:55:14 2016
# Generated by iptables-save v1.4.21 on Tue May 31 08:55:14 2016
*nat
:PREROUTING ACCEPT [83660:12899990]
:INPUT ACCEPT [83212:12869540]
:OUTPUT ACCEPT [259:17537]
:POSTROUTING ACCEPT [259:17537]
-A POSTROUTING -s 192.168.66.0/24 -d 224.0.0.0/24 -j RETURN
-A POSTROUTING -s 192.168.66.0/24 -d 255.255.255.255/32 -j RETURN
-A POSTROUTING -s 192.168.66.0/24 ! -d 192.168.66.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.66.0/24 ! -d 192.168.66.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.66.0/24 ! -d 192.168.66.0/24 -j MASQUERADE
-A POSTROUTING -s 192.168.121.0/24 -d 224.0.0.0/24 -j RETURN
-A POSTROUTING -s 192.168.121.0/24 -d 255.255.255.255/32 -j RETURN
-A POSTROUTING -s 192.168.121.0/24 ! -d 192.168.121.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.121.0/24 ! -d 192.168.121.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.121.0/24 ! -d 192.168.121.0/24 -j MASQUERADE
COMMIT
# Completed on Tue May 31 08:55:14 2016
# Generated by iptables-save v1.4.21 on Tue May 31 08:55:14 2016
*filter
:INPUT ACCEPT [230119:29658491]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [14421:1958407]
-A INPUT -i virbr2 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr2 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr2 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr2 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -i virbr1 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr1 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr1 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr1 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.66.0/24 -o virbr2 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.66.0/24 -i virbr2 -j ACCEPT
-A FORWARD -i virbr2 -o virbr2 -j ACCEPT
-A FORWARD -o virbr2 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr2 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -d 192.168.121.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.121.0/24 -i virbr1 -j ACCEPT
-A FORWARD -i virbr1 -o virbr1 -j ACCEPT
-A FORWARD -o virbr1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -o virbr2 -p udp -m udp --dport 68 -j ACCEPT
-A OUTPUT -o virbr1 -p udp -m udp --dport 68 -j ACCEPT
COMMIT
# Completed on Tue May 31 08:55:14 2016
iptables на хосте:
eth1 Link encap:Ethernet HWaddr 1c:c1:de:08:a5:33
inet addr:172.21.0.10 Bcast:172.21.255.255 Mask:255.255.0.0
inet6 addr: fe80::1ec1:deff:fe08:a533/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1833452 errors:0 dropped:2412 overruns:0 frame:0
TX packets:99643 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:758095974 (722.9 MiB) TX bytes:9073658 (8.6 MiB)
Memory:ef060000-ef07ffff
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:263 errors:0 dropped:0 overruns:0 frame:0
TX packets:263 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:37834 (36.9 KiB) TX bytes:37834 (36.9 KiB)
macvtap0 Link encap:Ethernet HWaddr 52:54:00:c1:70:0d
inet6 addr: fe80::5054:ff:fec1:700d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:483079 errors:584 dropped:584 overruns:0 frame:0
TX packets:6351 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:41780566 (39.8 MiB) TX bytes:926779 (905.0 KiB)
virbr1 Link encap:Ethernet HWaddr 52:54:00:89:74:20
inet addr:192.168.121.1 Bcast:192.168.121.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:75125 errors:0 dropped:0 overruns:0 frame:0
TX packets:120364 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4988463 (4.7 MiB) TX bytes:630341478 (601.1 MiB)
virbr2 Link encap:Ethernet HWaddr 52:54:00:88:aa:ef
inet addr:192.168.66.1 Bcast:192.168.66.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2396 (2.3 KiB) TX bytes:0 (0.0 B)
vnet0 Link encap:Ethernet HWaddr fe:54:00:cf:42:d6
inet6 addr: fe80::fc54:ff:fecf:42d6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22871 errors:0 dropped:0 overruns:0 frame:0
TX packets:64586 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:1872123 (1.7 MiB) TX bytes:211944209 (202.1 MiB)
vnet1 Link encap:Ethernet HWaddr fe:54:00:51:4f:67
inet6 addr: fe80::fc54:ff:fe51:4f67/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:29684 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:648 (648.0 B) TX bytes:1543800 (1.4 MiB)