BGP advertisements control

Hello Dears I want to ask about the following case : If I have router in AS 100 with 2 router neighbors ( Assume they are ISPs ) AS 200 & AS 300 and I have networks 192.168.2.0 - 192.168.7.0 I advertise 192.168.2.0 - 192.168.4.0 with one neighbor AS 200 & 192.168.2.0 - 192.168.4.0 with another AS 300 by using route-map . In my design I use default route ( with LSA and track ) ,the requests from these networks routed via the default route and returned from destination via BGP   .  what is the method to control advertisement of networks in case the public service of one ISPs goes down and I want to automatically advertise the networks for this down ISP on the other ISP ?

Hi, 
You can prepend prefixes towards your ISPs. Suppose prefix X is transmitted via ISP-A. In that case you announce prefix X towards ISP-A without any prepending and towards ISP-B with prepending, using your own AS at least more than 2 times. This way when ISP-A goes down global traffic will shift through ISP-B for the prefix X. 
Regards / Tahmeed

Similar Messages

  • BGP advertise-map questions

    I have a few questions pertaining to Conditional advertisements in BGP using advertise-map(s).
    From the Cisco site the examples I have seen stipulate that the routes you redistribute into BGP are through the means of "network" statements.
    The first question is, are you able to redistribute the route(s) you wish to control being advertised to neighboring BGP peers via an advertise-map through the "redistribute" command or must you use "network" statements?
    The second question is, are you able to put a condition on more than one route that you may or may not want to advertise based on the condition you have set. In otherwords as an example I want to allow around 30 routes to be advertised towards a BGP peer if a certain route exists in the BGP routing table. For this I will obviously need to use an advertise-map with the exist-map statement. Is it possible to have this condition set on the 30 routes?

    Advertise-map are only related to what is sent out of the router. They really don't care how the route got into the router. You can use either network statements or the redistribution command to get them into the bgp routing table.
    I don't know what the limit is on how many addreses you can put in the route-map used for conditional advertisement but it is much more than 30. It would just be in worse case a access list that had 30 entries.
    The conditional advertisement is not really any different than a normal route-map filter. You just build a access list or prefix list that matches any address you want to allow. You do it the same way as if you were building a normal route-map that allow certain routes all the time. The only thing really special is when it is applied not how you create it.

  • BGP Advertised Routes two Peering

    Dear all
    I have issue with BGP behaviour. I have two BGP peering; from both I receive default route, but one of them,
    AS 65472 is primary so I setup local preference in 200; it is because I want to use AS 65472 as internet
    provider. The another one, AS 65472 is used as secundary internet access, but for internal network (private) is
    used as primary. The issue is when try ping from LAN, can not reach internal network, seems to be that
    becuase Local preference is setup within AS65472 and the packet try to go thru AS 65472 because local prefeence 200,
    but I need that internal network go thru AS 65471.
    I am sure that I am advertising network as I expect, but when is running BGP for both peering, it fails.
    Here are go output for this situation:
    7204VXR-SCT#sh ip bgp neighbors 172.16.40.37 received-routes
       Network          Next Hop            Metric LocPrf Weight Path
    * i0.0.0.0          172.16.40.37             0    100      0 i
    Total number of prefixes 1
    7204VXR-SCT#sh ip bgp neighbors 172.16.40.37 advertised-routes
       Network          Next Hop            Metric LocPrf Weight Path
    *> 10.10.200.0/30   0.0.0.0                  0         32768 i
    *> 10.30.24.0/21    172.16.40.4              0         32768 i
    *> 172.16.17.0/24   172.16.40.5              0         32768 i
    *> 172.16.211.0/24  0.0.0.0                  0         32768 i
    *> 172.18.56.16/29  0.0.0.0                  0         32768 i
    *> 172.30.100.18/32 0.0.0.0                  0         32768 i
    *> 172.31.0.20/30   0.0.0.0                  0         32768 i
    7204VXR-SCT#sh ip bgp neighbors 190.97.254.241 received-routes
       Network          Next Hop            Metric LocPrf Weight Path
    *  0.0.0.0          190.97.254.241                         0 65472 i
    Total number of prefixes 1
       Network          Next Hop            Metric LocPrf Weight Path
    *> 190.153.116.0/22 172.16.40.4              0         32768 i
    *> 190.153.120.0/22 172.16.40.4              0         32768 i
    *> 190.153.124.0/24 172.16.40.37            10         32768 i
    router bgp 65471
     bgp log-neighbor-changes
     neighbor externalBGP peer-group
     neighbor externalBGP remote-as 65472
     neighbor externalBGP version 4
     neighbor internalBGP-SCT peer-group
     neighbor internalBGP-SCT remote-as 65471
     neighbor internalBGP-SCT version 4
     neighbor 172.16.40.37 peer-group internalBGP-SCT
     neighbor 190.97.254.241 peer-group viginet
     address-family ipv4
     neighbor externalBGPsoft-reconfiguration inbound
     neighbor externalBGProute-map viginet-in in
     neighbor externalBGProute-map viginet-out out
     neighbor internalBGP-SCT soft-reconfiguration inbound
     neighbor internalBGP-SCT route-map internalBGP-SCT-out out
     neighbor 172.16.40.37 activate
     neighbor 190.97.254.241 activate
     no auto-summary
     no synchronization
     network 10.10.200.0 mask 255.255.255.252
     network 10.30.24.0 mask 255.255.248.0
     network 172.16.17.0 mask 255.255.255.0
     network 172.16.40.0 mask 255.255.255.0
     network 172.16.211.0 mask 255.255.255.0
     network 172.18.56.16 mask 255.255.255.248
     network 172.30.100.18 mask 255.255.255.255
     network 172.31.0.20 mask 255.255.255.252
     network 190.153.116.0 mask 255.255.252.0
     network 190.153.120.0 mask 255.255.252.0
     network 190.153.124.0 mask 255.255.255.0
     exit-address-family
    ip route 172.16.40.36 255.255.255.252 Null0 250
    ip route 190.153.116.0 255.255.252.0 172.16.40.4
    ip route 190.153.120.0 255.255.252.0 172.16.40.4
    ip prefix-list invalidas seq 10 permit 172.16.40.0/24
    ip prefix-list invalidas seq 15 permit 10.30.24.0/21
    ip prefix-list invalidas seq 20 permit 172.16.211.0/24
    ip prefix-list invalidas seq 25 permit 172.18.56.16/29
    ip prefix-list invalidas seq 30 permit 172.30.100.18/32
    ip prefix-list invalidas seq 35 permit 10.10.200.0/30
    ip prefix-list invalidas seq 40 permit 172.16.17.0/24
    ip prefix-list invalidas seq 45 permit 172.31.0.20/30
    ip access-list standard viginet-100
     permit 190.153.116.0 0.0.3.255
     permit 190.153.120.0 0.0.3.255
     permit 190.153.124.0 0.0.0.255
    route-map externalBGP-out permit 10
     match ip address viginet-100
    route-map externalBGP-in permit 10
     set local-preference 200
    route-map internalBGP-SCT-out permit 10
     match ip address prefix-list invalidas

    Hello.
    If you want your internal network to go through peer 65471 (to 0.0.0.0/0), then why do you need AS 65472?
    Could you please provide "show ip bgp 0.0.0.0/0"?

  • CSCsm71553 - BGP advertises prefix after network command is removed

    Hello,
    I got a stack of core switches with the following components :
    Switch Ports Model              SW Version            SW Image
         1 52    WS-C3750G-48PS     12.2(52)SE            C3750-IPSERVICES-M
    *    2 52    WS-C3750V2-48PS    12.2(52)SE            C3750-IPSERVICESK9-M
    BGP is configured on the stack in order to exchange routes with our WAN operator.
    I've been told that with some versions of these IOS, BGP keeps on advertising prefix after network command is removed.
    Can you tell me more about it and tell me if my software versions are submitted or not to this bug.
    Thanking you;
    Best regards;
    Pascal

    Hi Amit
    Thanks a lot for your feedback.
    To be noted : I also received an answer from a Cisco engineer writing me the bug was resolved since the 12.2(46)SE version. I will take no risk and prefer taking your answer into account.
    Best regards.
    Pascal

  • BGP advertised routes

    Hi All,
    Is it possible to find since how long a route being advertised to BGP neighbor?
    To elaborate, if EBGP neighbors are up since 24 hours and among 10 routes advertised, at receiving router, 5 routes show the uptime as 12 hours, whereas other 5 routes show the uptime as 24 hours.
    All 10 routes were present in advertising router's routing table for more than 24 hours.
    Regards,
    Nagabhushan

    Hi,
    when you issue on the advertising router
    sh ip route x.x.x.x
    for one particular prefix among those showing  the uptime as 12 hours on the other router, do you see any " Last update from ... xxx ago"?
    That should show you the last time the routing was changed on the advertising router (and BGP should have advertised the change that time).
    Best regards,
    Milan

  • BGP Advertisement to Specific AS Number

    HOw to setup BGP so it will not get advertised to specific AS.
    Example:
    My BGP AS 1000 and i peer with AS 2000 and 3000. I want to tell BGP AS 2000 not to advertise to AS 100, and 200. 
    Or i want to advertise my blocks to all internet but i want to make sure AS 100 and 200 wont have my prefix in the BGP table.
    thanks

    Hello,
     Create a "peer-group" where you will add those two AS to the peer-group. And apply "mhnedirli" solution above...
    and use : 
    neighbor <peer-group-name> route-map BLOCK out

  • IPv6 - Newb Question (BGP Advertisement)

    Hi Everyone - Quick question on IPv6 subnetting
    If we are allocated a /32 from an RIR (eg 2001:0DB0::/32), and we advertise the /32 to our upstream Inet providers - Assigning
    2001:0DB0:0:10::1/64 to a loop Interface, we *should* be able to reach the Upstream providers IPv6 addresses with a source of the loop interface(As the /64 is within the /32 subnet)?
    Cheers.

    Hi John,
    Correct. You should be able to use that technique to perform initial testing for your ipv6 connectivity. You can use extended ping for instance to specify the loopback interface as the source address.
    Regards

  • (MP) BGP recursive lookups

    Hi colleague,
    have a question here about MP-BGP (iBGP) updates sent to PE or RR.
    You know, when BGP prepares the update, put the source and destination IP which a Loopback address, then it has to lookup for the next hop to send the update. The next hop IP will usually already have LDP label associated with it. Does this label add into the BGP paket update so in other word the update itself is labelled switch inside MPLS core. Thanks

    Hello Raymond.
    packets of BGP sessions are treated as any other traffic if an LSP exists with destination= remote BGP endpoint, and endpoint is not directly connected the BGP packet (otherwise pop tag will cause to send packet with no label)  is put into the LSP as traffic with a BGP next-hop = remote BGP endpoint.
    This can be the case of a BGP packet sent to a route reflector server.
    You can easily test this by performing a packet capture in an MPLS enabled lan segment.
    I've actually discovered this during packet captures I did to look at settings in IPv4 headers of routing protocols.
    The MPLS label is not part of the BGP update, rather the BGP packet is encapsulated in MPLS.
    To be noted that BGP can be used to distribute labels when using BGP with labels that require neigh ... send-labels but this is a more specific case and in that case the label is a field in the BGP advertisement to a directly connected BGP neighbor.
    Hope to help
    Giuseppe

  • Show command to see advertised AS-Path, ASR9K XR 4.3.2

    Question for ASR9010 running 4.3.2
    Anyone know of  a command that will show the as-path for advertised prefixes (my own) besides
    show bgp advertised neighbor <ipaddr>
    The output from above command gives the information, but is not very concise.  For some reason the command:
    show bgp neighbor <addr> advertsed-routes
    does not show as-path.
    Thanks,
    Tim

    i don't know if is this you looking for
    RP/0/RSP0/CPU0:router# show bgp advertised neighbor 10.0.101.4 summary
    Network     Next Hop            From          AS Path
    1.1.1.0/24  10.0.101.1          10.0.101.1    2 3 222 333 444 555 i

  • Load-balancing vs Load-sharing (L2/L3)

    What is the difference in load balancing and load sharing. Can you generalize load-balancing to layer two? Or layer three protocols also do this, except BGP?
    FHRPs like VRRP, GLBP, and HSRP are essentially load sharing protocols (except GLBP though). Loop prevention mechanisms like MSTP, G.8032, and REP also do not do load balancing I guess. Instead they offer a way to distribute (share) traffic over multiple links unevenly. Why do people still call it load-balancing?
    While link aggregation may truly be considered load balancing. Where traffic can be balanced based on a few attributes ( src-dst/mac, ip, port).
    And what role does fast-switching/process-switching play in load balancing. I am aware that these are the very processes that ultimately do load-balancing, given enough equal cost paths. Does CEF really take load balancing to another level? It still does the same job, but by caching flow data (RIB) to the CEF table, doesn't it?
    Incase of IGP, load-balancing may be possible, but BGP just doesn't support it. Because it only selects one best route (?). Even with multipath, BGP advertises best path only; it does install multiple routes in routing table though. So IGP does the balancing?

    What is the difference in load balancing and load sharing. Can you generalize load-balancing to layer two? Or layer three protocols also do this, except BGP?
    FHRPs like VRRP, GLBP, and HSRP are essentially load sharing protocols (except GLBP though). Loop prevention mechanisms like MSTP, G.8032, and REP also do not do load balancing I guess. Instead they offer a way to distribute (share) traffic over multiple links unevenly. Why do people still call it load-balancing?
    While link aggregation may truly be considered load balancing. Where traffic can be balanced based on a few attributes ( src-dst/mac, ip, port).
    And what role does fast-switching/process-switching play in load balancing. I am aware that these are the very processes that ultimately do load-balancing, given enough equal cost paths. Does CEF really take load balancing to another level? It still does the same job, but by caching flow data (RIB) to the CEF table, doesn't it?
    Incase of IGP, load-balancing may be possible, but BGP just doesn't support it. Because it only selects one best route (?). Even with multipath, BGP advertises best path only; it does install multiple routes in routing table though. So IGP does the balancing?

  • One isp two with routers

    I have to replace cisco equipmenet and looking for an advise
    my current network layout:
    my destination layout want to something like that:
    I have a couple questions:
    1) is that new network layout would be a good solution or is it better to do also 3750 redundancy,
    2) we have only 1 isp, for now to access internet we use 1 static route, if we want to do the redundancy, do we have to ask our isp to do BGP for us? Is there any other way to accomplish that?

    1) I would definitely add another 3750 to help consolidate the dual redundancy you're putting in place at the network edge. Then form a 3750 stack and provision cross-stack uplinks to your distribution and access layer switches.
    2) Agree with marwanshawi above - find out what your ISP can offer. What type of technology is used for your primary circuit? If E1, then the keepalives will ensure both parties can fail across to the standby circuit with some simple static routing.
    If Ethernet, then you can apply IP SLA or BGP to detect a failure within the carrier cloud and failover (i.e. your outbound traffic.) However, carriers tend to just rely on BGP to control fail over on their side (i.e. your inbound traffic.)

  • Multiple Transit to ISP design guide

    Hi,
    I will be implementing transit to multiple internation ISP soon and now looking for design best practise in terms of the BGP routing control.
    Hope someone have the url or good documentation on this matter.
    Thx in advance.

    Hi,
    Please find attached some presentations I have about the topic. Clearly not enough but maybe a good starting point.
    Drop me a mail, I've got some more docs I can share with you.
    Cheers,
    Mihai

  • L3-MPLS VPN Convergence

    Perhaps someone on this group can identify the missing timers/processing-delays in end-to-end client route convergence
    Scenarios:
    a) BGP New route Advertised by Cleint(CPE1)
    b) BGP Route withdrawn by Client(CPE1)
    PE-to-RR i-M-BGP (Logical)
    ========= ----RR------ ======
    " | | "
    CPE1---->PE1------->P1-------->P2---->PE2----->CPE2
    | |
    --------->P3-------->P4-------
    Routing:
    - eBGP btw CPE and PE (any routing prot within Cust site),
    - OSPF, LDP in Core,
    Timers/Steps I'm aware of:
    - Advertisement of routes from CE to PE and placement into VRF
    - Propagation of routes across the MPLS VPN backbone
    - Import process of these routes into relevant VRFs
    - Advertisement of VRF routes to attached VPN sites
    - BGP advertisement-interval: Default = 5 seconds for iBGP, 30 for eBGP
    - BGP Import Process: Default = 15 seconds
    - BGP Scanner Process Default = 60 seconds
    Would appreciate if you someone can identify any missing process-delay, timers? specially w.r.t RR.
    Thanks
    SH

    Check the LDP/TDP timers in the core. Remember if a link fails in the core, reroute occurs, LDP/TDP binding needs to be renewed. tags are binded on those routes being in the routing table (IGP). So, there is a delay possible from a core prespective:
    mpls ldp holdtime
    mpls ldp discovery hello [holdtime | interval]
    In case you are using TE check these:
    mpls traffic-eng topology holddown
    mpls traffic-eng signalling forwarding sync
    mpls traffic-eng fast-reroute timers promotion
    I believe the latter one onyl applies to SDH. In which you use segment loss feature.
    Regards,
    Frank

  • Eigrp - How to modify Admin distance for redistributing connected links and over WAN

    We have a single EIGRP domain 101 across 2 locations (A and B) separated by a WAN link. Each location has a number of L3 switches at the IDF behind the router which has  the L3 vlans VL1, VL2 etc. We run eigrp 101 across all the switches and on the routers but we dont advertise any of the L3 vlans on them and we do redistribute static and connected for the static and the vlans to be distributed on eigrp.
    Qn
    1. How do i reduce the admin distance of the directly connected vlan on IDF on our core switch. ie. Vl1 and Vl2 that are distributed via connected has a admin distance of 170 locally as the other switches sees that as External without having to advertise the networks individually on each switch.  
    2. Is that possible to increase the admin distance over the WAN link without having to create a 2nd eigrp domain. ie.. Add a admin distance of say 50 over the WAN link  and that way devices on both sides do see that there is a 130 distance for the remote side and 90 for local for admin distance.
    Why?
    I am trying to separate two locations and i don't think we will be able to create an additional domain and i am trying to see alternate methods of achieving this.  
    Additional info-
    The design i mentioned has 2 locations with a WAN connection and i have mixed (90/170) distance based on where the routes are coming(eigrp/connected/static) from eventhough  everything is within the same network.  We only have 1 Eigrp network 101 and was looking to alter the AD for just connected if at all possible.
    Assuming i put in all the routes into the network how can i make site 2 see the site 1 network with a larger admin distance and 1 to 2 with a larger admin distance while not altering the admin distance within the local site.
    Underlying reason: We are getting a MPLS link(lower bandwidth) connecting to site 3,4 and 5 at both sites and wanted to clear the internal routing first before i can add them or redistribute them into bgp.

    If these two sites are connected via a P2P link and you are exchanging EIGRP routes across it then you need to be aware of what you redistribute into BGP because each site will know about it's own subnets but also the other sites subnets.
    If you just redistribute all EIGRP at both sites then it's a lottery as to which MPLS connection the non EIGRP sites use.
    So you either need to -
    1) when you redistribute EIGRP at each site into BGP use a route map and only allow the local networks for that site
    or
    2) if you want each of the EIGRP sites to back each other's MPLS connection up you could have them both advertise out all networks ie. their own and the other EIGRP site's networks but modify the BGP attributes of the non local networks so they are least preferred.
    You still want to use a route map to ensure only the local and other EIGRP sites network are redistributed because remember you are also receiving BGP routes from the non EIGRP sites and redistributing these into EIGRP at each site and these are exchanged via the P2P link as well.
    It realty depends on what you are trying to do.
    The actual basic redistribution is very straightforward, see this link -
    http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/113506-failover-eigrp-bgp-00.html
    but you need to decide what you are going to do in terms of EIGRP to BGP advertisements as covered above.
    I'm not trying to make things complicated for you but because you have a P2P link connecting these sites and you are running EIGRP over it then any routes received via BGP will be redistributed into EIGRP and you need to make sure they are then not redistributed back into BGP on the other site router.
    Jon

  • Ip prefix-list modification help

    i need to modify my internet edge bgp advertisements to exclude a small slice of the end of our ip space and i can't wrap my brain around what i need to do to modify the prefix list. my company uses the 192.168.0.0 thru 192.168.11.255 ip space and shown below in our existing bgp configuration (slightly modified to protect the innocent). I want to cut out the very last /29 net out of the 192.168.11.0 network.
    router bgp 65001
    bgp always-compare-med
    bgp log-neighbor-changes
    bgp bestpath as-path multipath-relax
    neighbor 1.1.1.1 remote-as 65002
    neighbor 1.1.1.1 ebgp-multihop 255
    maximum-paths 2
    address-family ipv4
      neighbor 1.1.1.1 activate
      neighbor 1.1.1.1 prefix-list mycompany-list out
      network 192.168.0.0 mask 255.255.248.0
      network 192.168.8.0 mask 255.255.252.0
    ip prefix-list mycompany-list seq 70 permit 192.168.0.0/21 le 24
    ip prefix-list mycompany-list seq 71 permit 192.168.8.0/22 le 24
    now, i know i could just remove the prefix-list and change the advertised networks with the following but i'd really like to know how to do it via a prefix-list.
    network 192.168.0.0       255.255.248.0
    network 192.168.8.0       255.255.254.0
    network 192.168.10.0     255.255.255.0
    network 192.168.11.0     255.255.255.128
    network 192.168.11.128  255.255.255.192
    network 192.168.11.192  255.255.255.224
    network 192.168.11.224  255.255.255.240
    network 192.168.11.240  255.255.255.248
    Any help that anyone can provide is much appreciated!

    i tried applying your suggestion and we still saw the larger 192.168.8.0/22 supernet being advertised... still missing something.
    i tried writing the prefix-list explictitly stating only the networks i wanted advertised but something went wrong and we lost some internet connectivity from the outside so i had to pull things back to the way they were. this is what i tried:
    first i added lines 75 thur 105 so the list looked like this:
    ip prefix-list stateofnh-list seq 65 deny 192.168.11.248/29       <- your suggestion applied
    ip prefix-list stateofnh-list seq 70 permit 192.168.0.0/21 le 24  <- original line
    ip prefix-list stateofnh-list seq 71 permit 192.168.8.0/22 le 24  <- oiriginal line
    ip prefix-list stateofnh-list seq 75 permit 192.168.8.0/23          <- new stuff starts here
    ip prefix-list stateofnh-list seq 80 permit 192.168.10.0/24
    ip prefix-list stateofnh-list seq 85 permit 192.168.11.0/25
    ip prefix-list stateofnh-list seq 90 permit 192.168.11.128/26
    ip prefix-list stateofnh-list seq 95 permit 192.168.11.192/27
    ip prefix-list stateofnh-list seq 100 permit 192.168.11.224/28
    ip prefix-list stateofnh-list seq 105 permit 192.168.11.240/29
    then i removed lines 65 and 71 leaving just this:
    ip prefix-list stateofnh-list seq 70 permit 192.168.0.0/21 le 24  <- original line
    ip prefix-list stateofnh-list seq 75 permit 192.168.8.0/23          <- new stuff
    ip prefix-list stateofnh-list seq 80 permit 192.168.10.0/24
    ip prefix-list stateofnh-list seq 85 permit 192.168.11.0/25
    ip prefix-list stateofnh-list seq 90 permit 192.168.11.128/26
    ip prefix-list stateofnh-list seq 95 permit 192.168.11.192/27
    ip prefix-list stateofnh-list seq 100 permit 192.168.11.224/28
    ip prefix-list stateofnh-list seq 105 permit 192.168.11.240/29
    but like i said, suddenly several sites we host became unavailable from and i quickly peeled everything back. suggestions?

Maybe you are looking for

  • No sound with DVI-HDMI

    My computer is connected to my TV. I had sound from the TVspeakers through an HDMI-DVI cable on my HP Pavillion with Win 7 64k before. After format, no more sound. Help me!!!

  • Reg: Proxy error while fetching data from RFC's

    Hi All, I am fetching data from RFC's. When the data is in bulk I am getting an error like: Proxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request POST /webdynpro/dispatcher/sa

  • Input source disappears after restart or log out. How to fix it?

    I use two input sources: U.S. and Russian-PC. But recently the Russian-PC started to disappear everytime I restart the iMac or just log out and log in back. Instead of Russian-PC there is Russian which is inconvinient to use. So I always have to open

  • Contracts Dislplay in SC

    Hi all, So, in our implementation currently, if you have a contract for an item or product catagory, the system will automatically assign the contract to an item in the SC, on item level it will also change the price.  This is expected, but if you ha

  • How Badly Do You Abuse Reserved Words in Column Names

    I have a challenge for all you DBA's out there.  Most of us agree that reserved words as column names is a bad practice but how clean is your database and some people are quit outspoken about it.  Run the following query on some of your custom, non-C