Find the answer to your Linux question:
Results 1 to 7 of 7
Hi guys, I am programming a router based software under linux. My problem: If an interface behind my router has a lower MTU than in my local network, how could ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    mjf
    mjf is offline
    Just Joined!
    Join Date
    Jul 2008
    Posts
    3

    MTU between internet, router and computer


    Hi guys,

    I am programming a router based software under linux.

    My problem:
    If an interface behind my router has a lower MTU than in my local network, how could i tell the computers in the local network they have to send with a MTU x.

    I tried to capture packets from my D-Link router at home, but I could not find out how he's solving the problem.
    I found no packet who is telling the computers the MTU.
    However, the computers in my local network never send with MTU greater than x to the internet.

    I thought there might be a special kind of ICMP packet.

    Is there anybody who can solve the problem?

    thx

    mjf

  2. #2
    Linux Guru Lazydog's Avatar
    Join Date
    Jun 2004
    Location
    The Keystone State
    Posts
    2,677
    Quote Originally Posted by mjf View Post
    Hi guys,

    I am programming a router based software under linux.

    My problem:
    If an interface behind my router has a lower MTU than in my local network, how could i tell the computers in the local network they have to send with a MTU x.
    This is something that is controlled by the 2 end points.
    During the handshake they negotiate the MTU/Windows size.
    You should not be trying to set this manually unless there is a real need for it.
    It could be counter productive.

    I tried to capture packets from my D-Link router at home, but I could not find out how he's solving the problem.
    I found no packet who is telling the computers the MTU.
    Did you capture the complete session?

    However, the computers in my local network never send with MTU greater than x to the internet.
    And what might "x" be?

    I thought there might be a special kind of ICMP packet.
    Not even close.

    Is there anybody who can solve the problem?

    thx

    mjf
    See above.

    Regards
    Robert

    Linux
    The adventure of a life time.

    Linux User #296285
    Get Counted

  3. #3
    mjf
    mjf is offline
    Just Joined!
    Join Date
    Jul 2008
    Posts
    3
    thx for your quick answer,

    I think you misunderstood my real question because I have explained to less or to worse.

    Here is a picture:


    The configuration:

    Computer 1's interface:
    IP 10.10.0.2
    MASK 255.255.0.0
    MTU 1500

    Router's local network interface:
    IP 10.10.255.254
    MASK 255.255.0.0
    MTU 1500

    Router's interface to the Internet:
    IP x.x.x.x
    MASK 255.255.255.255
    MTU 1460

    I want to program by own routing software by replacing the router through a computer with 2 interfaces.

    So, now I want to know how it comes that Computer 1 is sending packets to the internet and not one packet to the internet has a greater MTU than 1460.
    Well, packets to another Computer in the local network are handled with a MTU of 1500.
    So Computer 1 must somewhere get the information that on the standard route to the internet is a MTU of 1460 and the only device witch could give the information is the router.
    The Computer could not know the standart route of the router, because my router at home do not use any kind of routing protocol like ICMP or RIP.

    So there must be a other way, I don't know.

    thx for reading

    mjf

  4. $spacer_open
    $spacer_close
  5. #4
    Linux Guru Lazydog's Avatar
    Join Date
    Jun 2004
    Location
    The Keystone State
    Posts
    2,677
    Oh, I understood alright.

    The bigger question is why are you so worried about this? You are talking 40 bits difference. It's not like you are going to see a big hit here if anything at all. In the end it doesn't matter what you set you side to.

    Do you understand the build up and tear down of a connection?
    Do you understand flow control?

    Best advice I can give you is don't get your panties in a bind over this. 40 bits is nothing to worry about. But if you must, this is a setting on your network that you can or should be able to adjust by check you settings. Doesn't mean that you are going to be sending packets at 1500MTU.

    Regards
    Robert

    Linux
    The adventure of a life time.

    Linux User #296285
    Get Counted

  6. #5
    mjf
    mjf is offline
    Just Joined!
    Join Date
    Jul 2008
    Posts
    3
    thx again,

    now I get it
    first I don't understand what 3-way-handshake has to do with MTU
    than i googled that:
    Resolve IP Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPSEC - Cisco Systems

    in the tcp header is an option field MSS witch is 40 bytes smaller than the MTU because of the previous layers

    so client and server are handling a valid MTU by sending pakets with a minimum MTU first, then when both get the value the smaller is chosen
    so my routing software has only to drop packets if the packet size is greater than the MTU + ARP_HLEN

    thx for the help again
    without your help i would search the internet for some more days

    have a nice weekend

    mjf

  7. #6
    Linux Guru Lazydog's Avatar
    Join Date
    Jun 2004
    Location
    The Keystone State
    Posts
    2,677
    OK, I'm not going to tell you what you should or should do.

    Here is my stand on MTU. This is decided by the end client/devices. The router should not care and pass on what ever it receives. unless otherwise instructed because of ACL's. If you are going to do anything with the MTU's then you should worry about them until they exceed 1500. When you start deciding how large of an MTU your router is going to allow then your router becomes the bottleneck in the connection.

    Regards
    Robert

    Linux
    The adventure of a life time.

    Linux User #296285
    Get Counted

  8. #7
    Linux Engineer rcgreen's Avatar
    Join Date
    May 2006
    Location
    the hills
    Posts
    1,134
    I don't have it in front of me right now, but you can discover the MTU
    by pinging a host with the "do not fragment" flag. When the packets
    are too big, you will get no response. It's all there in the ping man page.

    You can specify the size of the packet and set "do not fragment", etc.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •