Host makinamızın sahip olduğu interface üzerinden KVM için oluşturduğmuz veya var olan sanal interfacemize port yönlendirmek için iptables üzerinden port yönlendirme işlemlerini yapabiliriz.
İlk olark makinamızdaki interfaceleri görelim. Bunun için aşağıdaki komutu çalıştırabiliriz.
ip a
Benim bilgisayarımda komutun çıktısında kvm için default gelen ve benim oluşturduğum interfaceler aşağıdaki gibidir.
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:17:20:d3 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
ve
25: deren: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:50:84:d9 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.1/24 brd 192.168.100.255 scope global default2
valid_lft forever preferred_lft forever
virbr0 adlı interface default olarak kvm kurulumunda genel interface adıdır.
deren adlı interface ise benim sonradan oluşturduğun interface.
Şimdi gelelim nasıl yönlendirme yapacağımıza.
İlk önce port yönlendirmenin konfigürasyonunun açık olduğundan emin olalım.
sudo sysctl net.ipv4.ip_forward=1
Sonrasında iptables kuralımızı yazabiliriz.
iptables -t nat -A PREROUTING -i <interface> -p tcp --dport <host_port> -j DNAT --to-destination <guest_ip>:<guest_port>
iptables -A FORWARD -p tcp -d <guest_ip> --dport <guest_port> -j ACCEPT
Komut üzerinde:
host_port: kvm vmi host ettiğiniz ana makinanın portunu
guest_ip: kvm makinanızın ip adresi
guest_host: kvm makinanızda ana makinanıza yönlendirmek istediğiniz portunu yzıyoruz.
interface: kvm kurulumunda default gelen interface kullanılacaksa virbr0 veya kendinizin oluşturduğu interface adını yazabilirsiniz.
Not: tcp alanını udp yaparak udp olarak da forward yapabilirsiniz.
Kendi network interface yapınızı oluşturmak için buradan yararlanabilirsiniz