1
German - Deutsch / Portforwarding, SIP-Options von sipsak geht durch, von asterisk nicht
« on: January 26, 2022, 11:31:22 am »
Hey zusammen,
ich habe ein interessantes Verhalten.
Extern steht ein Server mit einer Public-IP, auf dem läuft ein asterisk.
Dieser Sendet Option-Pings an einen Server ohne Public IP hinter einer OPNsense mit Public-IP und Portforwarding.
asterisk server (public IP) -> opnsense ( public IP -> NAT portforwarding -> private IP ) -> Voip-Server (private IP).
Sende ich nun ein Options mit sipsak vom asteriskserver, geht es durch, das 200 OK kommt zurück.
Sendet das asterisk aber ein Options geht es bis zum WAN-Interface der OPNsense, danach aber nicht mehr weiter.
Es erreicht also auch nicht das LAN-Interface.
Die OPNsense hat drei Interfaces
DMZ Ethernet 10Gbase-T <full-duplex> 192.168.2.151
LAN Ethernet 10Gbase-T <full-duplex> 172.16.0.1
WAN Ethernet 10Gbase-T <full-duplex> X.X.X.X (PublicIP)
Das Portforwarding geht von WAN zu LAN.
Völlig falsch kann es ja nicht eingerichtet sein, die Tests mit sipsak sind ja erfolgreich.
X.X.X.X = Public-IP Opnsense
Z.Z.Z.Z = Public-IP Asterisk
Asterisk, geht nicht:
09:16:23.121104 IP Z.Z.Z.Z.i-net-2000-npr > Z.Z.Z.Z.sip: SIP, length: 527
E`.+C...@.R..7..M;........./OPTIONS sip:Z.Z.Z.Z SIP/2.0
Via: SIP/2.0/UDP Z.Z.Z.Z:5069;branch=z9hG4bK7ddeb003
Max-Forwards: 70
From: "asterisk" <sip:asterisk@Z.Z.Z.Z:5069>;tag=as4ec5f871
To: <sip:Z.Z.Z.Z>
Contact: <sip:asterisk@Z.Z.Z.Z:5069>
Call-ID: 4933b5cc0d85c1b449aa22430dac5870@Z.Z.Z.Z:5069
CSeq: 102 OPTIONS
User-Agent: e-fon
Date: Wed, 26 Jan 2022 08:16:04 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Length: 0
sipsak geht:
09:17:36.992831 IP X.X.X.X.35136 > Z.Z.Z.Z.sip: SIP, length: 374
E.....@.@.WT.7..M;...@...~..OPTIONS sip:pazifi@Z.Z.Z.Z SIP/2.0
Via: SIP/2.0/UDP X.X.X.X:35136;branch=z9hG4bK.10db9330;rport;alias
From: sip:sipsak@X.X.X.X:35136;tag=21b31b26
To: sip:pazifi@Z.Z.Z.Z
Call-ID: 565386022@X.X.X.X
CSeq: 1 OPTIONS
Contact: sip:sipsak@X.X.X.X:35136
Content-Length: 0
Max-Forwards: 70
User-Agent: sipsak 0.9.6
Accept: text/plain
09:17:36.997448 IP Z.Z.Z.Z.sip > X.X.X.X.35136: SIP, length: 499
E...J+@.6...M;...7.....@....SIP/2.0 200 OK
Contact:<sip:sipgw@172.16.0.18:5060>
Accept:application/sdp
Allow:INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,COMET,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE,PUBLISH
Supported:100rel,timer,join
From:sip:sipsak@X.X.X.X:35136;tag=21b31b26
To:sip:pazifi@Z.Z.Z.Z;tag=558B32413135364156A6772200000000
Call-ID:565386022@X.X.X.X
CSeq:1 OPTIONS
Via:SIP/2.0/UDP X.X.X.X:35136;branch=z9hG4bK.10db9330;rport;alias;received=X.X.X.X
Content-Length:0
Der Inhalt vom SIP-Anteil, sollte eigentlich irrelevant sein in dem Fall, da die OPNsense ja
kein DPI macht oder SIP sonst wie analysiert.
Auf IP-Ebene sehe ich keinen Unterschied, ausser dass sipsak ein don't fragment-Flag setzt.
Edit: Vielleicht noch ein kleiner Zusatz:
sipsak erscheint im Log, wenn ich auf die Firewallregel das Log aktiviere und auf Port 5060 Filtere in der Live-View. asterisk erscheint in diesem Log nicht. Es ist als würde es vorher schon abgeblockt.
Dabei kommts ja vom selben Server an den selben Port.
Hat jemand Eventuell Ideen?
ich habe ein interessantes Verhalten.
Extern steht ein Server mit einer Public-IP, auf dem läuft ein asterisk.
Dieser Sendet Option-Pings an einen Server ohne Public IP hinter einer OPNsense mit Public-IP und Portforwarding.
asterisk server (public IP) -> opnsense ( public IP -> NAT portforwarding -> private IP ) -> Voip-Server (private IP).
Sende ich nun ein Options mit sipsak vom asteriskserver, geht es durch, das 200 OK kommt zurück.
Sendet das asterisk aber ein Options geht es bis zum WAN-Interface der OPNsense, danach aber nicht mehr weiter.
Es erreicht also auch nicht das LAN-Interface.
Die OPNsense hat drei Interfaces
DMZ Ethernet 10Gbase-T <full-duplex> 192.168.2.151
LAN Ethernet 10Gbase-T <full-duplex> 172.16.0.1
WAN Ethernet 10Gbase-T <full-duplex> X.X.X.X (PublicIP)
Das Portforwarding geht von WAN zu LAN.
Völlig falsch kann es ja nicht eingerichtet sein, die Tests mit sipsak sind ja erfolgreich.
X.X.X.X = Public-IP Opnsense
Z.Z.Z.Z = Public-IP Asterisk
Asterisk, geht nicht:
09:16:23.121104 IP Z.Z.Z.Z.i-net-2000-npr > Z.Z.Z.Z.sip: SIP, length: 527
E`.+C...@.R..7..M;........./OPTIONS sip:Z.Z.Z.Z SIP/2.0
Via: SIP/2.0/UDP Z.Z.Z.Z:5069;branch=z9hG4bK7ddeb003
Max-Forwards: 70
From: "asterisk" <sip:asterisk@Z.Z.Z.Z:5069>;tag=as4ec5f871
To: <sip:Z.Z.Z.Z>
Contact: <sip:asterisk@Z.Z.Z.Z:5069>
Call-ID: 4933b5cc0d85c1b449aa22430dac5870@Z.Z.Z.Z:5069
CSeq: 102 OPTIONS
User-Agent: e-fon
Date: Wed, 26 Jan 2022 08:16:04 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Length: 0
sipsak geht:
09:17:36.992831 IP X.X.X.X.35136 > Z.Z.Z.Z.sip: SIP, length: 374
E.....@.@.WT.7..M;...@...~..OPTIONS sip:pazifi@Z.Z.Z.Z SIP/2.0
Via: SIP/2.0/UDP X.X.X.X:35136;branch=z9hG4bK.10db9330;rport;alias
From: sip:sipsak@X.X.X.X:35136;tag=21b31b26
To: sip:pazifi@Z.Z.Z.Z
Call-ID: 565386022@X.X.X.X
CSeq: 1 OPTIONS
Contact: sip:sipsak@X.X.X.X:35136
Content-Length: 0
Max-Forwards: 70
User-Agent: sipsak 0.9.6
Accept: text/plain
09:17:36.997448 IP Z.Z.Z.Z.sip > X.X.X.X.35136: SIP, length: 499
E...J+@.6...M;...7.....@....SIP/2.0 200 OK
Contact:<sip:sipgw@172.16.0.18:5060>
Accept:application/sdp
Allow:INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,COMET,UPDATE,PRACK,REFER,SUBSCRIBE,NOTIFY,MESSAGE,PUBLISH
Supported:100rel,timer,join
From:sip:sipsak@X.X.X.X:35136;tag=21b31b26
To:sip:pazifi@Z.Z.Z.Z;tag=558B32413135364156A6772200000000
Call-ID:565386022@X.X.X.X
CSeq:1 OPTIONS
Via:SIP/2.0/UDP X.X.X.X:35136;branch=z9hG4bK.10db9330;rport;alias;received=X.X.X.X
Content-Length:0
Der Inhalt vom SIP-Anteil, sollte eigentlich irrelevant sein in dem Fall, da die OPNsense ja
kein DPI macht oder SIP sonst wie analysiert.
Auf IP-Ebene sehe ich keinen Unterschied, ausser dass sipsak ein don't fragment-Flag setzt.
Edit: Vielleicht noch ein kleiner Zusatz:
sipsak erscheint im Log, wenn ich auf die Firewallregel das Log aktiviere und auf Port 5060 Filtere in der Live-View. asterisk erscheint in diesem Log nicht. Es ist als würde es vorher schon abgeblockt.
Dabei kommts ja vom selben Server an den selben Port.
Hat jemand Eventuell Ideen?