最近、WANリンク用にCisco 881ルーターに移動しました。以前は、Cisco Linksys WAG320Nをモデム/ルーター/ WiFi AP/NATファイアウォールとして使用していました。 WAG320Nは現在ブリッジモードで実行されているため、Cisco881のFE4 WAN
に接続されたLANポートの1つを備えたモデムとして機能しているだけです。
Cisco 881は、ISPからDHCP提供のIPを取得します。私のLANはデフォルトのVLAN 1(192.168.1.0/24)の一部です。一般的なインターネット接続はうまく機能しています。HTTP/ HTTPS/SMTP/etcに静的なNATルールを設定できました。私のLANで実行されているサービス。私がNVI NAT(ip nat enable
を従来のip nat outside
/ip nat inside
)セットアップとは対照的に使用することを選択したことを言及する価値があるかどうかはわかりません。これは、NVIがLANからNATIPへのWANループバックを許可し、LAN上の必要なサーバーに戻ることができるためです。
LAN上でAsterisk1.8 PBXを実行し、インターネット上のSIPプロバイダーに接続します。古いセットアップ(ルーティング/ NATを提供するWAG320N)を介したインバウンドコールとアウトバウンドコールの両方が正常に機能しました。ただし、Cisco 881に移行してから、インバウンドコールは約10秒後にドロップしますが、アウトバウンドコールは正常に機能します。
次のメッセージがAsteriskPBXに記録されます。
[Dec 9 15:27:45] WARNING[27734]: chan_sip.c:3641 retrans_pkt: Retransmission timeout reached on transmission [email protected] for seqno 1 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Packet timed out after 6528ms with no response
[Dec 9 15:27:45] WARNING[27734]: chan_sip.c:3670 retrans_pkt: Hanging up call [email protected] - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions).
(これは非常に一般的な問題であることを私は知っています-私はこれに2日間の大部分をしっかりと費やし、Googleをトロールしました。)
私は言われ、確認したとおりに完了しました https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions 。上記のページの「その他のSIPリクエスト」セクションを参照すると、SIPプロバイダーからのACK
がNAT PBXのアスタリスクに。
881のWANインターフェイスにパケットをダンプすることでこれを確認しようとしました。WANインターフェイスに出入りするパケットのPCAPダンプを取得することができました。これは、私のプロバイダーからルーターによって受信されたACKの例です。
689 21.219999 193.x.x.x 188.x.x.x SIP 502 Request: ACK sip:[email protected] |
ただし、AsteriskサーバーのSIPトレースは、PBXからの200 OK
に応答してACK
が受信されていないことを示しています。
過去に、ルーターやファイアウォールでSIP ALGを無効にすることを強くお勧めしました。インターネット上のこの問題に関する多くの投稿は、これをサポートしているようです。ただし、Cisco IOSでは、SIPALGを無効にするconfigコマンドはno ip nat service sip udp port 5060
であると思いますが、これは状況を改善するようには見えません。構成設定が設定されていることを確認するには:
Router1#show running-config | include sip
no ip nat service sip udp port 5060
もう1つの興味深い工夫:短期間、別のプロバイダーを試しました。幸い、トライアルアカウントはまだ利用できるので、現在のプロバイダーと統合する前に、Asteriskの設定をリビジョンに戻しました。その後、トライアルトランクに関連付けられたDDIにダイヤルインしましたが、通話は切断されず、上記のエラーも発生しませんでした。私にとって、これはプロバイダーを指していますが、すべてのプロバイダーがそうであるように、「SIPプロキシに問題はありません-これはファイアウォールです」と言うでしょう。この問題は古いWAG320NルーターではNAT処理を行っていたときに明らかではなかったため、私はこれに同意したくなります。
私もあなたが私の実行設定を見たいと思うでしょう:
!
! Last configuration change at 15:55:07 UTC Sun Dec 9 2012 by xxx
version 15.2
no service pad
service tcp-keepalives-in
service tcp-keepalives-out
service timestamps debug datetime msec localtime show-timezone
service timestamps log datetime msec localtime show-timezone
no service password-encryption
service sequence-numbers
!
hostname Router1
!
boot-start-marker
boot-end-marker
!
!
security authentication failure rate 10 log
security passwords min-length 6
logging buffered 4096
logging console critical
enable secret 4 xxx
!
aaa new-model
!
!
aaa authentication login local_auth local
!
!
!
!
!
aaa session-id common
!
memory-size iomem 10
!
crypto pki trustpoint TP-self-signed-xxx
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-xxx
revocation-check none
rsakeypair TP-self-signed-xxx
!
!
crypto pki certificate chain TP-self-signed-xxx
certificate self-signed 01
quit
no ip source-route
no ip gratuitous-arps
ip auth-proxy max-login-attempts 5
ip admission max-login-attempts 5
!
!
!
!
!
no ip bootp server
ip domain name dmz.merlin.local
ip domain list dmz.merlin.local
ip domain list merlin.local
ip name-server x.x.x.x
ip inspect audit-trail
ip inspect udp idle-time 1800
ip inspect dns-timeout 7
ip inspect tcp idle-time 14400
ip inspect name autosec_inspect ftp timeout 3600
ip inspect name autosec_inspect http timeout 3600
ip inspect name autosec_inspect rcmd timeout 3600
ip inspect name autosec_inspect realaudio timeout 3600
ip inspect name autosec_inspect smtp timeout 3600
ip inspect name autosec_inspect tftp timeout 30
ip inspect name autosec_inspect udp timeout 15
ip inspect name autosec_inspect tcp timeout 3600
ip cef
login block-for 3 attempts 3 within 3
no ipv6 cef
!
!
multilink bundle-name authenticated
license udi pid Cisco881-SEC-K9 sn
!
!
username xxx privilege 15 secret 4 xxx
username xxx secret 4 xxx
!
!
!
!
!
ip ssh time-out 60
!
!
!
!
!
!
!
!
!
interface FastEthernet0
no ip address
!
interface FastEthernet1
no ip address
!
interface FastEthernet2
no ip address
!
interface FastEthernet3
switchport access vlan 2
no ip address
!
interface FastEthernet4
ip address dhcp
no ip redirects
no ip unreachables
no ip proxy-arp
ip nat enable
duplex auto
speed auto
!
interface Vlan1
ip address 192.168.1.1 255.255.255.0
no ip redirects
no ip unreachables
no ip proxy-arp
ip nat enable
!
interface Vlan2
ip address 192.168.0.2 255.255.255.0
!
ip forward-protocol nd
ip http server
ip http access-class 1
ip http authentication local
ip http secure-server
ip http timeout-policy idle 60 life 86400 requests 10000
!
!
no ip nat service sip udp port 5060
ip nat source list 1 interface FastEthernet4 overload
ip nat source static tcp x.x.x.x 80 interface FastEthernet4 80
ip nat source static tcp x.x.x.x 443 interface FastEthernet4 443
ip nat source static tcp x.x.x.x 25 interface FastEthernet4 25
ip nat source static tcp x.x.x.x 587 interface FastEthernet4 587
ip nat source static tcp x.x.x.x 143 interface FastEthernet4 143
ip nat source static tcp x.x.x.x 993 interface FastEthernet4 993
ip nat source static tcp x.x.x.x 1723 interface FastEthernet4 1723
!
!
logging trap debugging
logging facility local2
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.0.0 0.0.0.255
no cdp run
!
!
!
!
control-plane
!
!
banner motd
Authorized Access only
!
line con 0
login authentication local_auth
length 0
transport output all
line aux 0
exec-timeout 15 0
login authentication local_auth
transport output all
line vty 0 1
access-class 1 in
logging synchronous
login authentication local_auth
length 0
transport preferred none
transport input telnet
transport output all
line vty 2 4
access-class 1 in
login authentication local_auth
length 0
transport input ssh
transport output all
!
!
end
...そして、それが役に立ったら、これが私のアスタリスクSIP configです:
[general]
context=default ; Default context for calls
allowoverlap=no ; Disable overlap dialing support. (Default is yes)
udpbindaddr=0.0.0.0 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
; Optionally add a port number, 192.168.1.1:5062 (default is port 5060)
tcpenable=no ; Enable server for incoming TCP connections (default is no)
tcpbindaddr=0.0.0.0 ; IP address for TCP server to bind to (0.0.0.0 binds to all interfaces)
; Optionally add a port number, 192.168.1.1:5062 (default is port 5060)
srvlookup=yes ; Enable DNS SRV lookups on outbound calls
; Note: Asterisk only uses the first Host
; in SRV records
; Disabling DNS SRV lookups disables the
; ability to place SIP calls based on domain
; names to some other SIP users on the Internet
; Specifying a port in a SIP peer definition or
; when dialing outbound calls will supress SRV
; lookups for that peer or call.
directmedia=no ; Don't allow direct RTP media between extensions (doesn't work through NAT)
externhost=<MY DYNDNS HOSTNAME> ; Our external hostname to resolve to IP and be used in NAT'ed packets
localnet=192.168.1.0/24 ; Define our local network so we know which packets need NAT'ing
qualify=yes ; Qualify peers by default
dtmfmode=rfc2833 ; Set the default DTMF mode
disallow=all ; Disallow all codecs by default
allow=ulaw ; Allow G.711 u-law
allow=alaw ; Allow G.711 a-law
; ----------------------
; SIP Trunk Registration
; ----------------------
; Orbtalk
register => <MY SIP PROVIDER USER NAME>:[email protected]/<MY DDI> ; Main Orbtalk number
; ----------
; Trunks
; ----------
[orbtalk] ; Main Orbtalk trunk
type=peer
insecure=invite
Host=sipgw3.orbtalk.co.uk
nat=yes
username=<MY SIP PROVIDER USER NAME>
defaultuser=<MY SIP PROVIDER USER NAME>
fromuser=<MY SIP PROVIDER USER NAME>
secret=xxx
context=inbound
どこに行けばいいのか本当にわかりません。誰かが私にこれらの電話が途絶えている理由を見つけるのを手伝ってくれるなら、あなたがチャイムを入れてくれれば私は感謝します!さらに情報が必要な場合はお知らせください。
更新2012年10月12日(1):
@GerryEganは、次の静的NATを追加することを提案しました。ip nat source static udp 192.168.1.2 5060 interface FastEthernet 4 5060
これで問題は解決したようですが、5060でブルートフォース攻撃を受ける可能性があります。
@GerryEganはまた、検査ルールを提案しました:WANインターフェースのip inspect name autosec_inspect sip
...および(config-if)#ip inspect autosec_inspect in
NAT NVI変換をクリアした後でも、これだけでは問題を解決します。
ドロップされたインバウンドコールのdebug ip nat sip
は次のとおりです: http://Pastebin.com/3WHPcyDD
注:上記のno ip nat service sip udp port 5060
構成設定を試しても、debug ip nat sip
からデバッグ出力が得られないため、今のところ、構成にデフォルトのip nat service sip udp port 5060
があります。これと物事を混同していません。
さらに悪いことに、私の静的なNAT NVIルールは、ルーターのリロードで混乱しているようです:-(。これは別の問題ですが、応答に何らかの影響がある可能性があります。
UPDATE 2012年12月12日(2):アスタリスクによって通話が切断されると、/var/log/syslog
に次のように表示されます。
Dec 10 20:02:39 <PBX> asterisk[26620]: rc_avpair_new: unknown attribute 1490026597
更新2012年11月12日:
@GerryEganは追加を提案しました:
access-list 101 permit udp X.X.X.X 0.0.0.255 Host 1.2.3.4 eq 5060
access-list 101 deny udp any any eq 5060
access-list 101 permit ip any any
そして
interface FastEthernet4
ip access-group 101 in
私は理論を見ることができたので、これが機能することを期待していましたが、残念ながらそうではありませんでした。
これは奇妙なことです。以前に私がSIPを同じプロバイダーやPBXなどに処理し、構成やNATを必要としないためです。これにより、新しい881を再構築するように促されました。完全を期すために、現在の構成は次のとおりです。
!
! Last configuration change at 20:20:15 UTC Tue Dec 11 2012 by xxx
version 15.2
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname xxx
!
boot-start-marker
boot-end-marker
!
!
enable secret 4 xxxx
!
aaa new-model
!
!
aaa authentication login local_auth local
!
!
!
!
!
aaa session-id common
!
memory-size iomem 10
!
crypto pki trustpoint TP-self-signed-xxx
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-xxx
revocation-check none
rsakeypair TP-self-signed-xxx
!
!
crypto pki certificate chain TP-self-signed-xxx
certificate self-signed 01
xxx
quit
ip gratuitous-arps
ip auth-proxy max-login-attempts 5
ip admission max-login-attempts 5
!
!
!
!
!
ip domain list dmz.xxx.local
ip domain list xxx.local
ip domain name dmz.xxx.local
ip name-server 192.168.1.x
ip cef
login block-for 3 attempts 3 within 3
no ipv6 cef
!
!
multilink bundle-name authenticated
license udi pid Cisco881-SEC-K9 sn xxx
!
!
username admin privilege 15 secret 4 xxx
username joe secret 4 xxx
!
!
!
!
!
ip ssh time-out 60
!
!
!
!
!
!
!
!
!
interface FastEthernet0
no ip address
!
interface FastEthernet1
no ip address
!
interface FastEthernet2
no ip address
!
interface FastEthernet3
switchport access vlan 2
no ip address
!
interface FastEthernet4
ip address dhcp
ip access-group 101 in
ip nat enable
duplex auto
speed auto
!
interface Vlan1
ip address 192.168.1.x 255.255.255.0
no ip redirects
no ip unreachables
no ip proxy-arp
ip nat enable
!
interface Vlan2
ip address 192.168.0.x 255.255.255.0
!
ip forward-protocol nd
ip http server
ip http access-class 1
ip http authentication local
ip http secure-server
!
!
ip nat source list 1 interface FastEthernet4 overload
ip nat source list 2 interface FastEthernet4 overload
ip nat source static tcp 192.168.1.x 1723 interface FastEthernet4 1723
!
!
access-list 1 permit 192.168.0.0 0.0.0.255
access-list 2 permit 192.168.1.0 0.0.0.255
access-list 101 permit udp 193.x.x.0 0.0.0.255 any eq 5060
access-list 101 deny udp any any eq 5060
access-list 101 permit ip any any
!
!
!
!
control-plane
!
!
banner motd
Authorized Access only
!
line con 0
exec-timeout 15 0
login authentication local_auth
line aux 0
exec-timeout 15 0
login authentication local_auth
line vty 0 4
access-class 2 in
login authentication local_auth
length 0
transport input all
!
!
end
私がaccess-list 101 permit udp 193.x.x.0 0.0.0.255 any eq 5060
ではなくaccess-list 101 permit udp X.X.X.X 0.0.0.255 Host 1.2.3.4 eq 5060
を使用していることに気づくでしょう。その理由は、私のWAN IPはDHCPによって提供されているため、Host
の後に入力するIPを設定していません。これが有効な代替品(?)であることを願っています。
繰り返しますが、繰り返しますが、このSIPプロバイダーは、NAT、ファイアウォールの構成なしで、古い「ホーム」Linksys WAG320Nで完全に動作しました。 SIP ALGは、そのシステムではデフォルトで無効になっています。
もう1つの興味深い点-現時点では、このルーターを介してNAT PPTPインバウンドすることができません。 GREトラフィックが通過していないようです。 2つが同じではないことはわかっていますが、ルーターが各プロトコルのトラフィックを正しくNATするのを妨げているのは、同じ根本的な構成の問題である可能性があります-間違ったツリーを吠えている可能性があります...
UPDATE 16/12/2012:
Asteriskのsip.confでlocalnet=192.168.1.0/24
をコメントアウトすると、改善が見られました。この設定を省略した場合、電話を切らずに着信を受信できます。
これは問題の修正と見なすことができることは知っていますが、ファイアウォール/ルーターとしてWAG320Nの背後に配置されていたときにPBXがこの設定で6か月間機能した理由を説明していません。これを念頭に置いて、誰かがこれ以上のアイデアを持っていますか? localnet
ディレクティブをコメントアウトすることは私の頭の中に正しくありません。古いルーターでうまく機能した場合、これを永続的な解決策として信頼することには消極的です。
NATオーバーロードを実行し、インターフェイスを使用して展開した複数の881で問題が発生しました。ほとんどの場合、WANリンクを静的IPにし、IP natoverloadコマンドをそれに変更すると、通話や電話のフリーズに関する問題のほとんどが修正されました。幸運を
NATと検査ルールを追加することで問題が解決したが、インターネットへのポートを開きたくない場合は、WANインターフェイスにアクセスリストを追加して、ポート5060のトラフィックのみを許可します。 SIPプロバイダーのIPアドレスの範囲から?次のようなものが必要になります。
access-list 101 permit udp X.X.X.X 0.0.0.255 Host 1.2.3.4 eq 5060
access-list 101 deny udp any any eq 5060
access-list 101 permit ip any any
ここで、X.X.X.X/24はSIPプロバイダーの範囲であり、1.2.3.4は外部IPです。次に、それを外部インターフェイスに適用します。
interface FastEthernet4
ip access-group 101 in
NATルールで完全に修正され、別の方法で機能させるために削除したのか、それともNATルールでまだ機能しないのか、アップデートからはわかりません。 NATはそれを修正し、アクセスリストを追加すれば問題ないはずです。さらに問題がある場合はお知らせください。
1か月間、同じ問題が2つのVPS間でジャンプしました。1つは電力不足ですが、問題なく動作し、もう1つは電力不足で同じ問題が発生しています。答えがないままインターネットを一周して、問題が見つかるまでテストを続けなければなりませんでした。 FreePBX Advance設定で「qualify = no」を設定すると、すべてが機能し始めました。
唯一の原因はQualifyです。