Iptables: differences using conntrack or state module

I'm still new to (Arch) Linux, and I am looking into iptables right now. I was looking at the wiki, where there is this rule:
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
And I see in the default file /etc/iptables/simple_firewall.rules (owned by iptables 1.4.12.1-2) a similar rule:
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Now, looking in the man page for iptables, I'm not sure I see/understand the difference between those two modules, conntrack & state:
conntrack: This  module,  when  combined  with  connection tracking, allows access to the connection tracking state for this packet/connection.
NEW meaning that the packet has started a new connection, or otherwise associated with  a  connection which has not seen packets in both directions, and
ESTABLISHED meaning  that  the  packet  is  associated with a connection which has seen packets in both directions,
RELATED meaning that the packet is starting a new connection, but is associated  with  an  existing connection, such as an FTP data transfer, or an ICMP error.
state: This  module,  when  combined  with  connection tracking, allows access to the connection tracking state for this packet.
NEW meaning that the packet has started a new connection, or  otherwise associated  with  a  connection  which has not seen packets in both directions, and
ESTABLISHED meaning that the packet is associated with a connection which has seen packets in both directions,
RELATED meaning that the packet is starting a new connection, but is associated  with  an  existing connection,  such  as  an  FTP data transfer, or an ICMP error.
Descriptions of the states are exactly the same, and for the modules conntrack has a "packet/connection" where state only has "packet", but I'm not sure what the differences/implications are.
Right now, it seems to me that, in the example rule quoted above, both modules/rules would get the exact same result (the difference between the  2 modules being that conntrack allows a lot more than just using state, whereas module state obviously only uses state) -- would that be correct?
Assuming this is right, I should be safe "translating" the rules from the wiki to use the state module instead? (just because it seems module state is all I need, plus I use a custom kernet and conntrack requires a few more options to be enabled)
Also, in that case, would there be a reason why conntrack was used on the wiki? Or would it be maybe a good idea to use the state module instead? (AFAICS all rules always only uses --ctstate to filter by state, nothing else, so using module state should be enough/work the same)
Thanks for any help/information.

http://serverfault.com/questions/190978/firewall-questions-about-state-and-policy wrote:Technically the conntrack match supersedes - and so obsoletes - the state match. But practically the state match is not obsoleted in any way.

Similar Messages

  • 21.01.2008 18:57:48 - 03.04.2008 13:16:47 difference use function module

    21.01.2008 18:57:48 - 03.04.2008 13:16:47 difference use function module

    Hi Kumar,
    Try the FM CCU_TIMESTAMP_DIFFERENCE.
    Here u need to pass the data in time stamp.
    i.e YYYYMMDDHHMMSS format
    Take 2 variable as same type as of FM
    CCUPEAKA-TIMESTAMP
    In ur example u have to pass 20080403185748 in TIMESTAMP1 and 20080121131647 in TIMESTAMP2
    U will get the difference in seconds in parameter DIFFERENCE as 6,327,661. U can convert this as per ur requirement by deviding with 60.
    EG: diff in min = 6,327,661/60
           diff in hr   = 6,327,661/3600
           diff in days = 6,327,661/86400
    Thanks,
    Vinod.

  • Use of Prepared Statement in adf

    Hi Experts,
    I am confused with the Use of prepared statement in adf.
    My use case is ,
    I have to update a table from every page in my application under certain conditions.
    My question is ,
    whether I have to create the VO iterator binding in every page and by calling the createinsert and insert the data in to the table or
    use a common method in the Application module impl
    which is using a prepared statement,(which is not even creating the ViewObject ) like
    PreparedStatement st = null;
    String sql = "INSERT INTO hr.departments (DEPARTMENT_ID,    DEPARTMENT_NAME,   MANAGER_ID,   LOCATION_ID) VALUES (seq,?,?,?)";
                st=getDBTransaction().createPreparedStatement(sql,0);
                st.setString(1, name);
                st.setString(2, mgr_id);
                st.setString(3, Loc_id);
                st.execute();
    getDBTransaction().commit();which is the best approach?
    Studio Edition Version 11.1.1.2.0
    Ranjith

    Ranjith,
    Without further understanding the use case, there's not really much difference between the two approaches. In both cases, you'd have a binding in the page definition (either an iterator binding for the VO or a method binding for the AM service method). Both will use bind variables. The main difference I can see is that, depending on how you have configured your AM pooling settings, the VO method will incur fewer parses in the DB because the AM will cache prepared statements for you.
    John

  • Difference between HR programing & other module programming

    Hi
    What are difference between HR programming & other module programming?
    This is one of interview questions from IBM.
    Any body can answer for me?
    WIth Regards,Jaheer.

    Dear Jaheer,
    Advanced Business Application Programming ABAP is SAP's fourth generation language. All of R/3's applications and even parts of its basic system are developed in ABAP. ABAP is used for customization and modification of SAP applications. 
    In HR ABAP use of select statements significantly less than in other areas of ABAP development, Logical databases have limited applications in other modules but are very useful in HR. Also, you really need to understand the infotype time constraint concept since the data organization in HR is Employee-Time based,     When you cannot get the information that you need out of the logical DB look at the function modules starting with HR* and RH*. These function modules will provide you with multiple ways of accessing data to save time. Worst-case scenario, use a select statement.
    In addition to the LDB, HR programming also involves the use of Macros for data extraction,
    The storage an access of data is different,
    Authorization checks.
    The Human Resources module uses a system of data grouped together called infotypes. The Human Resources module uses a system of data grouped together called infotypes. And storing bulk data like time management and Payroll data in Cluster files. HR Programming involves data extraction and manipulation from these infotypes and clusters using LDB/MACRO and function modules.
    Infotypes mirror a quantity of connected data records; infotypes are identifiable through a four character numerical string .
    You can save the infotypes as time-dependent to enable a retroactive evaluation of Employee data.
    The infotypes appear as an entry screen for the user, through which you can maintain infotype records. Infotypes can be processed individually or in fast entry mode.
    Regards,
    VIjay

  • Need help in using a case statement in expression operator

    Hi All,
    I am using OWB version 10.2.0.1.0.
    My requirement is to add a new column called call _zone_key in expression operator and map it to the target table. I need to use the below expression for populating call_zone_key values
    Expression:
    case when (INGRP1.CHARGETYPE in ('O','F') or  INGRP1.TARIFF_GROUP in ('SMSINT','MMSINT')or ( INGRP1.CALL_TYPE = '002' and   INGRP1.TARIFF_GROUP  = 'MTV'))
    then
    (select call_zone_reltn_key from call_zone_reltn where
    call_zone_cd=substr(case
      when substr( INGRP1.B_SUBNO,1,2)='00'
      then
      substr( INGRP1.B_SUBNO,3)
      else substr( INGRP1.B_SUBNO,1)
      end,1,length(call_zone_cd))and rownum=1)
    else -1
    end
    All the columns needed for using the above expression is available in INGRP1 but still I am unable to deploy the mapping using above expression. Call_zone_reltn table is also imported to the module. I am getting below error
    Error:
    Warning
    ORA-06550: line 4980, column 2:
    PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
       ( - + case mod new not null others <an identifier>
       <a double-quoted delimited-identifier> <a bind variable> avg
       count current exists max min prior sql stddev sum variance
       execute forall merge time timestamp interval date
       <a string literal with character set specification>
       <a number> <a single-quoted SQL string> pipe
       <an alternatively-quoted string literal with character set specification>
       <an alternativ
    NEW_MOD_MAP_CELL_USAGE_FCT_PRE
    Create
    Warning
    ORA-06550: line 4989, column 43:
    PLS-00103: Encountered the symbol ")" when expecting one of the following:
       * & - + ; / at for mod remainder rem <an exponent (**)> and
       or group having intersect minus order start union where
       connect || multiset
    If i replace the expression with numbers such as 1 or 2, I am able to deploy the mapping.
    Kindly help in fixing this issue.
    Thanks,
    Kabilan

    You can't use the SELECT statement inside the expression, you need to join both tables before the expression. Use a Join operator with this JOIN condition:
    CALCULATED_CALL_ZONE_CD = call_zone_reltn.call_zone_cd ( + )
    Where Calculated_call_zone_cd proceed from a previous expression:
    CALCULATED_CALL_ZONE_CD = substr(case when substr( INGRP1.B_SUBNO,1,2)='00' then substr( INGRP1.B_SUBNO,3) else substr( INGRP1.B_SUBNO,1) end,1,length(call_zone_cd))
    And after joining both tables, you can use another expression to get the rownum, then another filter operator to keep only the rownum = 1, and now you can use your expression without the SELECT, using the call_zone_cd column from the outgroup in the joiner operator (you need to include that column in the filter operator to use it).
    Regards
    ANA GH

  • ERROR: "key not valid for use in specified state" when updating to Lightroom 5.6 in Win8.1

    While doing a routine update from Lightroom 5.5 to v5.6 in Win 8.1, the installation halted at the start of the installation with the vague error message, "key not valid for use in specified state".  Although v5.5 was working just fine, the install routine deleted the v5.5 application files.  I rolled back to the previous system restore point (set just prior to the install) and recovered the executable files.  However, now the 5.5 files won't open the default catalog, none of the backups, or even create a new catalog.
    As v5.x was purchased as an update to v4.x, I've tried to reinstall the original Lightroom v4.x app from the factory disk.  I get the same error.
    Suggestions?
    Thanks. Dan

    I have a similar problem to Dan. while doing a routine upgrade from Lightroom 5.5 to 5.6 I got the
    : "key not valid for use in specified state"
    error and now Lightroom has completely disappeared. I've tried to uninstall, but there is nothing to uninstall. Going back to try to install the original 5.4 just results in the same error.
    A problem may have been that I closed Lightroom when the upgrade started to download. It then re-opened again when the install was halfway through., I assumed that was an error and closed it. just after that the error first appeared in the installer.
    I still had an older version of lightroom 4 installed. I've uninstalled it, and that didn't make any difference.
    I've also tried removing anything in the registry left over from the old installs and that didn't help either.
    Any suggestions?
    CHeers, Angus

  • Use the same code module for several steps in the sequence

    Hello All,
      I have been trying to set up a sequence that uses the same code module for all of the steps in the sequence, but am having trouble referring back to it when I need to send it commands.  I have gotten as far as calling the VI in a new thread so that it can be run asynchronously.  I can run the simple sequence and it will indeed open the VI, and move on to the next step.  When I close the VI manually from the front panel, the sequence in TestStand completes, as expected.  So it appears that I have that much working. 
      My question is how to call the separate thread from the main sequence or other sub sequences when I need to edit the parameters.  If I insert an Action step, I am required to select a VI file, but from what I can tell, it opens a different instance of the file, and does not provide an interface with the other instance running asycronously.  My next guess was to use a Statement step, but I was not able to figure out how to configure the lookup string to call the VI parameters.  Beyond that, I'm not sure how to proceed.  Please advise.   
      My intention is to start the code module VI (asynchronously), run several different subsequences within the main sequence that call that same VI and edit it's parameters, close everything and report on the results.  If I am misunderstanding how TestStand is supposed to work, please let me know. 
    Thanks,
    GSinMN    
    Solved!
    Go to Solution.

    What I do is use a Queue to send data to the asynchronous VI.  So it can run and do whatever, but also recieve the commands from the queue.  I use an Action Engine that holds the queue reference and sends the commands.  So you really just have to call the Action Engine from your sequences.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Is it necessary to use the standard function modules always?

    Hi All,
       Suppose i can retrieve the BUSINEES PARTNER ID from the table BUT000 with the help of 'BP_GUID' field through a select query statement. 
    Now is it necessary to use a standard function module to retrieve the same data. what about the performance? which is the better solution. to implement our own code or to use the function module available.
    Please someone clarify me about this issue.
    Regards,
    Sharry.

    If you'd ask the question in general it's obvious that there is no good answer as it always would depend on the circumstance. However, as you've posted your question in the performance tuning forum, let's look at your question in this context first. I think it's fairly safe to say, that in almost 100% of the cases a standard function module will not be as fast as any well implemented and custom tailored code. If in doubt, just try reading the code of the function module you want to read; most likely you will find lots of unnecessary fluff in there, often they read data that you don't even need.
    And as far as buffering is concerned, that can also be an issue. E.g. let's say you do a massive read of distinct business partners and you only need the data once for each partner. Obviously buffering is silly in this case and it might even slow down your program, because the implemented buffering is not necessarily well implemented. I've come across a few cases, where the buffer tables where standard tables with no efficient read access (so no sorted table or hash table) and once tons of data were buffered, it actually took a moment to look up if the record already was buffered (just to find it wasn't there yet).
    Now most of the times this slowdown is not an issue as the lookup is still fast compared to the (usually) prevalent database accesses with their slower IO timing. But another factor to consider is memory consumption and why buffer data in memory (and waste it), if you can't use the buffer anyway? So when I do use standard function modules, I usually try to see what they retain in global memory, to better understand if I need to call some initialization/clearing/refresh function...
    Note also that often you need to process lots of data, but don't find a standard function module for "mass access", so you need to read your object one by one. Obviously that's another good candidate for implementing your own queries, where you can process the data in packages.
    So what might be the reason to use a standard function module? Well, often it's required because the logic is so complex that it would take you too much time to implement it (not to mention that we often simply don't know all the logic that's coded in there). Another advantage is that you might get independent of the data model. E.g. for IDoc interfaces SAP switched in some release the tables where the data is stored. So if you had coded your own queries to get IDoc data, they wouldn't have worked after this particular release upgrade. The standard function on the other hand, checks both the old and new tables, so by using it you would have been fine.
    The one major caveat I'd give though is to always check whether the function module is released or at least documented to some degree. I.e. if it's not released, SAP won't support it and does not guarantee that the interface or logic stays the same. In my experience lots of functions I do want to use are not released (or documented), but I will still use them because they seem to be the best alternative in certain scenarios.
    Cheers, harald

  • The difference in calling an application module from a backing bean

    Hello everybody!
    I don't understand exactly, where is the difference in calling an application module from a backing bean in the following ways.
    Example 1
    FacesContext context = FacesContext.getCurrentInstance();
    ValueBinding vb = context.getApplication().createValueBinding("#{data}");
    BindingContext bc = (BindingContext)vb.getValue(context);
    DCDataControl dc = bc.findDataControl("AppModuleDataControl");
    AppModuleImpl appModule = (AppModuleImpl)dc.getDataProvider();Example 2
    String amDef = "model.services.AppModule";
    String config = "AppModuleLocal";
    AppModuleImpl appModule = (AppModuleImpl)Configuration.createRootApplicationModule(amDef, config);Example 3 (the same like Example 1???)
    String EL = "#{data.AppModuleDataControl.dataProvider}";
    FacesContext fc = FacesContext.getCurrentInstance();
    ValueBinding vb = fc.getApplication().createValueBinding(EL);
    AppModuleImpl appModule = (AppModuleImpl)vb.getValue(fc);Please can anybody explain, what the three examples do? Which example is preferred to call an application-module-method from a backing bean?
    Thanks and regards
    Majo
    Edit: I am using ADF BC 10g in JDev10 :)

    Hi :)
    >
    This could work, but can you describe the use case for which you need to get the ApplicationModule?
    Maybe we can find a better way to implement your functionality.
    >
    Sure, i know a lot of better ways to implement the same functionality too but its a huge project, its not my code and we have no time to reimplement this functions ;)
    Frank, i don't understand the first line of your code.
    DCBindingContainer bindings = ... resolve #{bindings}Where do i get the bindingContainer, if I don't have the "JSFUtils"- or "ADFUtils"-classes?
    Regards
    Majo
    Edit:
    Sorry, i have answer, before i think about it ;)
    FacesContext context = FacesContext.getCurrentInstance();
    Application app = context.getApplication();
    DCBindingContainer bindings = (DCBindingContainer)app.getVariableResolver().resolveVariable(context, "bindings");
    BindingContext bctx = bindings.getBindingContext();
    DCDataControl dc = bctx.findDataControl("AppModuleDataControl");
    AppModuleImpl am = (AppModuleImpl)dc.getDataProvider();or in my backing bean, when i add the property to the faces-config.xml
    DCBindingContainer bindings = this.getBindings();
    BindingContext bctx = bindings.getBindingContext();
    DCDataControl dc = bctx.findDataControl("AppModuleDataControl");
    AppModuleImpl am = (AppModuleImpl)dc.getDataProvider();Is this right?

  • What is the difference between subroutine and function module?

    What is the difference between subroutine and function module?

    Hi,
    they can both return values.
    FMs are mainly used when a routine is to be performed by many programs.
    Subroutines (forms) are generally only executed within one program.
    You can perform routines from other programs, but it's not often done.
    both forms and FMs are reusable modularization units.
    To distinguish we generally say that forms are used for internal modularization and
    FMs are used for external modularization.
    To decide on which to implement, consider whether you need the content to be used just for a limited program
    or wheteher it can be called from many independent programs.
    For the first purpose it is better to implement a form whereas for the second we implement an FM.
    However, ABAP does not isolate the usage context.
    That is; you can call a form from another program within whose code the form is not actually implemented.
    However, this requires attention since the form may utilize global variables.
    The same issue holds for FMs.
    FMs are encapsulated in function groups and function groups may have global variables that can be globally
    used by all FMs inside it.
    Thanks,
    Reward If Helpful.

  • What is the difference between the normal function module and bapi function

    hi,
    what is the difference between the normal function module and bapi function module.

    Hi
    BAPI stands for Business API(Application Program Interface).
    A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
    You can make your function module remotely enabled in attributes of Function module but
    A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
    BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
    Regards
    Anji

  • Using subroutines in Function Module

    Hi , experts ,
    I want to know how to use performs in function module,
    If created subroutine must be used in all FM in  Func.Group ?
    if you have  articles about this or any information , I will be glad .
    Please help.
    Regards,
    Tatiana.

    If i am not mistaken you want to use forms in function module.
    To enable forms in function module you have to follow these steps:
    Create a Z include in your function module.
    INCLUDE ZTEST_INCLUDE.
    Inside this include you need to write your form routine which will be accessable from your function module.
    Now you can use perform statement in your funtion module.
    Thnaks & Regards,
    Lalit Mohan Gupta

  • When trying to download Itunes this pops up " key not valid for use in specified state" what does this mean and how can I fix it?

    When trying to download Itunes this pops up " key not valid for use in specified state" what does this mean and how can I fix it? I am using a pc laptop if that makes any difference.

    Try reading through this thread: key not valid for use in specified state. Possible solution involves moving the RSA folder. Rather than deleting it as aniwack suggested I'd try this:
    For "Key not valid for use in specified state" errors try moving the folder RSA from C:\Users\<User>\AppData\Roaming\Microsoft\Crypto\RSA to say C:\RSA (just in case there should be a need to restore it) then try installing again. This folder appears to act as a cache and should be rebuilt automatically as required.
    tt2

  • Updating ARDT table without using direct update statement

    hi,
        can any one guide me how to update REMARK field in the ADRT table without using direct UPDATE statement. It would be helpful if any one can tell me the bapi or a function module with a sample code.

    Hi                                                                               
    <b>SZA0                           Business Address Services (w/o Dialog) </b> ADDR_PERSONAL_UPDATE                                                          
    ADDR_PERSON_UPDATE                                                            
    ADDR_PERS_COMP_UPDATE                                                         
    ADDR_UPDATE                                                                   
    these are the four function modules which will update the (Business Address Services) reward if usefull
    check these is there any  help ful for u or not

  • To use SubRoutines and function modules and include

    Hellow Friends ,
    Can any body suggest me at waht situations we have to use SubRoutines and function modules and include in an abap report and also i need the standards in an abap program.

    Hi Rajesh,
    You use create subroutines within your programs for those block of codes which are used often within the scope of the development. Function modules are like global subroutines , hence any number programs which might want to use the functionality within the function module can do so.
    Creating includes is a good programming prctise, e.g. one for data declerations , one for subroutines, so that it makes the code more reader friendly and also helps in modularizing the program. Also once you put a subroutine in an include, you can use the same subroutine in other programs by referring to the include with the INCLUDE statement in your other programs.
    Hence basically they are used for :
    1. Reusability
    2. Modularization of code (make it more readable)
    Hope this is of some help.
    Regards,
    Aditya

Maybe you are looking for

  • Connection printer to laptop

    I was trying to connect OFFICEJET 6500A printer to laptop with USB cable. The needed software was installed. Yet there was no printing. I have Windows Vista. No changes or upgrades made before. Could it be because I don't have land telephone line and

  • Query on CATS (Cross Application Time Sheets)

    Hi, Need help on below scenario, I have charged time to an activity in a network. CAT5 has not been done. By mistake I delete the activity from the network for which I already charged time. After this when I went to my time sheet, against that partic

  • Upload Best Practices in SolMan

    Hello forum, Please can one of you explain me how to upload Best Practices in Solution manager? I would like to upload the WholeSale Distribution package V1.600. I need to know where I can find this package and then how to upload it? Thanks in advanc

  • Parameter Auto discovery - ODP -9.2.0.4.01

    Hello, Does ODP-9.2.0.4.01 version have the support to discover stored procedure parameters? I know earlier version doesn't. Thanks Siva

  • Error to select data field of same length and same type.

    Hi, I have to select data from VBRK , VBRP and then from table CE4UCA1_ACCT based on the condition AKTBO   IN SO_AKTBO           AND PAOBJNR = LT_VBRK_VBRP-POSNR  AND PASUBNR IN SO_RKBNR           AND PRCTR   IN SO_PRCTR. So while coding it gave a sy