diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-04-18 10:47:27 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2022-04-18 10:47:27 +0200 |
commit | e3a6e7f1a55299822da3b2705cbe8c0f787d46e0 (patch) | |
tree | 6b66eb8acefc782f64a38defffd5e7131788cae0 /src | |
parent | 6840fa29b22548f84bc59137ccdde7ec0e4525a0 (diff) | |
download | vyos-1x-e3a6e7f1a55299822da3b2705cbe8c0f787d46e0.tar.gz vyos-1x-e3a6e7f1a55299822da3b2705cbe8c0f787d46e0.zip |
bgp: T4368: AS specified for local-as can not be the same as remote-as
Diffstat (limited to 'src')
-rwxr-xr-x | src/conf_mode/protocols_bgp.py | 11 |
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']: |