.titleBar { margin-bottom: 5px!important; }

Lösung für Asterisk hinter NAT bei Software-Router

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von rannseier, 8 Apr. 2005.

  1. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Moin..

    Nach vielen vielen Monaten hier nun die Lösung für die NAT-Probleme bei Asterisk nach einem IP-Wechsel.

    Das Script setzt vor raus, das der ppp.d /etc/ppp/ip-down.d/ existiert und aufgerufen wird.

    Folgende Script kommt in dieses Verzeichnis:

    Code:
    #!/bin/bash
    RMMOD=/sbin/rmmod
    IPTABLES=/sbin/iptables
    
    $IPTABLES -F
    $IPTABLES -F -t filter
    $IPTABLES -F -t nat
    $IPTABLES -F -t mangle
    $IPTABLES -t filter -X
    $IPTABLES -t nat -X
    $IPTABLES -t mangle -X
    
    ( rmmod ip_contrackt ip_contrack_ftp ip_nat_ftp ip_queue ip_tables \
            ipt_LOG ipt_MARK ipt_MASQUERADE ipt_MIRROR ipt_REDIRECT \
            ipt_TCPMSS ipt_TOS ipt_limit ipt_mac ipt_mark ipt_multiport \
            ipt_owner ipt_state ipt_tcpmss ipt_tos ipt_unclean \
            iptable_filter iptable_mangle iptable_net \
            iptable_nat ipt_REJECT )
    
    Beim nächsten adsl-stop ; adsl-start wird es aufgerufen.


    MfG,
    Karl
     
  2. guidau

    guidau Neuer User

    Registriert seit:
    30 Nov. 2004
    Beiträge:
    15
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Karl,

    kannst Du Dein Script bitte mal etwas genauer erklären.
    Verstehe ich das richtig, das der iptable cache gelöscht wird ?

    Wo genau hast Du das Script eingebunden ? In das Script, daß die PPP Verbindung aufbaut oder ?

    Ich benutze eine Astaro Firewall, die auf Suse Linux aufsetzt, daher muß ich dann mal gucken, wo ich das einbauen kann.
    Was passiert den mit den anderen Verbindung die über meine Firewall gehen z.B. Internes Netz ==> DMZ, wenn ich Dein Script laufen lasse ?

    Danke & Gruß
    Guidau :?:
     
  3. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Moin,

    Das kommt in das Script, das beim runterfahren der PPP-Verbindung im Router ausgeführt wird.

    Also normalerweise /etc/ppp/ip-down.d/, dort einfach ein ausfürbares Script mit beliebigen Namen rein.

    Das Script basiert darauf, das einfach alle Module entladen werden, damit werden auch die NAT-Tabellen gelöscht.

    Hier nochmal die aktuelle Variante:


    Code:
     
    #!/bin/bash
    RMMOD=/sbin/rmmod
    IPTABLES=/sbin/iptables
    
    $IPTABLES -F
    $IPTABLES -F -t filter
    $IPTABLES -F -t nat
    $IPTABLES -F -t mangle
    $IPTABLES -t filter -X
    $IPTABLES -t nat -X
    $IPTABLES -t mangle -X
    
    ( rmmod ip_contrackt ip_contrack_ftp ip_nat_ftp ip_queue ip_tables \
            ipt_LOG ipt_MARK ipt_MASQUERADE ipt_MIRROR ipt_REDIRECT \
            ipt_TCPMSS ipt_TOS ipt_limit ipt_mac ipt_mark ipt_multiport \
            ipt_owner ipt_state ipt_tcpmss ipt_tos ipt_unclean \
            iptable_filter iptable_mangle iptable_net \
            iptable_nat ipt_REJECT ip_conntrack ip_conntrack_ftp ip_tables \
            ip_conntrack )
    
    
    Das ist die sichere Variante damit alle Module entladen werden.


    MfG,
    Karl
     
  4. Blackvel

    Blackvel Mitglied

    Registriert seit:
    4 Mai 2004
    Beiträge:
    624
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    selbständig als IT-Consultant (VoIP, Asterisk, J2E
    Ort:
    Nürnberg, Einsatzorte Schwerpunkt D6-D9 (MCH, STG,
    Dann sag doch nochmal explizit, daß man NAT+CONNTRACK nicht in den Kernel kompilieren darf, sondern als Kernel Modul einzubinden ist.

    Sonst geht auch kein rmmod :)

    Oder wie auf der VOIP-FAQ von mir und Otaku zu finden ist:
    Einfach Router (falls Extra-Router) nachts per crontab rebooten :)