summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2022-04-18 10:47:27 +0200
committerChristian Poessinger <christian@poessinger.com>2022-04-18 10:47:27 +0200
commite3a6e7f1a55299822da3b2705cbe8c0f787d46e0 (patch)
tree6b66eb8acefc782f64a38defffd5e7131788cae0
parent6840fa29b22548f84bc59137ccdde7ec0e4525a0 (diff)
downloadvyos-1x-e3a6e7f1a55299822da3b2705cbe8c0f787d46e0.tar.gz
vyos-1x-e3a6e7f1a55299822da3b2705cbe8c0f787d46e0.zip
bgp: T4368: AS specified for local-as can not be the same as remote-as
-rwxr-xr-xsrc/conf_mode/protocols_bgp.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/conf_mode/protocols_bgp.py b/src/conf_mode/protocols_bgp.py
index f6d5071c2..8d9d3e99a 100755
--- a/src/conf_mode/protocols_bgp.py
+++ b/src/conf_mode/protocols_bgp.py
@@ -138,13 +138,20 @@ def verify(bgp):
if asn == bgp['local_as']:
raise ConfigError('Cannot have local-as same as BGP AS number')
+ # Neighbor AS specified for local-as and remote-as can not be the same
+ if dict_search('remote_as', peer_config) == asn:
+ raise ConfigError(f'Neighbor "{peer}" has local-as specified which is '\
+ 'the same as remote-as, this is not allowed!')
+
# ttl-security and ebgp-multihop can't be used in the same configration
if 'ebgp_multihop' in peer_config and 'ttl_security' in peer_config:
raise ConfigError('You can not set both ebgp-multihop and ttl-security hops')
- # Check if neighbor has both override capability and strict capability match configured at the same time.
+ # Check if neighbor has both override capability and strict capability match
+ # configured at the same time.
if 'override_capability' in peer_config and 'strict_capability_match' in peer_config:
- raise ConfigError(f'Neighbor "{peer}" cannot have both override-capability and strict-capability-match configured at the same time!')
+ raise ConfigError(f'Neighbor "{peer}" cannot have both override-capability and '\
+ 'strict-capability-match configured at the same time!')
# Check spaces in the password
if 'password' in peer_config and ' ' in peer_config['password']: