Menu Zavrieť

Problematika Ipv4 a Ipv6 klientov pri SIP Proxy serveroch

 

 

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

 

A description...

 

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:

 

A description...

 

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.

 

A description...

 

 

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 A description... DHCP server pre sieť medzi virtuálnym strojom a Windowsom.

 

A description...

 

A description...

 

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:

/etc/init.d/kamailio start.

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.101158.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.

 

A description...

 

            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.

 

A description...

 

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

 

 

 

 

 

Rate this post

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.