ฉันใช้ Salt-sproxy กับเครือข่ายที่ใช้ Juniper มาระยะหนึ่งแล้ว และทุกอย่างก็ทำงานได้ดี
ฉันเริ่มพบปัญหาบางอย่างกับโค้ด Junos ใหม่ที่เราใช้ (18.x)
ฉันสามารถสื่อสารกับอุปกรณ์ได้ (net.connected, net.cli, grains....etc) แต่ฉันไม่สามารถกำหนดค่าอะไรบนอุปกรณ์ผ่านทั้ง net.cli หรือ net.load_config/template อุปกรณ์ไม่รายงาน กลับส่วนต่างใด ๆ และเห็นว่าการกำหนดค่าใหม่ได้รับการกำหนดค่าแล้ว แม้ว่าไฟล์ชุดใหม่จะมีการกำหนดค่าใหม่ที่ไม่ได้กำหนดค่าบนอุปกรณ์ก็ตาม
และฉันไม่เห็นสิ่งใดกลับมาจากอุปกรณ์ผ่านการตอบกลับ rpc ในขณะที่ทำการดีบักคำขอ
ฉันทดสอบว่าสำหรับอุปกรณ์ Juniper หลายเครื่องที่มีรหัสเดียวกัน และทั้งหมดเป็นพฤติกรรมที่ไม่ถูกต้องเช่นเดียวกัน
เกลือ sproxy '10-220-1-9' ข้อความ net.load_config = 'set vlans vlan888 vlan-id 888'
10-220-1-9:
----------
กำหนดค่าแล้ว:
จริง
ความคิดเห็น:
กำหนดค่าไว้แล้ว
ความแตกต่าง:
load_config:
ผลลัพธ์:
จริง
mkh@sw220-1-9> แสดงการกำหนดค่า vlans vlan888
{มาสเตอร์:0}
mkh@sw220-1-9>
Debug แสดงเหมือนกัน
[INFO] [โฮสต์ 10.220.1.9 session-id 82730] กำลังร้องขอ 'ExecuteRpc'
[DEBUG ] [host 10.220.1.9 session-id 82730] เข้าคิว <?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns: netconf:base:1.0" message-id="urn:uuid:ff66d123-c081-487d-971f-5d7e2932524a"><lock-configuration/></nc:rpc>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] คำขอซิงค์ จะรอการหมดเวลา=60
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งข้อความ
[INFO ] [โฮสต์ 10.220.1.9 session-id 82730] กำลังส่ง:
<?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid :ff66d123-c081-487d-971f-5d7e2932524a"><lock-configuration/></nc:rpc>]]>]]>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[INFO ] [host 10.220.1.9 session-id 82730] ได้รับข้อความจากโฮสต์
[DEBUG ] [โฮสต์ 10.220.1.9 session-id 82730] ได้รับ:
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos" xmlns:nc=" urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:ff66d123-c081-487d-971f-5d7e2932524a">
</rpc-ตอบกลับ>
[DEBUG ] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟังที่แตกต่างกัน: <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http:/ /xml.juniper.net/junos/18.2R3/junos" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:ff66d123-c081-487d- 971f-5d7e2932524a">
</rpc-ตอบกลับ>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.operations.rpc.RPCReplyListener วัตถุที่ 0x7fa31e732670>
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งไปยังวัตถุ <ncclient.operations.third_party.juniper.rpc.ExecuteRpc ที่ 0x7fa31efeac10>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.transport.session.NotificationHandler วัตถุที่ 0x7fa31e644130>
[DEBUG] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <jnpr.junos.device.DeviceSessionListener object ที่ 0x7fa31e628370>
[INFO] [โฮสต์ 10.220.1.9 session-id 82730] กำลังร้องขอ 'ExecuteRpc'
[DEBUG ] [host 10.220.1.9 session-id 82730] เข้าคิว <?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns: netconf:base:1.0" message-id="urn:uuid:5f53421e-6d44-4c58-91e1-c19ccea38b1e"><load-configuration format="text" action="set"><configuration-set>set vlans vlan888 vlan -รหัส 888
</configuration-set></load-configuration></nc:rpc>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] คำขอซิงค์ จะรอการหมดเวลา=60
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งข้อความ
[INFO ] [โฮสต์ 10.220.1.9 session-id 82730] กำลังส่ง:
<?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid :5f53421e-6d44-4c58-91e1-c19ccea38b1e"><load-configuration format="text" action="set"><configuration-set>set vlans vlan888 vlan-id 888
</configuration-set></load-configuration></nc:rpc>]]>]]>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[INFO ] [host 10.220.1.9 session-id 82730] ได้รับข้อความจากโฮสต์
[DEBUG ] [โฮสต์ 10.220.1.9 session-id 82730] ได้รับ:
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos" xmlns:nc=" urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:5f53421e-6d44-4c58-91e1-c19ccea38b1e">
<โหลดการกำหนดค่าผลลัพธ์>
<ตกลง/>
</load-configuration-results>
</rpc-ตอบกลับ>
[DEBUG ] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟังที่แตกต่างกัน: <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http:/ /xml.juniper.net/junos/18.2R3/junos" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:5f53421e-6d44-4c58- 91e1-c19ccea38b1e">
<โหลดการกำหนดค่าผลลัพธ์>
<ตกลง/>
</load-configuration-results>
</rpc-ตอบกลับ>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.operations.rpc.RPCReplyListener วัตถุที่ 0x7fa31e732670>
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งไปยังวัตถุ <ncclient.operations.third_party.juniper.rpc.ExecuteRpc ที่ 0x7fa31f160fd0>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.transport.session.NotificationHandler วัตถุที่ 0x7fa31e644130>
[DEBUG] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <jnpr.junos.device.DeviceSessionListener object ที่ 0x7fa31e628370>
[INFO] [โฮสต์ 10.220.1.9 session-id 82730] กำลังร้องขอ 'ExecuteRpc'
[DEBUG ] [host 10.220.1.9 session-id 82730] เข้าคิว <?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns: netconf:base:1.0" message-id="urn:uuid:aa19bafc-a8b9-42ee-a9ae-f18de0448176"><get-configuration comparison="rollback" rollback="0" format="text"/></nc :rpc>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] คำขอซิงค์ จะรอการหมดเวลา=60
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งข้อความ
[INFO ] [โฮสต์ 10.220.1.9 session-id 82730] กำลังส่ง:
<?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid :aa19bafc-a8b9-42ee-a9ae-f18de0448176"><get-configuration comparison="rollback" rollback="0" format="text"/></nc:rpc>]]>]]>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[INFO ] [host 10.220.1.9 session-id 82730] ได้รับข้อความจากโฮสต์
[DEBUG ] [โฮสต์ 10.220.1.9 session-id 82730] ได้รับ:
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos" xmlns:nc=" urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:aa19bafc-a8b9-42ee-a9ae-f18de0448176">
<การกำหนดค่า-ข้อมูล>
<คอนฟิกูเรชัน-เอาท์พุต>
</configuration-output>
</การกำหนดค่า-ข้อมูล>
</rpc-ตอบกลับ>
[DEBUG ] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟังที่แตกต่างกัน: <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http:/ /xml.juniper.net/junos/18.2R3/junos" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:aa19bafc-a8b9-42ee- a9ae-f18de0448176">
<การกำหนดค่า-ข้อมูล>
<คอนฟิกูเรชัน-เอาท์พุต>
</configuration-output>
</การกำหนดค่า-ข้อมูล>
</rpc-ตอบกลับ>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.operations.rpc.RPCReplyListener วัตถุที่ 0x7fa31e732670>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] กำลังส่งไปยังวัตถุ <ncclient.operations.third_party.juniper.rpc.ExecuteRpc ที่ 0x7fa31f0edb80>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.transport.session.NotificationHandler วัตถุที่ 0x7fa31e644130>
[DEBUG] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <jnpr.junos.device.DeviceSessionListener object ที่ 0x7fa31e628370>
[DEBUG ] ละทิ้งการกำหนดค่า
[DEBUG ] {'result': True, 'comment': '', 'already_configured': False, 'loaded_config': '', 'diff': ''}
[INFO] [โฮสต์ 10.220.1.9 session-id 82730] กำลังร้องขอ 'ExecuteRpc'
[DEBUG ] [host 10.220.1.9 session-id 82730] เข้าคิว <?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns: netconf:base:1.0" message-id="urn:uuid:4ef1fa52-c32d-49c4-aab2-e2db867a3761"><load-configuration comparison="rollback" rollback="0"/></nc:rpc>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] คำขอซิงค์ จะรอการหมดเวลา=60
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งข้อความ
[INFO ] [โฮสต์ 10.220.1.9 session-id 82730] กำลังส่ง:
<?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid :4ef1fa52-c32d-49c4-aab2-e2db867a3761"><โหลดการกำหนดค่าเปรียบเทียบ="rollback" rollback="0"/></nc:rpc>]]>]]>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[INFO ] [host 10.220.1.9 session-id 82730] ได้รับข้อความจากโฮสต์
[DEBUG ] [โฮสต์ 10.220.1.9 session-id 82730] ได้รับ:
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos" xmlns:nc=" urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:4ef1fa52-c32d-49c4-aab2-e2db867a3761">
<โหลดการกำหนดค่าผลลัพธ์>
<ตกลง/>
</load-configuration-results>
</rpc-ตอบกลับ>
[DEBUG ] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟังที่แตกต่างกัน: <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http:/ /xml.juniper.net/junos/18.2R3/junos" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:4ef1fa52-c32d-49c4- aab2-e2db867a3761">
<โหลดการกำหนดค่าผลลัพธ์>
<ตกลง/>
</load-configuration-results>
</rpc-ตอบกลับ>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.operations.rpc.RPCReplyListener วัตถุที่ 0x7fa31e732670>
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งไปยังวัตถุ <ncclient.operations.third_party.juniper.rpc.ExecuteRpc ที่ 0x7fa31f160f70>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.transport.session.NotificationHandler วัตถุที่ 0x7fa31e644130>
[DEBUG] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <jnpr.junos.device.DeviceSessionListener object ที่ 0x7fa31e628370>
[INFO] [โฮสต์ 10.220.1.9 session-id 82730] กำลังร้องขอ 'ExecuteRpc'
[DEBUG ] [host 10.220.1.9 session-id 82730] เข้าคิว <?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns: netconf:base:1.0" message-id="urn:uuid:ddb0f24c-387a-4366-9703-9a618e7ad6f4"><unlock-configuration/></nc:rpc>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] คำขอซิงค์ จะรอการหมดเวลา=60
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งข้อความ
[INFO ] [โฮสต์ 10.220.1.9 session-id 82730] กำลังส่ง:
<?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid :ddb0f24c-387a-4366-9703-9a618e7ad6f4"><unlock-configuration/></nc:rpc>]]>]]>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[INFO ] [host 10.220.1.9 session-id 82730] ได้รับข้อความจากโฮสต์
[DEBUG ] [โฮสต์ 10.220.1.9 session-id 82730] ได้รับ:
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos" xmlns:nc=" urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:ddb0f24c-387a-4366-9703-9a618e7ad6f4">
</rpc-ตอบกลับ>
[DEBUG ] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟังที่แตกต่างกัน: <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http:/ /xml.juniper.net/junos/18.2R3/junos" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:ddb0f24c-387a-4366- 9703-9a618e7ad6f4">
</rpc-ตอบกลับ>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.operations.rpc.RPCReplyListener วัตถุที่ 0x7fa31e732670>
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งไปยังวัตถุ <ncclient.operations.third_party.juniper.rpc.ExecuteRpc ที่ 0x7fa31f0ed430>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <ncclient.transport.session.NotificationHandler วัตถุที่ 0x7fa31e644130>
[DEBUG] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟัง: <jnpr.junos.device.DeviceSessionListener object ที่ 0x7fa31e628370>
[INFO] [โฮสต์ 10.220.1.9 session-id 82730] กำลังร้องขอ 'ปิดเซสชัน'
[DEBUG ] [host 10.220.1.9 session-id 82730] เข้าคิว <?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns: netconf:base:1.0" message-id="urn:uuid:f8b65a65-5563-46b3-a7a1-36f2da78487e"><nc:close-session/></nc:rpc>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] คำขอซิงค์ จะรอการหมดเวลา=60
[DEBUG] [host 10.220.1.9 session-id 82730] กำลังส่งข้อความ
[INFO ] [โฮสต์ 10.220.1.9 session-id 82730] กำลังส่ง:
<?xml version="1.0" encoding="UTF-8"?><nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid :f8b65a65-5563-46b3-a7a1-36f2da78487e"><nc:close-session/></nc:rpc>]]>]]>
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[DEBUG] [โฮสต์ 10.220.1.9 session-id 82730] แยกวิเคราะห์ netconf v1.0
[INFO ] [host 10.220.1.9 session-id 82730] ได้รับข้อความจากโฮสต์
[DEBUG ] [โฮสต์ 10.220.1.9 session-id 82730] ได้รับ:
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.2R3/junos" xmlns:nc=" urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:f8b65a65-5563-46b3-a7a1-36f2da78487e">
<ตกลง/>
</rpc-ตอบกลับ>
[DEBUG ] [host 10.220.1.9 session-id 82730] ส่งข้อความไปยังผู้ฟังที่แตกต่างกัน: <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http:/ /xml.juniper.net/junos/18.2R3/junos" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:f8b65a65-5563-46b3- a7a1-36f2da78487e">
<ตกลง/>
</rpc-ตอบกลับ>
อีกหนึ่งจุดที่ไฟล์ set เดียวกัน + คำสั่ง net กำลังทำงานกับโค้ด Junos อื่นที่แตกต่างจาก 18 ซึ่งทดสอบบน 20.4 และ 15.1 โดยไม่มีปัญหาที่คล้ายกัน
ฉันได้เพิ่มสิ่งนี้ลงในโปรเจ็กต์ Salt-sproxy ดังที่แสดงด้านล่าง และมั่นใจว่าปัญหาไม่ได้อยู่ที่ napalm หรือ netconf ซึ่งได้รับการทดสอบทีละรายการและใช้งานได้:
https://github.com/mirceaulinic/salt-sproxy/issues/255
ขอขอบคุณสำหรับการสนับสนุนและขอแสดงความนับถือ
หมู