SIP, Kamailio, IPv4/IPv6
1. Ciele
Na Virtual Boxe nainštalovať operačný systém Debian
Urobiť komunikáciu Windows –> Debian -> internet
Na Debiane spraviť DNS server
Nainštalovať Kamailio SIP sever + MySql databázu
Pomocu RTPproxy servera zabezpečiť komunikáciu medzi IPv4 a IPv6
2. Graf topológie
3. Príprava
Stiahnutie a nainštalovanie Oracle VM VirtualBox
vytvorenie virtualneho pocitaca vo virtualboxe
Inštalácia debian servera vo VM VirtualBox
4. Nastavenie Interfacov na Windowse
Sieťovú kartu medzi VB a windowsom nastavíme nasledovne:
Našu druhú (fizyckú) sieťovú kartu, ktorú sme dali ako bridged adabter vypnúť pretože ju bude používať debian, no nadstavíme na nej nezmyselnú adresu aby bola pre Windows nepoužiteľná a nešiel cez ňu priamo na internet.
5. Nastavenie sieťových rozhraní na Debiane
Pred Spustením Debianu si môžeme ešte nadstaviť v možnostiach VB Súbor>Nastavenia>Sieť ikonka
Po spustení musíme skontrolovať či po napísaní príkazu ifconfig do príkazového riadku Debianu vidíme obydva interface. Ak chýbajúci zapneme príkazom ifconfig eth1 up (mne chýbal eht1).
Príkazom dhclient eth0 môžeme vypýtať ipčku z hore nadstaveného DHCP servera vo VB.
Teraz treba nadstaviť ipnaším ethernetom aby sa po spustení načítali zo súboru /etc/network/interfaces
V ňom môžeme vidieť riadky auto lo
iface lo inet loopback
Je to defaultne nadstavený loopback s IP 127.0.0.1
Podľa našej topológie doplníme do súboru nasledujúce riadky:
auto eth0
iface eth0 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
allow-hotplug eth1
iface eth1 inet6 static
address 2607:f0d0:2001:000a::1
netmask 64
gateway 2607:f0d0:2001:000a::2
iface eth1 inet static
address 158.193.139.230
netmask 255.255.255.0
network 158.193.139.0
Teraz môžeme náš počítač buď reštartovať alebo jednoducho vypneme a zapneme interface príkazom ifdown eth1 && ifup eth1. To isté zopakujeme pre eth0.
Opäť môžeme skontrolovať príkazom ifconfig zmeny.
Teraz treba nadstaviť DNS ktorý sa nadstavuje v /etc/resof.conf. Tam napiseme namespace + ip DNS. Kedze ale budeme mat vlastnu sluzbu DNS tak tam nadstavime loopback => Namespace 127.0.0.1
6. Nadstavenie DNS (stručne)
apt-get install bind9
Teraz potrebujeme upraviť a nadstaviť 3 súbory aby bola táto služba funkčná.
Upraviť súbor /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
forwarders {
// 0.0.0.0;
8.8.8.8;
158.193.152.2;
};
forward only;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
Doplniť do súboru /etc/bind/named.conf.default-zones
zone "domenavlk.sk" {
type master;
file "/var/named/primary/domenavlk.sk.zone";
};
Vytvoriť súbor /var /named /primary /mojadomena.sk.zone
$ORIGIN .
$TTL 86400
domenavlk.sk. IN SOA mojserver.domenavlk.sk. root.mojadomena.sk. (
2003013101
86400
21600
3600000
3600 )
NS mojserver.domenavlk.sk.
$ORIGIN domenavlk.sk.
mojserver IN A 192.168.56.101
mojserver6 IN AAAA 2607:f0d0:2001:a::1
Windows IN A 192.168.56.102
Nakoniec treba reštartovať bind9 – /etc/init.d/bind9 restart
7. Nadstavenie firewallu
Je potrebné nadstaviť firewall ktorý dovolí ísť paketom z windowsu cez debian.
#!/bin/bash
#Vymazanie vsetkych pravidiel
iptables -F;
iptables -X;
iptables -F -t nat;
iptables -X -t nat;
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
#Prichádzajúce pakety budu presmerovane na eth1
iptables -A FORWARD -s 192.168.56.101/255.255.255.0 -o eth1 -j ACCEPT
#zadefinovanie nat
iptables -t nat -A POSTROUTING -s 192.168.56.101/255.255.255.0 -o eth1 -j SNAT –to-source 158.193.139.230
#zapnutie firewallu
echo 1 > /proc/sys/net/ipv4/ip_forward
Skriptu musíme najskôr zadať práva : chmod +x skript
Pre jednorazove spustenie: ./script
Na to aby sa skript spúšťal vždy pri štarte systému:
update -rc.d script start 2 3 4 stop 0 6
8. Inštalácia kamailia
Stiahneme a pridáme Kamailio GPG kľúč do apt key:
wget http://deb.kamailio.org/kamailiodebkey.gpg
apt-key add kamailiodebkey.gpg
Zobrazí sa OK
Pridáme nasledujúce riadky na koniec súboru /etc/apt/sources.list v závislosti od verzie Kamailia
deb http://deb.kamailio.org/kamailio lenny main
deb-src http://deb.kamailio.org/kamailio lenny main
(pre Debian Squeeze by riadky vyzerali:
deb http://deb.kamailio.org/kamailio squeeze main
deb-src http://deb.kamailio.org/kamailio squeeze main)
Vykonáme aktualizáciu:
apt-get update
apt-get install kamailio
Výsledkom je nainštalované Kamailio.
Aby Kamailio pri najbližšom reštarte systému štartovalo automaticky upravíme v súbore /etc/default/kamailio riadok:
RUN_KAMAILIO=yes
Ďalší súbor, ktorý je potrebné upraviť, je /etc/kamailio/kamailio.cfg. V tomto súbore je potrebné nájsť riadok v tvare #alias="sip.mydomain.com". Tento riadok je potrebné odkomentovať a do úvodzoviek vpísať skutočný existujúci názov našej SIP domény, napr.:
alias="domenavlk.sk"
Po uložení tohto súboru môžeme Kamailio spustiť príkazom:
Vypína sa: /etc/init.d/kamailio stop
Reštartuje sa: /etc/init.d/kamailio restart
Po spusteni môžeme vidieť, že kamailio počúva na porte 5060 pre ip 192.168.56.101 a 158.193.139.230
Keďže budeme chcieť volať aj z ipv6 musíme pridať do kamailio.cfg túto adresu.
V spomínanom súbore nájdeme listen a doplníme na toto miesto:
#listen=udp:10.0.0.10:5060
listen = udp:2607:f0d0:2001:a::1
listen = tcp:2607:f0d0:2001:a::1
Ďalej musíme nadstaviť aliasy lokálnych domén:
/* add local domain aliases */
alias="mojserver.domenavlk.sk"
alias="mojserver6.domenavlk.sk"
Po každej ďalšej úprave súboru /etc/kamailio/kamailio.cfg je potrebné reštartovať Kamailio.
Pre možnosť uloženia prezistentnej databázy klientov musíme nainštalovať Mysql server s modulom pre Kamailio: Adding mysql support to Kamailio
9. RTP proxy server
Pre nainštalovanie servera:
apt-get install rtpproxy
Aby pracoval s naším Kamailiom zmeníme v /etc/init.d/rtpproxy: User = kamailio
V príkazovom riadku spustíme tento príkaz:
-l 192.168.56.101 -6 /2607:f0d0:2001:a::1
a reštartneme /etc/init.d/rtpproxy restart
10. Zachytená komunikácia
Na prvom obrázku vidíme ako prebiehala komunikácia medzi počítačom a serverom na IPv6.
Počítač sa chcel dovolať na druhý, ktorý je so serverom spojený cez IPv4. Na obrázku môžeme vidieť ako videl komunikáciu on.
11. Pomôcky
wireshark
· apt-get install xorg xfce4
· apt-get install xfce4-goodies
· startx
· apt-get install wireshark
· apt-get install gksu (ak nejde apt-get update a potom znova)
· gksu wireshark
Wireshark bol užitočný vždy keď niečo nešlo. Napríklad keď sa raz klientovi nedarilo prihlásiť na kamailo wiresharkom sme zistili, že na danej IP na porte 5060 nikto nepočúva. Pritom kamailio bolo zapnuté a sieťové rozhrania mali správne nadstavené IP. Napokon bol problém v tom, že pri zapnutí virtuálneho stroja bola zapnutá aj wifi a aj keď sme sieťové rozhrania upravili po jej vypnutí príkazom dhclient, tak kamailio počúvalo na starých IP, ktoré si nadstavilo pri jeho nabehnutí. Takže na vyriešenie problému stačilo reštartovať kamailio.
Výpis ip+port na ktorom počuva
· netstat -ln
· apt-get install ngrep
· ngrep -p -q -W byline port 5060
var/log/syslog
· Tam je možné skontrolovať udalosti v systéme => aj správy o chybách
· tail –f /var/log/syslog