我正在使用以下REST/XML配置和Postman调用在思科路由器(BGP Client)和OpenDaylight ( BGP ) (ODL释放)之间构建一个BGP对等点。思科路由器,以及ODL在相同的(BGP与65500),但不是在同一个IP地址空间。已配置了适当的IGP路由(OSPF),这两种路由都可以在IPv4上相互访问。
下面是用于ODL配置的XML模式I‘m的API调用:
PUT: http://localhost:8181/restconf/data/openconfig-network-instance:network-instances/network-instance=global-bgp/protocols
<protocols xmlns="http://openconfig.net/yang/network-instance">
<protocol>
<name>bgp-rr</name>
<identifier xmlns:x="http://openconfig.net/yang/policy-types">x:BGP</identifier>
<bgp xmlns="urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions">
<global>
<config>
<router-id>172.16.10.3</router-id>
<as>65500</as>
</config>
<afi-safis>
<afi-safi>
<afi-safi-name xmlns:x="http://openconfig.net/yang/bgp-types">x:IPV4-UNICAST</afi-safi-name>
</afi-safi>
</afi-safis>
</global>
<neighbors>
<neighbor>
<neighbor-address>1.1.1.1</neighbor-address>
<route-reflector>
<config>
<route-reflector-client>true</route-reflector-client>
</config>
</route-reflector>
<timers>
<config>
<hold-time>180</hold-time>
<connect-retry>5</connect-retry>
</config>
</timers>
<transport>
<config>
<remote-port>179</remote-port>
<passive-mode>false</passive-mode>
</config>
</transport>
</neighbor>
</neighbors>
</bgp>
<protocol>
</protocols>然而,问题是我得到一个错误400坏请求与空响应主体,但当指向错误代码(在邮递员),我看到错误的语法信息。我试图简化我的API调用,只使用BGP窥视,但总是得到相同的错误。我通过XML验证器检查了XML代码,一切看起来都很好(代码是有效的)。在Cisco路由器上,BGP状态处于连接状态,我看到TCP状态是SYN发送的.套接字错误是连接拒绝(由远程对等方)。这是可以理解的,因为思科路由器试图连接到OpenDaylight,但由于BGP对等尚未成功应用,OpenDaylight中还没有BGP扬声器。
我假设问题可能是HTML请求(PUT),但由于我是ODL和REST/XML的初学者,我不知道正确的语法是什么。
有人能帮我找出并解决这个问题吗?谢谢。彼得
发布于 2022-06-09 06:54:03
我解决了上述REST请求中提到的一些问题,将REST调用分为两个单独的部分--并且都使用PUT调用请求(而不是POST)。通过应用此更改,我获得了对请求的成功响应,即分别创建了200 OK和201。
在下面两个(2)分离的REST调用下面,使用XML输入:
PUT: http://localhost:8181/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols
<protocols xmlns="http://openconfig.net/yang/network-instance">
<protocol>
<name>bgp-rr</name>
<identifier xmlns:x="http://openconfig.net/yang/policy-types">x:BGP</identifier>
<bgp xmlns="urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions">
<global>
<config>
<router-id>172.16.10.3</router-id>
<as>65500</as>
</config>
<apply-policy>
<config>
<default-export-policy>ACCEPT-ROUTE</default-export-policy>
<default-import-policy>ACCEPT-ROUTE</default-import-policy>
<import-policy>default-odl-import-policy</import-policy>
<export-policy>default-odl-export-policy</export-policy>
</config>
</apply-policy>
<afi-safis>
<afi-safi>
<afi-safi-name xmlns:x="http://openconfig.net/yang/bgp-types">x:IPV4-UNICAST</afi-safi-name>
</afi-safi>
<afi-safi>
<afi-safi-name xmlns:x="http://openconfig.net/yang/bgp-types">x:L2VPN-EVPN</afi-safi-name>
</afi-safi>
</afi-safis>
</global>
</bgp>
</protocol>
</protocols>
RESULT: 200 OK
PUT: http://localhost:8181/restconf/config/openconfig-network-instance:network-instances/network-instance/global-bgp/openconfig-network-instance:protocols/protocol/openconfig-policy-types:BGP/bgp-rr/bgp/neighbors
<neighbors xmlns="urn:opendaylight:params:xml:ns:yang:bgp:openconfig-extensions">
<neighbor>
<neighbor-address>1.1.1.1</neighbor-address>
<config>
<peer-type>INTERNAL</peer-type>
<description>Cisco1</description>
<send-community>EXTENDED</send-community>
</config>
<afi-safis>
<afi-safi>
<afi-safi-name xmlns:x="http://openconfig.net/yang/bgp-types">x:IPV4-UNICAST</afi-safi-name>
<config>
<enabled>true</enabled>
</config>
</afi-safi>
<afi-safi>
<afi-safi-name xmlns:x="http://openconfig.net/yang/bgp-types">x:L2VPN-EVPN</afi-safi-name>
<config>
<enabled>true</enabled>
</config>
</afi-safi>
</afi-safis>
<route-reflector>
<config>
<route-reflector-client>true</route-reflector-client>
</config>
</route-reflector>
<timers>
<config>
<hold-time>180</hold-time>
<keepalive-interval>60</keepalive-interval>
<connect-retry>5</connect-retry>
</config>
</timers>
<transport>
<config>
<remote-port>179</remote-port>
<passive-mode>false</passive-mode>
</config>
</transport>
</neighbor>
</neighbors>
RESULT: 201 Created然而,与思科路由器建立BGP窥视的问题保持不变,不变。我仍然看到TCP SYN发送状态在思科路由器,而BGP对等是在连接状态。当在面向ODL实例的以太网接口上执行"tcpdump“时,我看到来自ODL的TCP标志R.与TCP握手通信。我不知道ODL为什么拒绝使用Cisco路由器的TCP会话。那里没有配置ACL。我在ODL中没有看到关于BGP的日志信息。我重新安装了"odl-bgpcep-bgp“功能,没有任何更改。
知道吗拜托?谢谢。彼得
https://stackoverflow.com/questions/72530530
复制相似问题