Επειδή θεωρώ ότι πρέπει να υπάρχει ένα ξεχωριστό topic και να μην ποστάρονται διάσπαρτα υλοποιήσεις σε άσχετα topics, μεταφέρω εδώ τις ρυθμίσεις που πρέπει να κάνετε για να έχετε Internet + Τηλεφωνία NOVA.
Οι ρυθμίσεις αυτές έχουν γίνει με κωδικούς που ληφθήκαν από το router του παρόχου. Θεωρείται δεδομένο ότι έχετε ζητήσει να σας δώσουν ξεχωριστά ONT + Router σε περίπτωση που ο αρχικός εξοπλισμός ήταν το NOKIA All in One.
1. Ρύθμιση των VLAN:
Μέθοδος Α: Αν πρόκειται για Switch configuration (παλαιότερα router & openWRT versions) και όχι DSA Configuration:
Network -> Switch -> Προσθέτουμε 2 VLANs (835, 837) και κάνουμε TAG τη WAN και την CPU σε αυτά.
Network -> Interfaces -> Devices -> Κάνουμε clone το MAC address του router της Nova στο device της WAN (εμένα ήταν "eth0" στο παλαιότερο router) - Αυτό μπορεί να είναι προαιρετικό, δεν έχω δοκιμάσει να το αφαιρέσω ακόμα.
Μέθοδος Β: Αν πρόκειται για νεότερα router & DSA Configuration:
Internet: Network -> Devices -> Add Device Configuration
- Device Type: VLAN (802.11q)
- VLAN ID: 835
- MAC Address: Την MAC του router του παρόχου
- Enable IPv6: Disabled
Τηλεφωνία: Νetwork -> Devices -> Add Device Configuration
- Device Type: VLAN (802.11q)
- VLAN ID: 837
- MAC Address: Την MAC του router του παρόχου
- Enable IPv6: Disabled
2. Ρύθμιση των Interfaces:
Πάμε Network -> Interfaces
Internet: Σβήνουμε το WAN interface και φτιάχνουμε ένα νέο με τα εξής στοιχεία:
- Protocol: PPPoE
- Device: Το 835 VLAN που φτιάξαμε (στην περίπτωση μου "eth0.835" σε παλιότερο router και "wan.835" σε νεότερο router)
- PAP/CHAP username: To username για την κλήση (εμένα είναι της μορφής {username}@tellas.gr)
- PAP/ChAP password: To password για την κλήση (μου είχαν βάλει τον αριθμό τηλεφώνου όταν ζήτησα τους κωδικούς του internet. Πριν το κάνω αυτό ήταν άλλος ο κωδικός που είχα τσιμπήσει από το router τους)
Advanced settings Tab: Use default gateway
Firewall settings Tab: Το έβαλα στο wan zone (αν δεν υπάρχει θα δημιουργηθεί).
Αποθηκεύουμε και βλέπουμε ότι γίνεται κλήση και παίρνουμε IP.
Τηλεφωνία: Φτιάχνουμε το DHCP client interface με τις εξής ρυθμίσεις:
- Protocol: DHCP Client
- Device: Το 837 VLAN που φτιάξαμε (στην περίπτωση μου "eth0.837" σε παλιότερο router και "wan.837" σε νεότερο router)
- Hostname: Send the hostname of this device - Αυτό μπορεί να είναι προαιρετικό, δεν έχω δοκιμάσει να μην στείλω τίποτα από την στιγμή που μου έπαιξε
Advanced settings Tab:
- Client ID to send when requesting DHCP: Αυτό πρέπει να είναι της μορφής "30xxxxxxxxxx_cid.ims.wind.gr" αλλά πρέπει πρώτα να το κάνουμε convert σε HEX και να αφαιρέσουμε οποιοδήποτε separator βάλει ο converter.
- Απενεργοποιούμε το "Use default gateway"
- Firewall settings: Το βάζουμε σε ένα δικό του zone με όνομα πχ "wan_voip"
Αποθηκεύουμε και περιμένουμε λογικά να πάρουμε IP.
Πάμε Network -> Firewall και το στήνουμε ως εξής:
3. Λοιπές ρυθμίσεις:
Επειδή o sip server ακούει στο "sip-voice.forthnet.gr" και o DNS κάνει resolve σε private ip, το OpenWRT by default θα παραπονιέται για DNS Rebinding attack (δεν θα γίνεται register και θα βλέπετε error στο log του OpenWRT). Για να το απενεργοποιήσετε πάτε Network -> DHCP & DNS -> Filter και απενεργοποιείτε το "Rebind protection" (δοκίμασα να βάλω σε whitelist το "sip-voice.forthnet.gr" και δεν μου έπαιξε, τσεκάρετε το και εσείς).
4. Ρυθμίσεις SIP:
Είναι έτοιμο. Τώρα οποιοσδήποτε client στο lan μας (softphone, sip device) μπορεί να κάνει register και κλήσεις, αρκεί να γνωρίζετε πως να ξεπεράσετε τα NAT issues:
- Το Zoiper το κάνει από μόνο του ενεργοποιοώντας RPORT for Signalling & RPORT For Media
- To Telephone app στο macOS το κάνει κάνοντας enable το "Update IP Address" στις ρυθμίσεις Network του SIP Account σας.
- Δοκίμασα σε yealink συσκευή και ήθελε ενεργοποίηση rport στο Account -> Advanced Settings και επιλογή "IPv4 & IPv6" στο Network -> IP Mode (λίγο παραπλανητικό αλλά έτσι στέλνει την ip του dhcp interface αντί την εσωτερική του NAT.
- Αν δεν έχετε κάτι από τα παραπάνω τότε υπάρχουν άλλες λύσεις με χρήση ενός package που όμως ανοίγει και άλλα πράγματα οπότε με προσοχή: kmod-nf-nathelper-extra
Ρυθμίσεις SIP:
- Server: sip-voice.forthnet.gr
- Port: 5060
- Username: Θα το έχετε βρει στο config του ρούτερ του παρόχου (ήταν ο αριθμός μου με πρόθεμα το "30" - 302xxxxxxxxx ή αυτός που θα σας δώσει ο πάροχος κατόπιν αίτησης)
- Password: Θα το έχετε βρει στο config του ρούτερ του παρόχου (ή αυτός που θα σας δώσει ο πάροχος κατόπιν αίτησης)
5. Χρήση των nameservers της τηλεφωνίας ΜΟΝΟ για το sip server host:
Με την ανωτέρω υλοποίηση οι nameservers της τηλεφωνίας μπαίνουν μαζί με του PPPoE στο resolv.conf.auto, οπότε το Dnsmasq θα δοκιμάζει να κάνει resolve διάσπαρτα το traffic με όλους nameservers. Δεν δημιουργεί κάποιο πρακτικό πρόβλημα, αλλά δεν υπάρχει λόγος να γίνεται leak το dns traffic στην τηλεφωνία.
Αυτό μπορεί να λυθεί με τον εξής τρόπο:
1. Λέμε στο OpenWRT να μην δίνει στο Dnsmasq τους nameservers που φέρνει το DHCP interface της τηλεφωνίας:
Network -> Interfaces -> Edit στο DHCP interface της τηλεφωνίας -> Advanced settings -> Απενεργοποιούμε το "Use DNS servers advertised by peer"
2. Προσθέτουμε τα DNS forwards για το sip-voice.forthnet.gr με αυτοματοποιημένο τρόπο όταν γίνεται renew το lease:
Για να γίνει αυτό θα πρέπει να βάλουμε ένα script στο "/etc/udhcpc.user.d/". Έστω με ένα filename "10-sip-dns". Το script είναι:
το voip στο interface="voip" θα το αλλάξετε με το όνομα που δώσατε στο DHCP interface σας.Κώδικας:#!/bin/bash # Define interface name and domain interface="voip" domain="sip-voice.forthnet.gr" # Log message indicating the start of the script logger -t voip-dns-specifier "Starting VoIP DNS specifier script..." # Run ifstatus command and store JSON output in a variable ifstatus_output=$(ifstatus $interface) # Extract DNS servers under inactive -> dns-server inactive_dns_servers=$(echo "$ifstatus_output" | jq -r '.inactive."dns-server"[]') # Get the current list of selective forwarding rules current_rules=$(uci get dhcp.@dnsmasq[0].server) # Loop through the current rules and remove those that contain the specified domain for rule in $current_rules; do if echo "$rule" | grep -q "/$domain/"; then uci del_list dhcp.@dnsmasq[0].server="$rule" fi done # Check if there are DNS servers found if [ -n "$inactive_dns_servers" ]; then # Log message indicating DNS servers found logger -t voip-dns-specifier "Found DNS servers for selective forwarding." # Add selective forwarding rules for the domain for dns_server in $inactive_dns_servers; do uci add_list dhcp.@dnsmasq[0].server="/$domain/$dns_server" done # Commit changes uci commit dhcp # Restart dnsmasq service /etc/init.d/dnsmasq restart # Log success message to OpenWrt system log logger -t voip-dns-specifier "Selective forwarding rules added for $domain using the following DNS servers: $inactive_dns_servers" else # Log message indicating no DNS servers found logger -t voip-dns-specifier "No DNS servers found. No changes made." fi
Μπορεί να γίνει ίσως πιο έξυπνο με UCI scripting, ίσως το ψάξω περισσότερο στην πορεία.
- - - Updated - - -
Κάποιος mod ίσως πρέπει:
- Να προσθέσει το [ΟΔΗΓΟΣ] στον τίτλο του Topic για να είναι πιο ξεκάθαρο
- Αν χρειάζεται να το μεταφέρει σε άλλη κατηγορία (δεν είμαι σίγουρος αν είναι η σωστή εδώ)
Εμφάνιση 1-1 από 1
-
07-06-24, 15:54 Ρυθμίσεις Internet + Τηλεφωνίας NOVA σε OpenWRT #1
Τελευταία επεξεργασία από το μέλος WhatTheIanni : 07-06-24 στις 15:53.
Bookmarks